为子账号赋予扮演角色策略

最近更新时间: 2024-06-12 15:06:00

作为角色载体的主账号可以允许其子账号对角色进行扮演,这里我们通过一个案例让您轻松了解如何为子账号创建并赋予扮演角色的策略。

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

公司 A 企业账号 CompanyExampleA(主账号 ID 为 12345),创建一个角色并将角色载体设置为公司 B 的企业账号 CompanyExampleB(主账号 ID 为 67890)。公司 A(CompanyExampleA)调用 CreateRole 接口创建一个角色名称(roleName)为 DevOpsRole 的角色,公司 A 企业账号 CompanyExampleA 为创建的角色 DevOpsRole 附加了权限。

  1. 公司 A 企业账号 CompanyExampleA(ownerUin 为 12345) 调用 CreateRole 接口创建一个 roleName 为 DevOpsRole 的角色,policyDocument(角色信任策略)参数设为

    {
    "version": "2.0",
    "statement": [
    {
      "action": "name/sts:AssumeRole",
      "effect": "allow",
      "principal": {
          "qcs": ["qcs::cam::uin/67890:root"]
      }
    }
    ]
    }
  2. 公司 A 企业账号 CompanyExampleA(ownerUin 为 12345) 需要为刚才创建的角色附加权限。

    1. 公司 A 企业账号 CompanyExampleA(ownerUin 为 12345) 创建策略 DevOpsPolicy,策略语法如下:

      {
      "version": "2.0",
      "statement": [
      {
      "effect": "allow",
      "action": "cvm:*",
      "resource": "qcs::cvm:ap-guangzhou::*"
      }
      ]
      }
    2. 公司 A 企业账号 CompanyExampleA(ownerUin 为 12345)调用 AttachRolePolicy 将 step1 中创建的策略绑定到角色 DevOpsRole,入参 policyName=DevOpsPolicy,roleName=DevOpsRole。

  3. 经过上面的步骤,公司 A 企业账号 CompanyExampleA(ownerUin 为 12345)完成了角色的创建和授权。

公司 B 企业账号(CompanyExampleB)被授权这个角色后,希望由子账号 DevB 来完成这项工作。公司 B(CompanyExampleB)需要授权子账号 DevB 可以申请扮演公司 A(CompanyExampleA)的角色 DevOpsRole:

  1. 创建策略 AssumeRole,示例如下:
    {
     "version": "2.0",
     "statement": [
     {
         "effect": "allow",
         "action": ["name/sts:AssumeRole"],
         "resource": ["qcs::cam::uin/12345:roleName/DevOpsRole"]
     }
     ]
    }
  2. 将该策略授权给子账号 DevB。子账号即被赋予了扮演角色 DevOpsRole 的权限。