一、概述
你最初创建的腾讯云主账号,拥有整个账号全部腾讯云服务和资源的完全访问权限,建议你保护好主账号的凭证信息,日常使用子用户或角色进行访问,并开启多因素校验和定时轮换密钥。
当你在使用 CAM 时,可以将策略与一个用户或一组用户关联起来进行权限控制。
批量计算已接入 CAM,你可以使用 CAM 对批量计算服务的相关资源进行权限控制。
二、CAM 用户
CAM 用户 是你在腾讯云中创建的一个实体,每一个 CAM 用户仅同一个腾讯云账户关联。你注册的腾讯云账号身份为主账号,你可以通过 用户管理 来创建拥有不同权限的子账号进行协作。子账号的类型分为 子用户、协作者 以及 消息接收人。
三、策略
策略 是用于定义和描述一条或多条权限的语法规范,腾讯云的策略类型分为预设策略和自定义策略。
·预设策略: 由腾讯云创建和管理的策略,是被用户高频使用的一些常见权限集合,如资源全读写权限等。预设策略操作对象范围广,操作粒度粗,且为系统预设,不可被用户编辑。
·自定义策略:由用户创建的策略,允许进行细粒度的权限划分。例如,为子账号关联一条使用策略,使其有权管理批量计算的计算环境,而无权管理云数据库实例。
四、资源
资源(resource) 是策略的元素,描述一个或多个操作对象,例如批量计算的计算环境和作业。
五、批量计算预设策略介绍
| 预设策略名 | 授权范围描述 |
| QcloudBatchFullAccess | 关联后,获得批量计算全部资源的读写访问权限 |
| QcloudBatchReadOnlyAccess | 关联后,获得批量计算全部资源的读取权限 |
| QcloudFullAccessForBatchRole | 关联后,获得在使用批量计算过程中使用腾讯云其他相关产品。例如 CVM、VPC、COS、CMQ Topic、CMQ Queue、CLS、monitor 的访问权限 |
六、可授权的资源类型
资源级权限指的是能够指定用户对哪些资源具有执行操作的能力。例如,你可以授权用户拥有广州地域计算环境的操作权限。
在访问管理中对批量计算可授权的资源类型如下:
| 资源类型 | 授权策略中的资源描述方法 |
| 作业相关 | qcs::batch:${region}:uin/${uin}:job/${jobId}/* |
| 计算环境相关 | qcs::batch:${region}:uin/${uin}:computeenv/${envId}/* |
| 任务模板相关 | qcs::batch:${region}:uin/${uin}:tasktemplate/${taskTemplateId}/* |
下表列出批量计算支持资源级权限操作的各个 API,以及每个操作支持的资源路径。
设置资源路径时,你需要将 ${region}、${uin}、${envId}、${jobId}、${taskTemplateId} 等变量参数修改为你实际的参数信息,同时你也可以在路径中使用 * 通配符。
访问管理策略中的 region、action、account、resource 等相关概念请参见 元素参见。
注意:表中未列出的批量计算 API 操作即表示该 API 操作不支持资源级权限。针对不支持资源级权限的批量计算 API 操作,你仍可以向用户授予使用该操作的权限,但策略语句的资源元素必须指定为*。
| API 接口:action | 资源路径:resource |
| CreateCpmComputeEnv | qcs::batch:${region}:uin/${uin}:computeenv/* |
| CreateComputeEnv | qcs::batch:${region}:uin/${uin}:computeenv/* |
| DeleteComputeEnv | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| ModifyComputeEnv | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| TerminateComputeNode | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| TerminateComputeNodes | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| DescribeComputeEnv | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| DescribeComputeEnvActivities | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| DescribeComputeEnvCreateInfo | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| DescribeComputeEnvCreateInfos | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| DescribeComputeEnvs | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| SubmitJob | qcs::batch:${region}:uin/${uin}:job/* |
| RetryJobs | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| DeleteJob | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| TerminateJob | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| TerminateTaskInstance | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| DescribeJob | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| DescribeJobs | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| DescribeJobSubmitInfo | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| DescribeTask | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| DescribeTaskLogs | qcs::batch:${region}:uin/${uin}:job/${jobId} |
| CreateTaskTemplate | qcs::batch:${region}:uin/${uin}:tasktemplate/* |
| DeleteTaskTemplates | qcs::batch:${region}:uin/${uin}:tasktemplate/${taskTemplateId} |
| ModifyTaskTemplate | qcs::batch:${region}:uin/${uin}:tasktemplate/${taskTemplateId} |
| DescribeTaskTemplates | qcs::batch:${region}:uin/${uin}:tasktemplate/${taskTemplateId} |
| DetachInstances | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
| AttachInstances | qcs::batch:${region}:uin/${uin}:computeenv/${envId} |
七、批量计算访问管理策略示例
下面以两个具体的示例展示如何通过访问管理对批量计算资源进行权限控制:
·创建策略:广州地域禁止对某个计算环境的访问权限。
# 其中${uin}需要替换成账号信息, ${envId}需要替换成相应的envId{"version": "2.0","statement": [ { "effect": "allow", "action": [ "name/batch:*" ], "resource": [ "qcs::batch:${region}:uin/${uin}:computeenv/*" ] }, { "effect": "deny", "action": [ "name/batch:*" ], "resource": [ "qcs::batch:${region}:uin/${uin}:computeenv/${envId}" ] }]}
·创建策略:对全部地域作业相关读接口拥有访问权限。
# 其中${uin}需要替换成账号信息{"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:${region}:uin/${uin}:job/*" ] }]}