概述
访问策略可用于授予访问应用性能监控相关的权限。访问策略使用基于 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"
指定操作
应用性能监控定义了可在策略中指定一类控制台的操作,指定的操作按照操作性质分为读取部分接口 apm:Describe\* 和全部接口 apm:\* 。
指定允许操作的示例如下:
"action": [
"name/apm:Describe*"
]
指定资源
资源(resource)元素描述一个或多个操作对象,如应用性能监控资源等。所有资源均可采用下述的六段式描述方式。
qcs:project_id:service_type:region:account:resource
参数说明如下:
| 参数 | 描述 | 是否必选 |
|---|---|---|
| qcs | 是 qcloud service 的简称,表示是云服务 | 是 |
| project_id | 描述项目信息,仅为了兼容 CAM 早期逻辑,一般不填 | 否 |
| service_type | 产品简称,这里为 apm | 是 |
| region | 描述地域信息 | 是 |
| account | 描述资源拥有者的主账号信息,即主账号的 ID,表示为 uin/${OwnerUin},如 uin/100000000001 |
是 |
| resource | 描述具体资源详情,前缀为 instance | 是 |
下面是应用性能监控的六段式示例:
"resource":["qcs::apm:ap-City A:uin/1250000000:apm/apm-btzsrI123"]
实际案例
基于资源 ID,分配指定资源的读写权限,主账号 ID 为 1250000000:
示例:为子用户分配业务系统(ID:apm-btzsrI123)修改权限。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"apm:ModifyApmInstance"
],
"resource": [
"qcs::apm:ap-City A:uin/1250000000:apm-instance/apm-btzsrI123"
]
}
]
}
支持资源级授权的 API 列表
| API 操作名 | API 描述 |
|---|---|
| DescribeApmAgent | 获取 Apm agent |
| DescribeApmInstances | 查询 Apm 业务系统 |
| DescribeApmRegions | 获取 APM 地域 |
| DescribeGeneralSpanList | Span 通用查询接口 |
| DescribeInstanceBriefs | 业务系统简介 |
| DescribeMetricLineData | 曲线指标数据拉取 |
| DescribeMetricRecords | 通用列表接口 |
| DescribePAASGeneralSpanList | 查询 Span 通用接口 |
| DescribePAASMetricLineData | 查询指标曲线数据 |
| DescribePAASMetricPointData | 查询指标点数据 |
| DescribePAASTagValues | 查询维度信息 |
| DescribePAASTopology | 查询拓扑数据 |
| DescribeServiceNodes | 服务列表接口 |
| DescribeServiceOverview | APM 系统概览接口 |
| CreateApmInstance | 创建 APM 业务系统 |
| CreatePAASInstance | 创建 PAAS APM 业务系统 |
| DeletePAASInstance | 删除 APM 业务系统 |
| ModifyApmInstance | 修改 APM 业务系统 |
| TerminateApmInstance | 销毁 APM 业务系统 |