一、概述
访问策略语言描述了策略的基本元素和用法,有关策略语言的说明可参见 CAM 策略管理。
二、策略语法
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 地址等信息。 MONITOR 目前并不支持特殊的生效条件,所以此项可不进行配置。
四、指定效力(effect)
如果没有显式授予(允许)对资源的访问权限,则隐式拒绝访问。同时,也可以显式拒绝(deny)对资源的访问,这样可确保用户无法访问该资源,即使有其他策略授予了访问权限的情况下也无法访问。下面是指定允许效力的示例:
"effect" : "allow"
五、指定操作(action)
在 CAM 策略语句中,你可以从支持 CAM 的任何服务中指定任意的 API 操作。对于 MONITOR,请使用以 name/monitor: 为前缀的 API。例如:"name/monitor:GetMonitorData"
你也可以使用通配符指定多项操作。例如,你可以指定名字以单词 "Describe" 开头的所有 API 操作,如下所示:
"action": [ "name/monitor:Describe*"]
如果你要指定 MONITOR 中所有操作,请使用 * 通配符,如下所示:
"action":["name/monitor:*"]
六、指定资源(resource)
资源(resource)元素描述一个或多个操作对象,如下所示。所有资源均可采用下述的描述方式。
qcs:service_type:account:resource
参数说明如下:
| 参数 | 描述 | 是否必选 |
| qcs | 是 qcloud service 的简称,表示是腾讯云的云服务 | 是 |
| service_type | 产品简称,这里为 monitor | 是 |
| account | 描述资源拥有者的主账号信息,即主账号的 ID,表示为 uin/${OwnerUin},如 uin/100000000001 | 是 |
| resource | 描述具体资源详情,例如:cm-policy/policy-p1234abc | 是 |
你可以对下列资源进行访问控制:
| 资源类型 | 授权策略中的资源描述方法 |
| 告警策略/cm-policy | qcs::monitor::uin/:cm-policy/${policyId} |
| 通知模板/cm-notice | qcs::monitor::uin/:cm-notice/${noticeId} |
指定资源示例
例如你可以使用特定的策略 ID 指定它,如下所示:
"resource":["qcs::monitor::uin/1250000000:cm-policy/policy-p1234abc"]
若你要指定所有资源,或者特定 API 操作不支持资源级权限,请在 Resource 元素中使用 * 通配符,如下所示:
"resource": ["*"]
七、控制台示例
授权用户拥有部分告警策略权限
1. 根据 创建自定义策略,创建一个自定义策略。
该示例策略允许用户拥有对告警策略(策略 ID 为 policy-p1234abc和policy-p5678abc)的操作权限,策略内容可参考以下策略语法进行设置:
{ "version": "2.0", "statement": [ { "action": "monitor:*", "resource": [ "qcs::monitor::uin/1250000000:cm-policy/policy-p1234abc", "qcs::monitor::uin/1250000000:cm-policy/policy-p5678abc" ], "effect": "allow" } ]}
2. 找到创建的策略,在该策略行的 “操作” 列中,单击关联用户/组。
3. 在弹出的 “关联用户/用户组” 窗口中,选择你需要授权的用户/组,单击确定。