阿里云的访问控制RAM产品可以实现资源的分配和授权,在一个特殊的业务背景下,资源也可以实现跨账号的授权使用.
背景:
1.A公司,作为甲方Party A,出资购买云资源,对云资源具有所有权,但不实际管理,需要乙方配合.
2.B公司,作为乙方Party B,要管理A公司的云资源,需要A公司授权云资源的使用,对云资源具有使用权
3.B公司的员工,作为实际操作人员,需要对具体实例进行管理.
以上这种情况,通过RAM是否可以实现呢?
答案是:yes
方法是:
1.使用RAM角色做跨账号授权
2.使用子账号资源授权
过程
1.准备两个测试主账号
PartyA账号:cloudtec*@aliyun.com UID:444
PartyB账号:middlegr@aliyun-test.com UID:10713766795707
2.在RAM控制台创建角色
3.选择其他云账号授信
4.成功创建角色
生成临时授权STS策略,用于扮演该角色.授权角色信息为:
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::1071376679570***:root"
]
}
}
],
"Version": "1"
}
授权ECS管理权限
5.创建了扮演角色,再在Party B账号中创建子账号Buser(记得开启控制台登录)
6.授权Buser子账号AliyunSTSAssumeRoleAccess权限
7.Buser子账号登录,选择切换身份
输入对应的A账户信息
看到查询结果
结论
这样,Buser账号就具有了管理A账号实例的能力,
当Buser员工离职,B账号只需要关闭Buser账号即可.
当A公司需要更换B公司或对B公司的授权范围发生变更,只需要更新授权策略即可.
名词解释:
RAM角色(RAM-Role)
RAM角色是一种虚拟用户(或影子账号),它是RAM用户类型的一种。这种虚拟用户有确定的身份,也可以被赋予一组权限(Policy),但它没有确定的身份认证密钥(登录密码或AccessKey)。与普通RAM用户的差别主要在使用方法上,RAM角色需要被一个授信的实体用户扮演,扮演成功后实体用户将获得RAM角色的临时安全令牌,使用这个临时安全令牌就能以角色身份访问被授权的资源。