当一个企业希望将部分业务授权给另一个企业时,可以使用RAM角色进行跨阿里云账号的资源授权及访问。
应用场景
企业A购买了多种阿里云资源来开展业务,例如:ECS实例、RDS实例、SLB实例和OSS存储空间等。企业A希望:
授权或委派企业B对企业A的资源进行代运维、代管理等。
当企业B的员工加入或离职时,无需做任何权限变更。企业B可以将企业A的资源访问权限分配给企业B的员工或应用,并可以精细控制其员工或应用对资源的访问权限。
如果双方合同终止,企业A可以随时撤销对企业B的授权。
解决方案
假设企业A拥有一个阿里云账号A(A@company-a.onaliyun.com),企业B拥有一个阿里云账号B(B@company-b.onaliyun.com),您可以通过RAM角色实现阿里云账号B访问阿里云账号A的资源。
在阿里云账号A中创建一个RAM角色,可信实体为阿里云账号B内所有RAM身份,并为RAM角色授予合适的资源访问权限(例如:管理ECS实例的权限)。在阿里云账号B中创建一个RAM用户,允许该RAM用户通过角色扮演的方式访问阿里云账号A的资源。阿里云账号A只需要定义允许访问的可信实体和RAM角色的资源访问权限,阿里云账号B自主管控允许扮演该角色的RAM用户。
具体操作,请参见跨阿里云账号授权。
如果企业A与企业B的合作终止,阿里云账号A只需要撤销阿里云账号B对RAM角色的使用。撤销后,阿里云账号B下的所有RAM用户将无法扮演该RAM角色访问阿里云账号A的资源。
具体操作,请参见撤销跨阿里云账号授权 。
跨阿里云账号授权
使用阿里云账号A创建可信实体为阿里云账号B的RAM角色。
使用阿里云账号A登录RAM控制台。
在角色页面,创建一个RAM角色。
信任主体类型选择云账号,信任主体名称选择其他云账号,输入阿里云账号B的ID。更多信息,请参见创建可信实体为阿里云账号的RAM角色、查看账号基本信息。
使用阿里云账号A为RAM角色授予资源访问权限。
在角色页面或授权页面,为RAM角色添加系统策略或自定义策略。您需要遵循最小化授权原则,为RAM角色添加刚刚好的权限。例如:您想让该RAM角色管理ECS实例,就可以添加系统策略AliyunECSFullAccess。具体操作,请参见为RAM角色授权。
使用阿里云账号B创建RAM用户。
使用阿里云账号B为RAM用户授予角色扮演的权限。
在用户页面或授权页面,为RAM用户添加系统策略AliyunSTSAssumeRoleAccess。具体操作,请参见为RAM用户授权。
使用阿里云账号B中的RAM用户,通过角色扮演的方式,访问阿里云账号A中有权限的资源。
角色扮演有以下两种方式,您可以任选其一:
RAM用户使用用户名和密码登录控制台后,通过切换身份的方式,扮演RAM角色。
RAM用户使用访问密钥(AccessKey)调用AssumeRole,获取RAM角色的临时安全令牌(STS Token)。
撤销跨阿里云账号授权
阿里云账号A可以撤销阿里云账号B对RAM角色使用权限。以下两种方法,您可以任选其一:
修改RAM角色信任策略
使用阿里云账号A登录RAM控制台。
在角色页面,修改角色的信任策略。
修改
Principal
字段,取消对阿里云账号B的信任。例如:您可以删除该字段中阿里云账号B的UID。具体操作,请参见修改RAM角色的信任策略。
删除RAM角色