版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
详细解答可以参考官方帮助文档
用户需要访问某个bucket下的某个目录下的所有文件,但是该bucket下的其他目录不允许该用户访问。
创建子账户
登录RAM管路控制台,单击用户管理,在右上角单击新建用户,如下图所示:
 
打开创建用户对话框,填写创建用户的登录名等各项信息后单击确定即可创建用户,如下所示:
 
自定义授权策略
在RAM管路控制台单击策略管理->新建策略打开创建策略对话框,选择空白模板,界面如下图所示:
 
在策略内容中输入如下策略:
Policy:{"Version": "1","Statement": [{"Effect": "Allow","Action": ["oss:ListBuckets"],"Resource": ["acs:oss:*:*:*"]},{"Effect": "Allow","Action": ["oss:Listobjects"],"Resource": ["acs:oss:*:*:bucketname"]},{"Effect": "Allow","Action": ["oss:GetObject"],"Resource": ["acs:oss:*:*:bucketname/1/"]}]}
授权完成之后,使用子账户OSS 管理控制台,此时可以看到列出了所有的bucket,但除了授权的bucket ,其他bucket子账户是没有权限访问的。在bucket私有的情况下只有授权目录下的object获取地址可以打开,其他文件虽然可以获取地址,但访问会报错。