访问控制概述

默认情况下,为保证存储在OSS中数据的安全性,OSS资源(包括Bucket和Object)默认为私有权限,只有资源拥有者或者被授权的用户允许访问。如果要授权第三方用户访问或使用自己的OSS资源,可以通过多种权限控制策略向他人授予资源的特定权限。

针对存放在Bucket的Object的访问,OSS提供了以下权限控制策略:

类型

说明

适用场景

RAM Policy

RAM(Resource Access Management)是阿里云提供的资源访问控制服务。RAM Policy是基于用户的授权策略。通过设置RAM Policy,您可以集中管理您的用户(例如员工、系统或应用程序)以及控制用户可以访问您名下哪些资源的权限,例如限制您的用户只拥有对某一个Bucket的读权限。

  • 对同一账号下的不同RAM用户授予相同权限。

  • 对所有OSS资源或者多个Bucket配置相同权限。

  • 配置OSS服务级别的权限,例如列举某一账号下的所有Bucket。

  • 临时授权访问OSS时,限制临时访问凭证的权限。

Bucket Policy

Bucket Policy是基于资源的授权策略。相比于RAM Policy,Bucket Policy操作简单,支持在控制台直接进行图形化配置,并且Bucket拥有者直接可以进行访问授权,无需具备RAM操作权限。Bucket Policy支持为其他账号的RAM用户授予访问权限以及为匿名用户授予带特定IP条件限制的访问权限。

  • 对同一账号下的不同RAM用户授予不同权限。

  • 要进行跨账号授权或对匿名用户授权。

设置Bucket ACL

您可以在创建Bucket时设置读写权限ACL,也可以在Bucket创建后的任意时间内根据自己的业务需求随时修改ACL,该操作只有Bucket的拥有者可以执行。Bucket ACL分为public-read-write(公共读写)、public-read(公共读)和private(私有)三种。

对单个Bucket内的所有Object设置相同的访问权限。

设置Object ACL

除Bucket级别ACL以外,OSS还提供了Object级别的ACL。您可以在上传Object时设置相应的ACL,也可以在Object上传后的任意时间内根据自己的业务需求随时修改ACL。Object ACL分为default(继承Bucket)、public-read-write(公共读写)、public-read(公共读)和private(私有)四种。

对单个Object单独授权。

例如已通过RAM Policy或者Bucket Policy将Bucket内的所有Object或者与指定Prefix匹配的Object的访问权限设置为私有,但是考虑到您需要将其中某个Object开放给所有互联网匿名用户访问,则选择Object ACL,并将ACL设置为public-read