当一个企业希望将部分业务授权给另一个企业时,可以使用RAM角色进行跨阿里云账号授权来管理资源的授权及访问。
背景信息
企业A购买了多种阿里云资源来开展业务,例如:ECS实例、RDS实例、SLB实例和OSS存储空间等。企业A希望将部分业务授权给企业B。
企业A有如下要求:
企业A希望能专注于业务系统,仅作为资源Owner。企业A希望可以授权账号B来操作部分业务,例如:云资源运维、监控以及管理等。
企业A希望当企业B的员工加入或离职时,无需做任何权限变更。企业B可以进一步将企业A的资源访问权限分配给企业B的RAM用户(员工或应用),并可以精细控制其员工或应用对资源的访问和操作权限。
企业A希望如果双方合同终止,企业A随时可以撤销企业B的授权。
解决方案
企业A需要授权企业B的员工对ECS进行操作。假设企业A和企业B下分别有一个阿里云账号A和阿里云账号B。
企业A的阿里云账号ID为
123456789012****
,账号别名(企业别名)为company-a
。企业B的阿里云账号ID为
134567890123****
,账号别名(企业别名)为company-b
。
关于如何设置账号别名,请参见查看和修改默认域名。
阿里云账号A创建一个RAM角色,并为RAM角色授予合适的权限,允许阿里云账号B使用该角色。
具体操作,请参见跨阿里云账号授权。
如果阿里云账号B下的某个员工(RAM用户)需要使用该RAM角色,那么阿里云账号B可以自主进行授权控制。阿里云账号B下的RAM用户将扮演RAM角色来操作阿里云账号A的资源。
具体操作,请参见跨阿里云账号访问资源。
如果企业A与企业B的合作终止,企业A只需要撤销阿里云账号B对RAM角色的使用。此时阿里云账号B下的所有RAM用户对RAM角色的使用权限将被自动撤销。
具体操作,请参见撤销跨阿里云账号授权 。
跨阿里云账号授权
阿里云账号A创建可信实体为阿里云账号的RAM角色
ecs-admin
。说明创建RAM角色时选择其他云账号
134567890123****
作为受信云账号,即允许阿里云账号B下的RAM用户来扮演该RAM角色。具体操作,请参见创建可信实体为阿里云账号的RAM角色。
RAM角色创建成功后,在角色基本信息页面中可以查看到该RAM角色的ARN和信任策略。
RAM角色的ARN为
acs:ram::123456789012****:role/ecs-admin
。RAM角色的信任策略如下:
说明以下策略表示允许阿里云账号B下的RAM用户来扮演该RAM角色。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::134567890123****:root" ] } } ], "Version": "1" }
阿里云账号A为RAM角色
ecs-admin
添加AliyunECSFullAccess
权限。具体操作,请参见为RAM角色授权。
阿里云账号B为其员工创建RAM用户
Alice
。具体操作,请参见创建RAM用户。
阿里云账号B为创建好的RAM用户设置登录密码
123456****
并添加AliyunSTSAssumeRoleAccess
权限,即允许RAM用户扮演RAM角色。具体操作,请参见为RAM用户授权。
跨阿里云账号访问资源
对阿里云账号B的RAM用户Alice
进行授权后,RAM用户通过切换角色便可以访问阿里云账号A下的ECS资源。
阿里云账号B的RAM用户登录RAM控制台。
说明RAM用户登录时需要输入账号别名
company-b
、RAM用户名称Alice
和RAM用户密码123456****
。具体操作,请参见RAM用户登录阿里云控制台。
RAM用户登录成功后,将鼠标悬停在右上角头像的位置,单击切换身份。
说明切换角色时需要输入账号别名
company-a
和RAM角色名称ecs-admin
。具体操作,请参见扮演RAM角色。
撤销跨阿里云账号授权
阿里云账号A可以撤销阿里云账号B对RAM角色ecs-admin
的使用。
阿里云账号A登录RAM控制台。
在左侧导航栏,选择 。
单击RAM角色名称
ecs-admin
。在信任策略页签下,单击编辑信任策略,删除整行策略内容
"acs:ram::134567890123****:root"
。说明阿里云账号A也可以通过删除RAM角色ecs-admin来撤销阿里云账号B的权限。但在删除RAM角色前,请先为RAM角色移除权限。具体操作,请参见为RAM角色移除权限。