阿里云OSS的资源默认都是私有的,如果您希望您的合作伙伴可以访问您的OSS资源,可以通过RAM角色实现跨账号访问。
背景信息
某公司A希望其合作公司B可以访问自己名下OSS内的数据,但又不方便开放RAM账号给公司B。此时,公司A可创建一个RAM角色,并授权RAM角色OSS的访问权限。公司B可用RAM用户扮演这个RAM角色,实现跨账号访问的目的。
步骤1:公司A创建RAM角色并授予OSS访问权限
公司A需要先创建一个拥有OSS访问权限的RAM角色,提供给公司B的RAM用户扮演。
- 创建RAM角色。 - 使用公司A账号登录RAM控制台。 
- 在左侧导航栏,选择。 
- 在角色页面,单击创建角色。 
- 在创建角色面板,信任主体类型选择云账号,信任主体名称选择其他云账号,输入公司B的阿里云账号UID( - 17464958576******),然后单击确定。
- 在创建角色对话框,设置角色名称(示例值为 - admin-oss),然后单击确定。说明- RAM角色创建后,该RAM角色默认可以被可信阿里云账号(公司B账号UID)下的所有RAM用户、RAM角色扮演。如果您希望创建的RAM角色只能被可信阿里云账号下的指定RAM用户或者RAM角色扮演,则需要对已创建RAM角色的信任策略进行手动修改。更多信息,请参见修改RAM角色的可信实体为阿里云账号。 
 
- 为RAM角色授权。 - 在角色页面,单击目标角色 - admin-oss右侧的新增授权。
- 在新增授权面板,选择AliyunOSSReadOnlyAccess权限策略。 重要- AliyunOSSReadOnlyAccess为只读访问OSS所有资源的权限。如果您仅希望授权其他用户访问部分Bucket或者Bucket的部分目录,您可以通过创建自定义策略。关于自定义策略的更多信息,请参见RAM Policy。 
- 单击确认新增授权。 
 
步骤2:公司B创建RAM用户并授予允许扮演RAM角色的权限
公司B需要创建一个可以扮演角色的RAM用户,用于扮演公司A创建的RAM角色。
- 创建RAM用户。 - 使用公司B账号登录RAM控制台。 
- 在左侧导航栏,选择。 
- 在用户页面,单击创建用户。 
- 在创建用户页面的用户账号信息区域,输入登录名称和显示名称。 
- 在访问方式区域,选择控制台访问,并根据需要设置控制台登录密码、重置密码策略和多因素认证策略。 说明- 自定义登录密码时,密码必须满足密码复杂度规则。关于设置密码复杂度规则的更多信息,请参见设置RAM用户密码强度。 
- 单击确定。 
 
- 为RAM用户授权。 - 在用户页面,找到目标RAM用户右侧的添加权限。 
- 在添加权限页面,选择策略为系统策略,然后单击AliyunSTSAssumeRoleAccess策略。 
- 单击确认新增授权。 
 
步骤3:公司B的RAM用户登录控制台并扮演公司A的RAM角色
公司B需使用刚创建的RAM用户登录阿里云控制台,并切换身份为公司A创建的RAM角色。
- 公司B使用RAM用户登录阿里云控制台。具体操作,请参见RAM用户登录阿里云控制台。 
- 鼠标移至右上角的头像上,单击切换身份。 
- 在角色切换页面,输入RAM角色信息,然后单击提交。 - RAM角色信息如下: - 企业别名/默认域名/主账号UID:填写公司A的企业别名、默认域名或者主账号UID。更多信息,请参见基本概念。 - 本示例以默认域名为例,输入默认域名为 - 1178810717******.onaliyun.com,- 1178810717******为公司A阿里云账号的UID。
- 角色名:输入公司A创建的RAM角色 - admin-oss。
 
- 打开OSS管理控制台即可管理公司A的OSS资源。 
更多参考
您也可以通过Bucket Policy实现以上需求。具体操作,请参见教程示例:基于Bucket Policy实现跨账号访问OSS。