一、概述
访问策略语言描述了策略的基本元素和用法,有关策略语言的说明可参见 CAM 策略管理。
二、策略语法
CAM 策略:
{ "version":"2.0", "statement": [ { "effect":"allow", "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"
五、指定操作
云拨测定义了可在策略中指定一类控制台的操作,指定的操作按照操作性质分为读取部分接口 cat:Describe\\* 和全部接口 cat:\\* 。
指定允许操作的示例如下:
"action": [ "name/cat:Describe*"]
六、指定资源
资源(resource)元素描述一个或多个操作对象,如云拨测资源等。所有资源均可采用下述的六段式描述方式。
qcs:project_id:account:resource
参数说明如下:
| 参数 | 描述 | 是否必选 |
| qcs | qcloud service 的简称,表示腾讯云的云服务 | 是 |
| project_id | 产品简称,此处为 cat | 是 |
| account | 描述资源拥有者的主账号信息,即主账号的 ID,表示为 uin/${OwnerUin},例如:uin/100000000001 | 是 |
| resource | 描述具体资源详情,前缀为 task,例如:task-a4iiv123 | 是 |
下面是云拨测的六段式示例:
"resource":["qcs::cat::uin/1250000000:TaskId/task-a4iiv123"]
七、实际案例
基于资源 ID,分配指定资源的读写权限,主账号 ID 为 1250000000:
示例:为子用户分配拨测任务(ID:task-a4iiv123)修改权限。
{ "version": "2.0", "statement": [ { "effect": "allow", "action": [ "name/cat:ModifyProbeTask" ], "resource": [ "qcs::cat::uin/1250000000:TaskId/task-a4iiv123" ] } ]}
八、支持资源级授权的 API 列表
| API 操作名 | API 描述 |
| CreateProbeTasks | 批量创建探测任务 |
| DeleteProbeTask | 删除探测任务 |
| DescribeConsoleConfig | 获取控制台配置,如当前用户创建任务时是否必须填写标签 |
| DescribeDetailedSingleProbeData | 根据时间范围、任务 ID、运营商等条件查询单次拨测详情数据 |
| DescribePaymentState | 查询费用状态 |
| DescribeProbeMetricData | 列出云拨测指标详细数据 |
| DescribeProbeMetricTagValues | 列出云拨测指标标签值 |
| DescribeProbeNodeGroups | 查询节点组 |
| DescribeProbeNodes | 查询探测节点 |
| DescribeProbeTasks | 查询探测任务列表 |
| DescribeProbeTasksByAddresses | 列出按地址聚合后的任务 |
| ModifyProbeTask | 拨测任务修改 |
| ResumeProbeTask | 恢复探测任务 |
| SuspendProbeTask | 暂停探测任务 |
| UpdateProbeTaskAttributes | 更新探测任务属性 |
| UpdateProbeTaskConfigurationList | 批量更新探测任务配置 |