操作场景
腾讯云支持您通过控制台和 API 两种方式使用角色,本文档以一个典型案例让您轻松了解如何使用角色。
前提条件
假设存在以下条件:
公司 A 有一个运维工程师的职位,外包给公司 B,并且希望该职位可操作公司 A 广州地域所有云服务器资源。
已知公司 A 的企业账号 CompanyExampleA 的 ownerUin 为 12345。
已知公司 B 的企业账号 CompanyExampleB 的 ownerUin 为 67890。
公司 B 有一个子账号 DevB,希望由 DevB 完成这项工作。
操作步骤
您可以点击以下页签,查看对应的操作说明。
1. 公司 A 为公司 B 创建角色(请参见 创建角色)。
选择腾讯云账户作为角色载体创建一个角色,如 DevOpsRole,将角色载体设置为公司 B 的企业账号 “67890”,并为 DevOpsRole 角色附加上可操作公司 A 广州地域所有云服务器资源的权限。
2. 公司 B 为公司 B 子账号授权(请参见 为子账号赋予扮演角色策略)。
为公司 B 的子账号 DevB 授予可扮演公司 A(ownerUin 为 12345)的 DevOpsRole 角色的策略,需包含“sts:AssumeRole”接口权限。
说明:
当前不支持主账号在控制台切换使用角色,需为角色载体的主账号下的子账号授权角色。
3. 公司 B 子账号使用角色登录控制台。
公司 B 的子账号 DevB 登录控制台,在控制台头像下拉菜单中,选择“切换角色”,进入切换角色页面;
输入公司 A 的主账号“12345”,以及角色名称“DevOpsRole”,确定后即可切换为公司 A(ownerUin 为 12345)的 DevOpsRole 角色身份。
若有切换其他角色的需求,可在控制台头像下拉菜单中,选择“切换角色”,进入切换角色页面切换其他角色。
控制台切换角色登录后,若要返回原子用户,控制台头像下拉菜单中,选择“返回子用户”即可退出角色返回原子用户。
注意:
子账号仅能切换已授权的,且角色载体为云账户的角色,其他未授权的角色不可切换。
1. 创建一个角色,并将角色载体设置为公司 B 的企业账号 CompanyExampleB。
2. 调用 CreateRole 接口创建角色名称(roleName)为 DevOpsRole,并为该角色附加上可操作公司 A 广州地域所有云服务器资源的权限。
1. 授权子账号 DevB 扮演 CompanyExampleA 的 DevOpsRole 角色。
2. 调用 AssumeRole 接口,申请角色 DevOpsRole 的临时凭证。输入参数如下:
说明:
若公司 B(CompanyExampleB)希望直接操作公司 A(CompanyExampleA)的资源,也可以通过申请角色的临时凭证进行操作。
roleArn=qcs::cam::uin/12345:roleName/DevOpsRole,roleSessionName=DevBAssumeTheRole,durationSeconds=7200
若该接口执行成功,则返回结果将如下所示:
{"credentials": {"sessionToken": "5e776c4216ff4d31a7c74fe194a978a3ff2a42864","tmpSecretId": "AKI***PCl","tmpSecretKey": "Vpx***MqD"},"expiredTime": 1506433269,"expiration": "2018-09-26T13:41:09Z"}
3. 在凭证有效期内,根据实际需求,DevB 对公司 A 执行权限范围内的操作。
例如,通过 API 查看云服务器列表,在调用 DescribeInstances 接口时,将 API 密钥 SecretId 和 SecretKey 的值替换为 tmpSecretId 和 tmpSecretKey 的值,同时将 公共参数 中的 Token 设置为 sessionToken 的值。
注意:
当公司 A 想终止对公司 B 的授权时,删除角色 DevOpsRole 即可。