使用角色

最近更新时间:2018-11-08 19:33:20

腾讯云支持您使用 CAM API 进行使用角色,我们以一个典型案例让您轻松了解如何使用 API 来使用角色。

假设如下场景,公司 A 有一个运维工程师的职位,并且希望将该职位外包给公司 B,该职位需要操作公司 A 广州地域所有云服务器资源。

公司 A 企业账号 CompanyExampleA(ownerUin 为 12345),创建一个角色并将角色载体设置为公司 B 的企业账号 CompanyExampleB(ownerUin 为 67890)。公司 A(CompanyExampleA)调用 CreateRole 接口创建一个角色名称(roleName)为 DevOpsRole 的角色,公司 A 企业账号 CompanyExampleA 为创建的角色附加了权限。上述步骤请参阅 通过 API 创建

企业账号 CompanyExampleB 被授权这个角色后,希望由子账号 DevB 来完成这项工作。公司 B(CompanyExampleB)授权 DevB 可以申请扮演 CompanyExampleA 的角色 DevOpsRole。上述步骤请参阅 为子账号赋予扮演角色策略

完成上述创建、授权角色,并为子账号赋予扮演角色策略的操作后,子账号 DevB 即可开始使用角色。

  1. 需要调用 AssumeRole 接口申请角色 DevOpsRole 的临时凭证,输入参数如下:
    roleArn=qcs::cam::uin/12345:roleName/DevOpsRole,
    roleSessionName=DevBAssumeTheRole,
    durationSeconds=7200
  2. 该接口成功返回了结果如下:
    {
     "credentials": {
         "sessionToken": "5e776c4216ff4d31a7c74fe194a978a3ff2a42864",
         "tmpSecretId": "AKIDcAZnqgar9ByWq6m7ucIn8LNEuY2MkPCl",
         "tmpSecretKey": "VpxrX0IMCpHXWL0Wr3KQNCqJix1uhMqD"
     },
     "expiredTime": 1506433269,
     "expiration": "2018-09-26T13:41:09Z"
    }
  3. DevB 得到了角色的临时凭证后便可以在凭证有效期内执行权限范围内的操作。比如,通过 API 查看云服务器列表,在调用 DescribeInstances 接口时,将 API 密钥 SecretId 和 SecretKey 的值替换为 tmpSecretId 和 tmpSecretKey 的值,同时,将 公共参数 中的 Token 设置为 sessionToken 的值。公司 B(CompanyExampleB)也可以直接申请角色的临时凭证操作公司 A(CompanyExampleA)的资源。

    注意:
    公司 A(CompanyExampleA)想终止对公司 B(CompanyExampleB)的授权,删除掉角色 DevOpsRole 即可。