概述
访问策略可用于授予访问云压测相关的权限。访问策略使用基于 JSON 的访问策略语言。您可以通过访问策略语言授权指定委托人(principal)对指定的云压测资源执行指定的操作。
策略语法
CAM 策略
{"version":"2.0","statement":[{"effect":"effect","action":["action"],"resource":["resource"],"condition": {"key":{"value"}}}]}
元素用法
版本 version:必填项,目前仅允许值为"2.0"。
语句 statement:描述一条或多条权限的详细信息,该元素包括 effect、action、resource,condition 等多个其他元素的权限或权限集合。一条策略有且仅有一个 statement 元素。
影响 effect:必填项,描述声明产生的结果为“允许”或“显式拒绝”,包括 allow(允许)和 deny(显式拒绝)两种情况。
操作 action:必填项,描述允许或拒绝的操作。操作可以是 API (以 name 前缀描述)或者功能集(一组特定的 API,以 permid 前缀描述)。
资源 resource:必填项,授权的具体数据。资源是用六段式描述。每款产品的资源定义详情会有所区别。有关如何指定资源的信息,请参见您编写的资源声明所对应的产品文档。
生效条件 condition:非必填项,描述策略生效的约束条件。条件包括操作符、操作键和操作值组成。条件值可包括时间、IP 地址等信息。有些服务允许您在条件中指定其他值。
指定效力
如果没有显式授予(允许)对资源的访问权限,则隐式拒绝访问。同时,也可以显式拒绝(deny)对资源的访问,从而确保用户无法访问该资源,即使有其他策略授予了访问权限的情况下也无法访问。下面是指定允许效力的示例:
"effect" : "allow"
指定操作
云压测定义了可在策略中指定一类控制台的操作,指定的操作按照操作性质分为读取部分接口
pts:Describe\\*
和全部接口 pts:\\*
。指定允许操作的示例如下:
"action": ["name/pts:Describe*"]
指定资源
资源(resource)元素描述一个或多个操作对象,如性能测试服务等。所有资源均可采用下述的六段式描述方式。
qcs:project_id:service_type:region:account:resource
参数说明如下:
参数 | 描述 | 是否必选 |
qcs | qcloud service 的简称,表示是腾讯云的云服务 | 是 |
project_id | 描述项目信息,仅为了兼容 CAM 早期逻辑,一般不填 | 否 |
service_type | 产品简称,此处为 pts | 是 |
account | 描述资源拥有者的主账号信息,即主账号的 ID,表示为 uin/${OwnerUin} ,如 uin/100000000001 | 是 |
resource | 描述具体资源详情,前缀为 instance | 是 |
下面是性能测试服务的四段式示例:
"resource":["qcs::pts:uin/1250000000:ProjectId/project-bx123456"]
实际案例
基于资源 ID,分配指定资源的读写权限,主账号 ID 为 1250000000。
示例:为子账号分配查询项目(ID:project-bx123456)权限。
{"version": "2.0","statement": [{"effect": "allow","action": ["pts:DescribeProjects"],"resource": ["qcs::pts:uin/1250000000:ProjectId/project-bx123456"]}]}
支持资源级授权的 API 列表
API 操作 | API 描述 |
API 操作 | API 描述 |
AbortJob | 停止任务 |
CreateProject | 创建项目 |
CreateScenario | 创建场景 |
DeleteJobs | 删除任务 |
DeleteProjects | 删除项目 |
DeleteScenarios | 删除场景 |
DescribeAllLabels | 查询所有指标的labels |
DescribeCheckSummary | 查询检查点汇总信息 |
DescribeJobs | 查询任务列表 |
DescribeLabelValues | 查询标签内容 |
DescribeProjects | 查询项目列表 |
DescribeRegions | 查询地域列表 |
DescribeSampleBatchQuery | 批量查询指标,返回固定时间点指标内容 |
DescribeSampleQuery | 查询指标,返回固定时间点指标内容 |
DescribeSampleStreamBatchQuery | 批量查询指标序列 |
DescribeSampleStreamQuery | 查询一段时间范围内的指标序列 |
DescribeScenarioWithJobs | 查询场景配置并附带已经执行的任务内容 |
DescribeScenarios | 查询场景列表 |
DescribeServiceSummary | 查询服务汇总信息 |
DescribeZones | 查询可用区列表 |
GenerateTmpKey | 生成临时COS凭证 |
StartJob | 创建并启动任务 |
UpdateJob | 更新任务 |
UpdateProject | 更新项目 |
UpdateScenario | 更新场景 |
不支持资源级授权的 API 列表
针对不支持资源级权限的云压测 API 操作,您仍可以向用户授予使用该操作的权限,但策略语句的资源(resource)元素必须指定为 * 。
API 操作 | API 描述 |
CreateProject | 创建 PTS 服务实例 |