详细解答可以参考官方帮助文档
用户需要访问某个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获取地址可以打开,其他文件虽然可以获取地址,但访问会报错。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。