使用信任委托实现跨账号的资源授权与管理
A公司和B公司是华为云注册的企业用户,分别拥有自己单独的账号。本文主要介绍当A账号希望将部分资源委托给B账号时,使用IAM的信任委托功能来实现跨账号的资源授权与管理(A账号为委托方,B账号为被委托方)。
企业需求
- A账号在华为云购买了多种资源,为了专注自己的业务领域,希望将VPC资源委托给B账号进行代运维。
- B账号希望将A账号委托的资源分配给公司中一个或多个员工(IAM用户),进行精细的权限管理。
- 如果合作关系发生变更,A账号希望随时可以修改或撤销对B账号的授权。
解决方案
针对以上企业需求,可以使用IAM的信任委托功能来实现跨账号的资源授权与管理。
- A账号在IAM控制台创建一个信任委托,指定信任委托的信任主体为B账号,并将需要代运维的资源授权给这个信任委托。
- B账号进一步授权,将A账号委托的资源分配给账号下专职管理信任委托的IAM用户,让IAM用户帮助管理。
- 当合作关系发生变更时,A账号随时可以修改或者删除这个信任委托,B账号以及账号下可以管理该信任委托的用户对该信任委托的使用权限将自动修改或者撤销。

委托方跨账号授权
以A账号将VPC资源委托给B账号进行代运维为例,说明委托方进行跨账号授权的操作方法。
- A账号登录华为云,在统一身份认证服务中,单击“委托”。
- 在“委托”页面,单击“创建信任委托”,设置“委托名称”,例如“VPC_Resource_Delegation”。
- “信任主体类型”选择“普通账号”,在“信任的账号ID”中填入B公司的账号ID。
- 设置“最大会话持续时长”。
图2 创建信任委托
- 选择是否使用“外部ID”。被委托方的外部ID需要唯一,不可以与其他被委托方的外部ID重复。外部ID可以是只有您和被委托方所熟知的任何标识符。例如,您和被委托方之间可以使用发票号等,但不要使用可以猜测的信息,如被委托方的姓名或电话号码。选择使用“外部ID”,系统会将外部ID添加至信任策略中,信任策略会检查外部ID,能够确保被委托方执行了正确的操作。注意:使用了“外部ID”之后,将无法在IAM控制台切换该信任委托,因为IAM控制台切换时不会帮您传递“外部ID”,此时被委托方可以使用AssumeAgency API携带“外部ID”后进行切换该信任委托。
- 选择是否“启用MFA”。
启用MFA后,在登录验证页面被委托方必须需要输入MFA设备中的验证码进行二次认证,之后才能在控制台中切换该信任委托。
- 信任策略区域将会展示当前信任策略的内容,如需编辑请在创建后修改信任委托。
- 填写“描述”信息,单击“完成”。
- 在授权的确认弹窗中,单击“立即授权”。
- 选择权限“VPCFullAccessPolicy”,单击“确定”。
委托创建完成,委托列表中显示新创建的信任委托。
当合作关系发生变更时,A账号可以在委托列表中,单击“修改”,修改信任委托的信任账号、权限等。
被委托方跨账号管理
当A账号与B账号创建委托关系后,即B账号为被委托方,B账号通过切换信任委托的方法(控制台中是在切换角色页面进行切换信任委托),可以切换到A账号中,管理委托方授权的资源。B账号需要提前获取A账号的名称以及所创建的信任委托名称。
- B账号登录华为云,进入控制台。
- 鼠标移动至右上方的用户名,选择“切换角色”。选择角色切换记录或单击其他切换指定的信任委托。
图3 切换角色
- 在“切换角色”页面中,输入委托方的账号名称以及委托名称,同时也可以直接单击切换历史记录直接切换。
输入委托方的账号名称之后,只会列举出委托方委托给您的普通委托,而不会列举出信任委托,您需要手动输入名称进行切换。
图4 输入信任委托名称 - 单击“确定”,B账号切换至委托方A账号中,直接对A账号的VPC资源进行管理。
被委托方分配委托权限
以B账号将信任委托分配给IAM用户进行管理为例,实现分配信任委托以及对信任委托进行精细授权。信任委托权限分配完成后,B账号中的IAM用户通过切换信任委托的方式,可以切换到A账号中,管理委托方授权的资源。
B账号需要提前获取委托公司的账号名称、所创建的信任委托名称。
- 创建用户组。
- B账号在统一身份认证服务左侧导航窗格中,单击“用户组”。
- 在“用户组”界面中,单击“创建用户组”。
- 输入“用户组名称”,例如“委托管理”。
- 单击“确定”。
- 创建自定义身份策略。
- 在身份策略界面,单击“创建自定义身份策略”。
- 策略名称输入“AssumeAgencies”。
- “策略配置方式”选择“JSON视图”。
- 在“策略内容”区域,填入以下内容:在自定义身份策略中,设置用户仅能管理指定ID的信任委托,不能管理其他信任委托。
{ "Version": "5.0", "Statement": [{ "Effect": "Allow", "Action": [ "sts:agencies:assume" ], "Resource": [ "iam::<account-a-id>:agency:VPC_Resource_Delegation" ] }] }
<account-a-id>需要替换为委托方的账号ID,需要提前向委托方获取,其他内容不需修改,直接拷贝即可。
- 为用户组授权。
- 返回用户组列表,用户组列表中显示新创建的用户组。
- 单击新建用户组右侧的“授权”,进入授权界面。
- 选择上一步创建的自定义身份策略,单击“下一步”,单击“确定”,授权完成。
图5 授权
- 创建用户并加入用户组。
- B账号在统一身份认证服务左侧导航窗格中,单击“用户”。
- 在“用户”界面,单击“创建用户”。
- 在“创建用户”界面,输入“用户名”和“描述”。
- 打开“管理控制台访问”,选择“创建IAM用户”。
- “密码设置 选择“自定义创建”,输入自定义密码,并勾选“首次登录时设置”,单击“下一步”。
- 在“权限配置”页面,选择步骤1中创建的用户组“委托管理”,单击“创建用户”。
- 切换角色。