目录
前言
- OSS API接口版本,2022-01-12
概念
OSS提供的权限控制策略
- RAM Policy(基于用户的授权策略):在RAM 控制台中进行授权
- Bucket Policy(基于资源的授权策略):在Bucket 控制台中进行授权
- Bucket ACL(Bucket级别的读写权限ACL):对匿名用户授权
- Object ACL(Object级别的读写权限ACL):对匿名用户授权
RAM Policy
- 在RAM 控制台设置 RAM Policy
- 使用STS临时授权访问OSS时,RAM Policy起效
Bucket Policy
- 在
Bucket -> 权限管理 -> Bucket 授权策略
中设置 Bucket Policy
- 设置 Bucket Policy
- 授权资源:整个Bucket、指定资源
- 授权用户:匿名帐户、子账号、其他账号
- 授权操作:只读、读/写、完全控制、拒绝访问
- 使用STS临时授权访问OSS时,Bucket Policy起效
Bucket ACL
- 在
Bucket -> 权限管理 -> 读写权限
中设置 Bucket ACL
- 设置 Bucket ACL
Object ACL
-
在
Bucket -> 文件管理 -> 上传文件
中设置 Object ACL
-
设置 Object ACL
- 文件ACL:继承 Bucket、私有、公共读、公共读写
- 读写权限设置
当Bucket同时存在多个权限控制策略(如RAM Policy、Bucket Policy、Bucket ACL、Object ACL)时的鉴权流程
当Bucket同时存在多个权限控制策略(如RAM Policy、Bucket Policy、Bucket ACL、Object ACL)时,详细鉴权流程请参见OSS鉴权详解。
概括一下:
- 检查STS临时授权,如果有权限则允许访问,否则,检查读写权限ACL。
- 检查读写权限ACL(先检查Object ACL,再检查Bucket ACL),如果有权限则允许访问,否则拒绝访问。
使用STS临时授权访问OSS
OSS资源允许匿名访问的设置
方式1:Bucket ACL 设置成公共读
官方不建议这个方式,那就尽量别用。了解一下好了。
方式2:Object ACL 设置成公共读
每个资源都要设置一次,显得很繁琐,这个也尽量别用。
这个方式还不如上一个呢。
方式3:Bucket Policy 设置指定目录
OSS资源匿名访问
- url 形如:https://xxx.xxx.cn/static/1.jpg
- 注意:通过阿里云域名生成的文件URL访问图片时,默认是下载行为。如需确保通过文件URL访问图片时是预览行为,您需要绑定自定义域名并添加CNAME记录。具体操作,请参见绑定自定义域名。
使用STS临时授权访问OSS
- url 形如:https://xxx.xxx.cn/static/1.jpg?Expires=1641975234&OSSAccessKeyId=xxxxx&Signature=xxxxx
- 注意:通过阿里云域名生成的文件URL访问图片时,默认是下载行为。如需确保通过文件URL访问图片时是预览行为,您需要绑定自定义域名并添加CNAME记录。具体操作,请参见绑定自定义域名。