访问管理

最近更新时间:2019-12-05 11:08:17

概述

访问管理(Cloud Access Management,CAM)是腾讯云提供的 Web 服务,主要用于帮助用户对腾讯云账户下资源的访问权限的安全管理。您可以通过 CAM 创建、管理和销毁用户或用户组,并使用身份管理和策略管理控制其他用户使用腾讯云资源的权限。策略能够授权或者拒绝用户使用指定资源完成指定任务,当您在使用 CAM 时,可以将策略与一个用户或一组用户关联起来进行权限控制。

批量计算已接入 CAM,您可以使用 CAM 对批量计算服务的相关资源进行权限控制。

相关概念

CAM 用户

CAM 用户 是您在腾讯云中创建的一个实体,每一个 CAM 用户仅同一个腾讯云账户关联。您注册的腾讯云账号身份为主账号,您可以通过 用户管理 来创建拥有不同权限的子账号进行协作。子账号的类型分为 子用户协作者 以及 消息接收人

策略

策略 是用于定义和描述一条或多条权限的语法规范,腾讯云的策略类型分为预设策略和自定义策略。

  • 预设策略: 由腾讯云创建和管理的策略,是被用户高频使用的一些常见权限集合,如资源全读写权限等。预设策略操作对象范围广,操作粒度粗,且为系统预设,不可被用户编辑。
  • 自定义策略:由用户创建的策略,允许进行细粒度的权限划分。例如,为子账号关联一条使用策略,使其有权管理批量计算的计算环境,而无权管理云数据库实例。

资源

资源(resource) 是策略的元素,描述一个或多个操作对象,例如批量计算计算环境和作业。

批量计算预设策略介绍

预设策略名 授权范围描述
QcloudBatchFullAccess 关联后,获得批量计算全部资源的读写访问权限
QcloudBatchReadOnlyAccess 关联后,获得批量计算全部资源的读取权限
QcloudFullAccessForBatchRole 关联后,获得在使用批量计算过程中使用腾讯云其他相关产品。例如 CVM、VPC、COS、CMQ Topic、CMQ Queue、CLS、monitor 的访问权限

可授权的资源类型

资源级权限指的是能够指定用户对哪些资源具有执行操作的能力。例如,您可以授权用户拥有广州地域计算环境的操作权限。
在访问管理中对批量计算可授权的资源类型如下:

资源类型 授权策略中的资源描述方法
作业相关 qcs::batch:$region:$account:job/*
计算环境相关 qcs::batch:$region:$account:computeenv/*
任务模板相关 qcs::batch:$region:$account:tasktemplate/*

下表列出批量计算支持资源级权限操作的各个 API,以及每个操作支持的资源路径。
设置资源路径时,您需要将 $region$account$EnvId$JobId$TaskTemplateId 等变量参数修改为您实际的参数信息,同时您也可以在路径中使用 * 通配符。
访问管理策略中的 region、action、account、resource 等相关概念请参见 元素参考

注意:

表中未列出的批量计算 API 操作即表示该 API 操作不支持资源级权限。针对不支持资源级权限的批量计算 API 操作,您仍可以向用户授予使用该操作的权限,但策略语句的资源元素必须指定为*

API 接口:action 资源路径:resource
CreateCpmComputeEnv qcs::batch:$region:$account:computeenv/*
CreateComputeEnv qcs::batch:$region:$account:computeenv/*
DeleteComputeEnv qcs::batch:$region:$account:computeenv/$EnvId
ModifyComputeEnv qcs::batch:$region:$account:computeenv/$EnvId
TerminateComputeNode qcs::batch:$region:$account:computeenv/$EnvId
TerminateComputeNodes qcs::batch:$region:$account:computeenv/$EnvId
DescribeComputeEnv qcs::batch:$region:$account:computeenv/$EnvId
DescribeComputeEnvActivities qcs::batch:$region:$account:computeenv/$EnvId
DescribeComputeEnvCreateInfo qcs::batch:$region:$account:computeenv/$EnvId
DescribeComputeEnvCreateInfos qcs::batch:$region:$account:computeenv/*
qcs::batch:$region:$account:computeenv/$EnvId
DescribeComputeEnvs qcs::batch:$region:$account:computeenv/*
qcs::batch:$region:$account:computeenv/$EnvId
SubmitJob qcs::batch:$region:$account:job/*
DeleteJob qcs::batch:$region:$account:job/$JobId
TerminateJob qcs::batch:$region:$account:job/$JobId
TerminateTaskInstance qcs::batch:$region:$account:job/$JobId
DescribeJob qcs::batch:$region:$account:job/$JobId
DescribeJobs qcs::batch:$region:$account:job/*
qcs::batch:$region:$account:job/$JobId
DescribeJobSubmitInfo qcs::batch:$region:$account:job/$JobId
DescribeTask qcs::batch:$region:$account:job/$JobId
DescribeTaskLogs qcs::batch:$region:$account:job/$JobId
CreateTaskTemplate qcs::batch:$region:$account:tasktemplate/*
DeleteTaskTemplates qcs::batch:$region:$account:tasktemplate/*
qcs::batch:$region:$account:tasktemplate/$TaskTemplateId
ModifyTaskTemplate qcs::batch:$region:$account:tasktemplate/$TaskTemplateId
DescribeTaskTemplates qcs::batch:$region:$account:tasktemplate/*
qcs::batch:$region:$account:tasktemplate/$TaskTemplateId

批量计算访问管理策略示例

下面以两个具体的示例展示如何通过访问管理对批量计算资源进行权限控制:

  • 创建策略:广州地域禁止对某个计算环境的访问权限。
    # 其中$account需要替换成账号信息, $EnvId需要替换成相应的EnvId
    {
      "version": "2.0",
      "statement": [
          {
              "effect": "allow",
              "action": [
                  "name/batch:*"
              ],
              "resource": [
                  "qcs::batch:ap-guangzhou:$account:computeenv/*"
              ]
          },
          {
              "effect": "deny",
              "action": [
                  "name/batch:*"
              ],
              "resource": [
                  "qcs::batch:ap-guangzhou:$account:computeenv/$EnvId"
              ]
          }
      ]
    }
  • 创建策略:对全部地域作业相关读接口拥有访问权限。
    # 其中$account需要替换成账号信息
    {
      "version": "2.0",
      "statement": [
          {
              "effect": "allow",
              "action": [
                  "name/batch:DescribeJobs",
                  "name/batch:DescribeJobSubmitInfo",
                  "name/batch:DescribeJob",
                  "name/batch:DescribeTask",
                  "name/batch:DescribeTaskLogs"
              ],
              "resource": [
                  "qcs::batch::$account:job/*"
              ]
          }
      ]
    }