Bucket Policy是阿里云OSS推出的针对Bucket的授权策略,您可以通过Bucket Policy授权其他用户访问您的OSS资源。

背景信息

相比于RAM Policy,Bucket Policy支持在控制台直接进行图形化配置操作,并且Bucket拥有者直接可以进行访问授权,通常用来将私有文件共享给指定的用户或群体。

配置步骤

  1. 登录OSS管理控制台
  2. 在左侧存储空间列表中,单击需要授权的存储空间名称。
  3. 在存储空间的概览页面,单击文件管理页签,然后单击授权
  4. 授权页面,单击新增授权
  5. 新增授权页面,设置以下项目:
    配置项 说明
    授权资源
    • 整个Bucket:授权策略针对整个Bucket生效。
    • 指定资源:授权策略只针对指定的资源生效。您需要同时输入资源路径,例如:abc/myphoto.png。若是针对目录授权,则需在目录结尾处加上星号(*),例如:abc/*
    授权用户
    • 当前账号:您可以从下拉菜单中选择当前账号的子账号,授予 Bucket 访问权限。您的账号必须是主账号,或拥有此 Bucket 管理权限及 RAM 控制台ListUsers权限的子账号。
    • 其他账号:当您需要给其他账号授予 Bucket 访问权限,或您的账号无ListUsers权限时,请直接输入被授权账号的 UID。
    • 匿名账号(*):若您需要给所有用户授权,可以选择匿名账号(*)
    说明 给 RAM 用户授予ListUsers权限请参见为 RAM 用户授权
    授权操作
    • 只读:对相关资源拥有查看、列表及下载权限。
    • 读/写:对相关资源有读和写权限。
    • 完全控制:对相关资源有所有操作的权限。
    • 拒绝访问:拒绝对相关资源的所有操作。
      说明 若针对某用户同时配置了多个Bucket Policy规则,那么该用户所拥有的权限是所有Policy规则的叠加,但是拒绝访问优先。例如,针对某用户第一次设置了只读权限,第二次设置了读/写权限,那么该用户最终的权限为只读读/写权限的叠加,即读/写权限。如果第三次设置了拒绝访问权限,则该用户最终的权限为拒绝访问
    条件(可选) 您可以限定只有符合特定条件的用户能够访问OSS资源。
    • IP =:设置IP等于某一IP地址或IP地址段。
    • IP ≠:设置IP不等于某一IP地址或IP地址段。
      说明
      • IP地址,例如:10.10.10.10。如有多个IP地址,用英文逗号(,)分隔。
      • IP地址段,例如:10.10.10.1/24。
    • 访问方式:设置使用HTTP/HTTPS访问OSS资源。
  6. 单击确定

场景案例

场景一:某公司A,希望其合作公司B可以访问Bucket内指定文件目录date/内的文件。实现步骤如下:

  1. 参考配置步骤配置Bucket Policy,其中参数配置如下:
    • 授权资源填写指定的文件目录date
    • 授权用户选择其他账号,并填写B公司账号的子账号UID号。
    • 授权操作选择只读
    • 条件不配置。
  2. B公司员工使用被授权的子账号,通过以下方式访问A公司授权访问的资源:
    • 使用被授权子账号登录OSS控制台,在左边菜单栏单击我的访问路径后的加号(+),添加A公司授权访问的文件目录路径后直接访问。
    • 使用被授权子账号登录ossutil,之后通过命令访问A公司授权访问的文件。
    • 使用被授权子账号登录ossbrowser,登录时在预设OSS路径栏输入被授权访问的文件目录。

场景二:某公司C,部分内部公开文档存放在OSS Bucket的file/目录内,现希望公司员工可以直接访问公开文档内的资料。

考虑到员工较多,通过RAM Policy授权,工作量很大。此时,可以使用Bucket Policy设置带IP限制的访问策略,实现C公司需求,步骤如下:

  1. 参考配置步骤配置Bucket Policy,其中参数配置如下:
    • 授权资源填写指定的文件目录file
    • 授权用户选择匿名账号(*)
    • 授权操作选择只读
    • 条件选择IP =,并填写C公司的外网出口IP。
  2. C公司内部员工在公司内部使用如下方式访问公开文档:
    • 使用Bucket默认域名或已绑定在Bucket上的自有域名加文件路径进行访问。例如,http://mybucket.oss-cn-beijing.aliyuncs.com/file/myphoto.png
    • 使用阿里云的任意账号的子账号登录OSS控制台,在左边菜单栏单击我的访问路径后的加号(+),添加内部公开文档的目录路径后直接访问。
    • 使用阿里云的任意账号登录ossutil,之后通过命令访问A公司授权访问的文件。
    • 使用阿里云的任意账号登录ossbrowser,登录时在预设OSS路径栏输入被授权访问的文件目录。

场景三:公司D的产品资料存放在OSS Bucket的public/目录内,需授权给本公司内部员工和合作公司E访问,为了访问安全,仅允许使用HTTPS的方式访问。

因为有多个需求,所以需要配置三条策略,实现步骤如下:

  1. 配置策略,授权给合作公司E访问权限,配置步骤参考场景一。
  2. 配置策略,授权给内部员工访问权限,配置步骤参考场景二。
  3. 配置策略,禁止使用HTTP的方式访问,配置参数如下图所示。


  4. 策略配置完成后,参考场景一和场景二的访问方式进行访问。需要注意以下几点:
    • 通过网页访问时需使用HTTPS的方式访问,例如:https://mybucket.oss-cn-beijing.aliyuncs.com/file/myphoto.png
    • 控制台访问本身是HTTPS的方式,无影响。
    • ossbrowser在登录时需将Endpoint修改为自定义,之后输入对应的Endpoint的HTTPS域名,例如:https://oss-cn-beijing.aliyuncs.com
    • ossutil在配置Endpoint时,需输入对应的Endpoint的HTTPS域名,例如:https://oss-cn-beijing.aliyuncs.com

教程视频

  • 授权单个用户访问 OSS 资源

  • 授权多个用户访问 OSS 资源

  • 拒绝特定 IP 地址访问 OSS 资源