子账号获取访问授权

最近更新时间: 2024-10-17 17:10:00

CAM 基本概念

主账号通过给子账号绑定策略实现授权,策略设置可精确到 [API,资源,用户/用户组,允许/拒绝,条件] 维度。

账户

  • 主账号:拥有腾讯云金融专区所有资源,可以任意访问其任何资源。

  • 子账号:包括子用户和协作者。

    • 子用户: 由主账号创建,完全归属于创建该子用户的主账号。

    • 协作者:本身拥有主账号身份,被添加作为当前主账号的协作者,则为当前主账号的子账号之一,可切换回主账号身份。

  • 身份凭证:包括登录凭证和访问证书两种,登录凭证 指用户登录名和密码,访问证书 指云 API 密钥(SecretId 和 SecretKey)。

资源与权限

  • 资源:资源是云服务中被操作的对象,如一个云服务器实例、COS 存储桶、VPC 实例等。

  • 权限:权限是指允许或拒绝某些用户执行某些操作。默认情况下,主账号拥有其名下所有资源的访问权限,而子账号没有主账号下任何资源的访问权限

  • 策略:策略是定义和描述一条或多条权限的语法规范。主账号通过将策略关联到用户/用户组完成授权。

子账号使用 TSF

协作者与子账号使用TSF平台时,需要对三方面进行授权:

  1. 要将角色(及其许可策略)传递至 TSF 服务,用户必须具有传递角色至服务的许可,即创建tsf_PassRole策略,详细操作参考[授予tsf_PassRole 策略] 。

  2. 配置使用TSF平台的权限,平台支持为不同子账号灵活配置管理权限,包含对TSF中不同集群、命名空间、应用授予读权限或写权限,详细操作可以参考管理中心 。具体支持以下三种使用场景:

  • 为子账号或协作者配置全部资源的全读写策略。您可以通过授予子账号 QcloudTSFFullAccess 策略给予子账号使用TSF平台的全量权限。

  • 为子账号或协作者配置全部资源的部分操作权限,如可以为部分用户配置应用、微服务、配置的全读写策略,以及集群、命名空间的只读策略。

  • 为子账号和协作者配置某些资源(一个或多个)的读或写权限,如可以为不同的子账号配置不同命名空间、不同应用的不可见、只读、全读写权限。

注意:

该场景下不支持使用六段式资源自定义配置使用权限和灵活配置管理权限。

  1. 使用TSF平台过程中,涉及到对其他产品的调用,如云服务器(CVM)、私有网络(VPC)、标签(TAG)、容器服务(TKE)、镜像仓库(TCR)等,需要主账号对子账号进行授权。详细说明参考[授予访问其他云产品权限] 。

授予tsf_PassRole 策略

步骤1. 新建 tsf_PassRole 策略

  1. 登录 访问管理控制台

  2. 在左侧导航栏,单击【策略】,进入策略管理列表页。

  3. 单击【新建自定义策略】。

  4. 在选择创建策略方式的弹出框中,单击【按策略语法创建】,进入按策略语法创建页。

  5. 按策略语法创建页 中,选择【空白模板】,并单击【下一步】。

  6. 填写策略名和内容,并单击【创建策略】。

使用主账号或具有管理权限的子账号创建如下自定义策略,策略语法如下:

{
  "version": "2.0",
  "statement": {
      "effect": "allow",
      "action": [
          "cam:PassRole"
      ],
       "resource": "qcs::cam::uin/${OwnerUin}:roleName/TSF_QCSRole"
  }
}

其中${OwnerUin}为主账号ID,从控制台账号信息页面获取。

步骤2. 将 tsf_PassRole 策略绑定到用户

  1. 在左侧导航栏,单击【用户】>【用户列表】,进入用户管理页面。

  2. 选择要授予 TSF 使用权限的用户,单击操作列的【授权】。

  3. 从策略列表中筛选出步骤一中的创建的策略( 如tsf_PassRole)。

  1. 单击【确定】,绑定策略。该策略会显示在用户的策略列表中。

授予访问其他云产品权限

TSF平台使用中涉及到以下云产品的调用。主账号需要对子账号进行单独授权才能保证对应TSF产品功能的使用。TSF中涉及到的对云产品的调用如下:

云产品 接口名 接口作用 影响到TSF平台的操作
云服务器(CVM) DescribeKeyPairs 查询密钥对信息 创建集群后通过重装云主机方式导入云主机,选择密钥
云服务器(CVM) DescribeInstances 查询实例列表 向集群中导入云主机时,查看可导入的云主机列表
云服务器(CVM) DescribeZones 查询可用区 创建集群时查看可用区列表
云服务器(CVM) ResetInstance 重装云主机实例 创建集群后通过重装云主机方式导入云主机
云服务器(CVM) ModifyInstancesAttribute 修改云主机名称与安全组 通过重装云主机方式导入云主机到集群中的过程中修改云主机安全组
云服务器(CVM) DescribeSecurityGroups 查看安全组 导入云主机到集群中查询安全组信息
私有网络(VPC) DescribeVpcs 查询VPC列表 创建集群过程中选择集群所属VPC
私有网络(VPC) DescribeVpcsEx 查询VPC列表 创建集群过程中选择集群所属VPC
私有网络(VPC) DescribeSubnets 查询子网列表 选择子网
私有网络(VPC) DescribeSecurityGroups 查看安全组 通过重装云主机方式导入云主机到集群中的过程中修改云主机安全组
容器服务(TKE) DescribeClusters 查看容器集群列表 查询容器集群列表
标签(TAG) DescribeResourceTagsByResourceIds 按顺序查看资源关联的标签 查看按照标签查看对应资源
标签(TAG) ModifyResourceTags 修改资源的标签信息 修改TSF中资源的标签信息
标签(TAG) DescribeTagKeys 查看标签键 查看TSF中资源的标签键
标签(TAG) DescribeResourcesByTagsUnion 通过标签查询资源列表并集 在TSF中通过标签查询资源列表并集
标签(TAG) DescribeTagValues 查看标签值 查看TSF中资源的标签值
云监控(Monitor) DescribeProductEventList 获取产品事件列表 在概览页中查看产品事件列表
云监控(Monitor) GetMonitorData 拉取指标监控数据 查看TSF中监控数据
容器镜像服务(TCR) 全部接口 容器镜像云端托管服务 使用容器部署过程中镜像相关能力

云服务器(CVM)、标签(TAG)、容器服务(TKE)、云监控(Monitor)授权说明:

您可以通过云平台上访问管理能力对以上接口进行授权,详细可参考【创建自定义策略】 。

在此给出授权示例: 如您希望子账号使用TSF中针对所有资源的创建集群、导入云主机、配置与查询标签、查看事件与监控能力,且该能力不对任何资源进行区分,可配置接口级别授权策略如下:

{
    "version": "2.0",
    "statement": [
        {
            "effect": "allow",
            "action": [
                "cvm:DescribeKeyPairs",
                "cvm:DescribeInstances",
                "cvm:ResetInstance",
                "cvm:ModifyInstancesAttribute",
                "cvm:DescribeSecurityGroups",
                "tke:DescribeClusters",
                "tag:DescribeResourceTagsByResourceIds",
                "tag:ModifyResourceTags",
                "tag:DescribeTagKeys",
                "tag:DescribeTagValues",
                "monitor:DescribeProductEventList",
                "monitor:GetMonitorData"
            ],
            "resource": [
                "*"
            ]
        }
    ]
}

注意:

  • 这里进行授权后,子账号也直接获得了相关产品的直接使用权限。建议您按照需求严格管控,可以选择对相关产品接口进行资源级别授权。
  • 配置 "cvm:ResetInstance"和"cvm:ModifyInstancesAttribute"接口后子账号将获得重装实例和修改实例的属性的权限,请谨慎配置,避免出现权限过大的场景。

镜像服务(TCR)授权

如果主账号未开通过镜像仓库,会提示如下图所示信息,此时需要主账号登录 TSF 控制台,开通镜像仓库。主账号开通镜像仓库后协作者/子账号才能继续使用镜像仓库。

如子账号需要通过容器部署微服务,需要使用镜像仓库能力,建议为子账号授予 QcloudTCRFullAccess 策略。

私有网络(VPC)授权说明:

建议为子账号授予私有网络读权限 QcloudVPCReadOnlyAccess。注意子账号也将同时可在VPC及相关产品中对私有网络资源拥有读权限。

总结

最终子账号可以授予如下策略:

策略 是否必选 说明
tsf_PassRole 必选 手动创建。
QcloudCamSubaccountsAuthorizeRoleFull 必选 访问管理(CAM)子账号授权服务角色相关权限,包含子账号在授权服务角色过程中涉及的全部权限。
QcloudTSFFullAccess 可选 腾讯微服务平台(TSF)全读写访问权限,也可以参考 [管理中心] 进行细粒度授权。
QcloudTCRFullAccess 可选 与镜像仓库相关,如果需要使用 TSF 中容器相关功能需要授权。
QcloudVPCReadOnlyAccess 可选 如果需要读取集群 VPC 等信息需要授权。
QcloudMonitorReadOnlyAccess 可选 如果需要读取监控数据需要授权,也可以按照上文说明进行接口级别授权。
QcloudTAGFullAccess 可选 如果需要读写TSF中资源的标签需要授权,也可以按照上文说明进行接口级别授权。
QcloudCVMFullAccess 可选 如果需要向TSF集群中导入云主机需要授权,也可以按照上文说明进行接口(DescribeKeyPairs,DescribeInstances,ResetInstance,ModifyInstancesAttribute,DescribeSecurityGroups)、资源级别授权。
QcloudTKEReadOnlyAccess 可选 如果需要创建容器集群需要授权,也可以按照上文说明进行接口(DescribeClusters)、资源级别授权。

补充说明

如何通过访问管理对子账号进行策略授权。

  1. 登录 【访问管理控制台】 。

  2. 在左侧导航栏,单击【用户】>【用户列表】 ,进入用户管理页面。

  3. 选择要授予 TSF 使用权限的用户,单击操作列的【授权】。

  4. 从策略列表中选择 QcloudTCRFullAccess 策略。

  1. 单击【确定】,绑定策略。该策略会显示在用户的策略列表中。