帮你快速理解、总结文档立即下载

策略语法

最近更新时间:2026-11-12 10:01:02
我的收藏

概述

访问策略可用于授予访问终端性能监控 Pro 相关的权限。访问策略使用基于 JSON 的访问策略语言。您可以通过访问策略语言授权指定委托人(principal)执行指定的操作。
访问策略语言描述了策略的基本元素和用法,有关策略语言的说明可参见 CAM 策略管理。

创建自定义策略

CAM 支持如下三种方式创建自定义策略,请参考对应的帮助文档完成自定义策略的创建。

策略语法

CAM 策略的基本结构如下:
{
"version": "2.0",
"statement": [
{
"effect": "effect",
"action": ["action"],
"resource": ["resource"],
"condition": { "key": { "value": "value" } }
}
]
}
元素
是否必填
说明
version
是
版本号,目前仅允许填写 2.0。
statement
是
描述一条或多条权限,一条策略有且仅有一个 statement 元素。
effect
是
声明结果是允许还是显式拒绝,取值 allow(允许)或 deny(显式拒绝)。
action
是
允许或拒绝的操作。终端性能监控 Pro 的操作以 rum: 为前缀,例如 rum:DescribeIssues、rum:*。详见下文的 action 元素说明。
resource
是
授权的资源。终端性能监控 Pro 的接口均为操作级,统一填写 *。
condition
否
策略生效的约束条件,包括操作符、操作键和操作值。
说明:
终端性能监控 Pro 的精细化授权只能到操作级(按接口授权),即在 action 中列出允许或拒绝的具体接口,接口名可在 访问管理控制台 的策略编辑器中挑选。若需要按应用、业务系统等维度隔离权限,当前不支持。action 元素示例如下:
"action": [
"rum:DescribeIssues",
"rum:DescribeIssueDetail"
]

资源描述

资源(resource)元素描述操作对象。终端性能监控 Pro 在 CAM 中的所属产品为「终端性能监控」,产品简称 rum,六段式的完整格式如下:
qcs:project_id:service_type:region:account:resource
参数
描述
是否必选
qcs
qcloud service 的简称,表示是腾讯云的云服务。
是
project_id
描述应用信息,仅为了兼容 CAM 早期逻辑。该位置可不填(一般留空),属于兼容性字段,不影响鉴权结果。
否
service_type
产品简称,终端性能监控 Pro 为 rum。
是
region
终端性能监控 Pro 不区分地域,留空即可。
否
account
资源拥有者的主账号 ID,表示为 uin/${OwnerUin},如 uin/100000000001。
是
resource
资源详情。终端性能监控 Pro 的接口均为操作级,统一填写 *。
是
说明:
终端性能监控 Pro 的接口全部为操作级,resource 必须填写 *;若在策略中限定了具体资源,CAM 会判定该接口不在授权范围内,直接视为无权限。因此本产品的精细化授权只能按 action(接口)维度进行,不支持按应用、业务系统等资源维度隔离。
各接口的授权粒度以 CAM 控制台策略详情页中的说明为准。

参考示例

示例1:按操作授权(完整管理权限)

允许调用终端性能监控 Pro 的全部接口。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"rum:*"
],
"resource": [
"*"
]
}
]
}

示例2:按操作授权(只读访问)

只授予读类接口的权限。推荐使用 CAM 官方的只读条件键 qcs:read_only_action, 这也是全局 ReadOnlyAccess 策略的实现方式,由 CAM 按接口的读写属性自动过滤:
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"rum:*"
],
"resource": [
"*"
],
"condition": {
"numeric_equal": {
"qcs:read_only_action": 1
}
}
}
]
}
qcs:read_only_action: 1 表示「接口属性为读」,主要涵盖以 Check、List、Describe、Search、Get、BatchGet、Query、BatchQuery、 Download、Export、View、Inquiry、Inquire、Compare、Verify、Validate 开头的接口。详见 全局预设策略。
说明:
不要用 rum:Describe* 代替只读权限。终端性能监控 Pro 没有只读预设策略,且接口命名前缀与 CAM 的读写分类并不一致:
会漏授:读类接口中有相当数量不以 Describe 开头,例如 Get、Query、Check、Export、Parse、Select 前缀的接口;
会误授:部分写操作也不以 Create/Delete/Update 开头,例如 SetStrategyStatus、SendDailySingleMailReport、NotifyUploadResult。
若需要精确的只读权限,优先使用上面的 qcs:read_only_action 写法;只有在需要精确控制到具体接口清单时,才在 CAM 控制台的策略编辑器中逐个挑选后列入 action。

示例3:按操作授权(只开放指定功能)

只允许子账号查看问题列表与详情,不允许其执行任何配置或删除操作。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"rum:DescribeIssues",
"rum:DescribeIssueDetail",
"rum:DescribeIssueEvents",
"rum:DescribeIssueEventDetail",
"rum:DescribeIssueBreadcrumbs",
"rum:DescribeIssueAffectedUsers",
"rum:DescribeIssueTrend"
],
"resource": [
"*"
]
}
]
}
请将 action 中的接口替换为您实际需要开放的接口名,可从 访问管理控制台 的策略编辑器中选择,或参考 支持 CAM 的业务接口。

示例4:拒绝高风险操作

在授予较宽权限的同时,显式拒绝删除类操作。deny 的优先级高于 allow。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"rum:*"
],
"resource": [
"*"
]
},
{
"effect": "deny",
"action": [
"rum:Delete*"
],
"resource": [
"*"
]
}
]
}
说明:
写操作中以 Delete 开头的接口只覆盖了一部分删除能力。若需要严格禁止某类操作,建议对照 支持 CAM 的业务接口 的“写操作”清单逐个列出。

示例5:限制来源 IP

{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"rum:*"
],
"resource": [
"*"
],
"condition": {
"ip_equal": {
"qcs:ip": [
"10.121.2.0/24"
]
}
}
}
]
}
说明:
IP 限制为“部分支持”能力,绝大多数接口支持,个别接口不支持。以 支持 CAM 的业务接口 中逐接口的“IP 限制”列为准。条件键与运算符的完整说明请参见 条件键和条件运算符。

授权给子账号

策略创建完成后,请参考 策略授予 将自定义策略关联给子账号、用户组或角色。

相关 API 接口

除控制台操作外,您也可以通过云 API 完成策略的查询、授权与排查。相关接口均由访问管理(CAM)提供,接口的参数说明、调用示例与错误码已在 CAM 的 API 文档中完整给出,本文不重复展开,仅列出常用接口供参考:
接口名
用途
ListPolicies
查询策略列表。可通过 Scope=QCS 只查询预设策略、Keyword 按策略名模糊匹配。
GetPolicy
查看策略详情,返回策略文档 PolicyDocument,可用于确认某个预设策略具体包含哪些接口。
GetPolicyVersion
查询策略版本详情,可用于查看预设策略的历史版本。
AttachUserPolicy / AttachGroupPolicy / AttachRolePolicy
将策略分别绑定到用户 / 用户组 / 角色。
ListAttachedUserPolicies
查询子账号已关联的策略列表,可用于排查授权是否生效。
更多接口及完整说明请参见:
说明:
国际站的 CAM 接口域名为 cam.intl.tencentcloudapi.com,接口文档请参见 国际站访问管理 API 文档。