阿里云OSS的资源默认都是私有的,若您希望您的合作伙伴可以访问您的OSS资源,可以通过RAM角色实现跨账号访问。

背景信息

某公司A希望其合作公司B可以访问自己名下OSS内的数据,但又不方便开放RAM账号给公司B。此时,公司A可创建一个RAM角色,并授权RAM角色OSS的访问权限。公司B可用RAM用户扮演这个RAM角色,实现跨账号访问的目的。

步骤1:公司A创建RAM角色并授予OSS访问权限

公司A需要先创建一个拥有OSS访问权限的RAM角色,用于给公司B的RAM用户扮演。

  1. 公司A登录RAM控制台
  2. 单击RAM角色管理 > 创建RAM角色
  3. 创建RAM角色面板的选择类型步骤,选择可信任实体类型为阿里云账号,之后单击下一步
  4. 配置角色步骤,配置如下参数:
    • 角色名称:填写角色名称。本示例设为:admin-oss
    • 备注:角色的备注信息,选填。本示例置空此项。
    • 选择云账号:选择其他云账号,并配置公司B的阿里云账号UID。本示例设为:17464958576******
  5. 单击完成
  6. 创建完成步骤,单击为角色授权
  7. 在添加权限面板选择策略为系统策略,找到并单击AliyunOSSReadOnlyAccess(只读访问对象存储服务(OSS)的权限)策略。在右侧已选择列表看到该策略后,单击确定
    AliyunOSSReadOnlyAccess为访问OSS下所有Bucket的策略,若您仅希望您的客户访问部分Bucket或部分目录,可自定义策略。详情请参见基于RAM Policy的权限控制

如果您需要指定该RAM角色只能被指定的RAM用户扮演,可修改RAM角色的信任策略。详情请参见修改RAM角色的信任策略

步骤2:公司B创建RAM用户并授予允许扮演RAM角色的权限

公司B需要创建一个可以扮演角色的RAM用户,用以扮演公司A创建的RAM角色。

  1. 公司B登录RAM控制台
  2. 单击人员管理 > 用户 > 创建用户
  3. 创建用户页面填写登录名称显示名称,并选中控制台登录,根据您的需要配置控制台的登录信息。
  4. 单击确定
  5. 在跳转的用户信息列表选中刚创建的用户,单击添加权限
    注意保存RAM用户信息,防止丢失。
  6. 在添加权限面板选择策略为系统策略,找到并单击AliyunSTSAssumeRoleAccess(调用STS服务AssumeRole接口的权限)策略。在右侧已选择列表看到该策略后,单击确定

步骤3:公司B的RAM用户登录控制台并扮演公司A的RAM角色

公司B需使用刚创建的RAM用户登录阿里云控制台,并切换身份为公司A创建的RAM角色。

  1. 公司B使用RAM用户登录阿里云控制台,步骤请参见RAM用户登录控制台
  2. 鼠标移至右上角的头像上,单击切换身份
  3. 角色切换页面输入RAM角色信息后,单击切换
    RAM角色信息如下:
    • 企业别名/默认域名:填写公司A的企业别名或默认域名,详情请参见基本概念

      本示例以默认域名为例,输入默认域名为1178810717******.onaliyun.com1178810717******为公司A阿里云账号的UID。

    • 角色名:输入公司A创建的RAM角色admin-oss
  4. 打开OSS管理控制台即可管理公司A的OSS资源。
  5. 打开OSS管理控制台即可管理公司A的OSS资源。

更多参考

您也可以通过Bucket Policy实现以上需求,详情请参见教程示例:基于Bucket Policy实现跨账号访问OSS