怎样对OSS中的某个目录进行授权___对象存储(OSS)授权问题_授权常见问题_访问控制-阿里云
OSS目录级别的授权
目录级别的授权属于授权的高级功能,如果您有此类需求,请您认真阅读并理解此部分。
背景
假设有一个用于存放照片的Bucket,叫myphotos。这个bucket下有一些目录,代表照片的拍摄地;每个拍摄地目录下又有年份子目录。
目录树结构如下
myphotos[Bucket]
├── beijing
│ ├── 2014
│ └── 2015
├── hangzhou
│ ├── 2013
│ ├── 2014
│ └── 2015 //授予此目录只读权限
└── qingdao
├── 2014
└── 2015
假设我们需要授权一个子用户只读访问myphotos/hangzhou/2015/
目录的只读权限。根据使用场景不同,授权策略也有很大的区别。下面我们根据授权策略的复杂程度,由简入繁的为大家介绍三种场景。
场景一:子用户知道所有文件的路径,只需要读取文件内容的权限,不需要列出文件的权限
这个场景的特点是子用户知道文件的完整路径,可以使用完整的文件路径直接去读取文件内容。通常我们会将这样的权限授予一个软件系统,系统中文件路径符合某种规则(比如文件名是员工工号),或者文件路径持久化在软件系统的数据库中。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject"
],
"Resource": [
"acs:oss:*:*:myphotos/hangzhou/2015/*"
]
}
]
}
场景二:子用户使用OSS CMD访问目录myphotos/hangzhou/2015/
,但是不知道目录中有哪些文件,需要列出目录中文件的权限
通常会将这样的权限授予软件开发者。开发者不清楚目录中究竟有哪些文件,然后使用OSS CMD或API直接获取目录信息。
与场景一
相比,这里需要新增ListObjects的权限。因为我们仅允许列出myphotos/hangzhou/2015/
目录中的文件,所以在新增的ListObjects权限中,增加”oss:Prefix”的条件限定。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject"
],
"Resource": [
"acs:oss:*:*:myphotos/hangzhou/2015/*"
]
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects"
],
"Resource": [
"acs:oss:*:*:myphotos"
],
"Condition":{
"StringLike":{
"oss:Prefix":"hangzhou/2015/*"
}
}
}
]
}
场景三:子用户使用OSS控制台访问目录myphotos/hangzhou/2015/
最易用的场景,当子用户使用可视化的OSS客户端访问目录myphotos/hangzhou/2015/
,可视化的客户端像Windows文件管理器一样,让子用户可以从根目录开始,一层一层的进入所要访问的目录。
与场景二相比,使用OSS可视化客户端时需要从从根目录一层一层导航进入myphotos/hangzhou/2015/
,所以需要新增以下权限
- 列出所有Bucket的权限
- 列出myphotos下目录的权限,在这个例子中,即可以看到beijing/hangzhou/qingdao三个目录
- 列出myphotos/hangzhou下的目录的权限,即可以看到2013/2014/2015三个目录
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:ListBuckets",
"oss:GetBucketAcl"
],
"Resource": [
"acs:oss:*:*:*"
]
},
{
"Effect": "Allow",
"Action": [
"oss:GetObject",
"oss:GetObjectAcl"
],
"Resource": [
"acs:oss:*:*:myphotos/hangzhou/2015/*"
]
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects"
],
"Resource": [
"acs:oss:*:*:myphotos"
],
"Condition": {
"StringLike": {
"oss:Delimiter": "/",
"oss:Prefix": [
"",
"hangzhou/",
"hangzhou/2015/*"
]
}
}
}
]
}
最后更新:2016-09-01 11:46:20
上一篇:
怎样为一个子用户授予只读访问ECS的权限___云服务器(ECS)授权问题_授权常见问题_访问控制-阿里云
下一篇:
在哪里可以查到OSS的权限定义___对象存储(OSS)授权问题_授权常见问题_访问控制-阿里云
三大论文入围ACMMM,阿里云的城市大脑会是AI的未来吗?
数据传输服务条款__相关协议_数据传输-阿里云
云邮集团版创建邮件域__控制台操作_产品使用问题_企业邮箱-阿里云
如何变更实名认证信息__实名认证_帐号实名认证_会员账号&实名认证-阿里云
2016云栖大会:阿里云发布首个基于生态体系的一站式域名服务平台
订阅管理__使用说明_用户手册_云服务总线 CSB-阿里云
质量变换__格式转换_图片处理指南_对象存储 OSS-阿里云
查询共享带宽包公网IP监控信息__监控相关接口_API参考_专有网络 VPC-阿里云
添加ECS实例__触发任务_用户指南_弹性伸缩-阿里云
大于短信推送__短信推送_开发人员指南_消息服务-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云