用户指南

商用案例

API 文档

使用角色

最近更新时间:2020-06-09 10:40:10

操作场景

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

前提条件

假设存在以下条件:

  • 公司 A 有一个运维工程师的职位,外包给公司 B,并且希望该职位可操作公司 A 广州地域所有云服务器资源。
  • 已知公司 A 的企业账号 CompanyExampleA 的 ownerUin 为 12345。
  • 已知公司 B 的企业账号 CompanyExampleB 的 ownerUin 为 67890。
  • 公司 B 有一个子账号 DevB,希望由 DevB 完成这项工作。

操作步骤

公司 A 参考 通过 API 创建 文档,执行以下操作:

  1. 创建一个角色,并将角色载体设置为公司 B 的企业账号 CompanyExampleB。
  2. 调用 CreateRole 接口创建角色名称(roleName)为 DevOpsRole,并为该角色附加上可操作公司 A 广州地域所有云服务器资源的权限。

公司 B 参考 为子账号赋予扮演角色策略 文档,执行以下操作:

  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 即可。

目录