教程示例:基于Bucket Policy实现跨账号访问OSS

阿里云OSS的资源默认都是私有的,如果您希望您的合作伙伴可以访问您的OSS资源,可以通过Bucket Policy授予合作伙伴访问Bucket的权限。

背景信息

公司A希望其合作公司B可以访问自己的OSS资源,但又不方便开放RAM用户给B公司。此时,A公司可以通过Bucket Policy授予合作伙伴访问Bucket的权限。B公司账号获得授权后,可以在控制台添加A公司OSS资源的访问路径进行访问。

添加Bucket Policy

A公司通过Bucket Policy授予合作伙伴B公司访问授权Bucket。具体步骤如下:

  1. 获取B公司账号的RAM用户UID。

    1. 登录RAM管理控制台

    2. 在左侧导航栏,选择身份管理 > 用户

    3. 用户页面,单击创建用户

    4. 创建用户页面,用户账号信息区域输入登录名称显示名称,访问方式选中控制台访问,其他参数保留默认配置,然后单击确定

    5. 单击刚创建的RAM用户的用户名,在用户基本信息区域,查看并记录RAM用户的UID。

  2. A公司账号授予B公司账号的RAM用户访问授权资源。

    1. 登录OSS管理控制台

    2. 单击Bucket 列表,然后单击目标Bucket名称。

    3. 在左侧导航栏,选择权限控制 > Bucket 授权策略

    4. Bucket 授权策略页面的按图形策略添加页签,单击新增授权

    5. 新增授权面板,填写授权策略。其中,授权用户选择其他账号,并填写B公司账号已创建RAM用户的UID。其他参数配置方式,请参见Bucket Policy

    6. 单击确定

登录RAM用户账号并添加访问路径

Bucket Policy添加完成后,您还需要登录B公司的RAM用户账号,添加A公司的Bucket访问路径。配置步骤如下:

  1. 通过RAM账号登录地址登录B公司RAM用户账号。

  2. 打开OSS管理控制台

  3. 在左侧导航栏,单击我收藏的路径右侧的加号(+)。

  4. 添加收藏路径对话框,按以下说明配置各项参数。

    参数

    说明

    添加方式

    选中从其他已授权bucket添加,将当前账号下公司A授权访问的Bucket添加到收藏路径。

    地域

    下拉选择A公司授权访问的Bucket所在地域。

    文件路径

    添加A公司授权访问的文件路径。例如当A公司授权访问examplebucket中文件夹examplefolder下的文件或子文件夹时,则填写oss://examplebucket/examplefolder/

    请求者付费

    当授权访问的Bucket开启了请求者付费模式,且您不是该Bucket拥有者的情况下,需选中我已知晓并同意。否则,访问文件路径下指定的资源时会报错AccessDenied。选中我已知晓并同意后,您可以正常访问文件路径下的指定资源,且访问该Bucket产生的流量、请求次数等费用将由您支付。更多信息,请参见开启请求者付费模式

  5. 单击确定

您也可以创建AccessKey,并通过AccessKey使用ossutilossbrowser等工具访问被授权的Bucket。