tencent cloud

访问管理

产品简介
CAM 概述
产品功能
应用场景
基本概念
使用限制
用户类型
购买指南
快速入门
创建管理员用户
创建子账号并授权
子账号登录控制台
用户指南
概览
用户
访问密钥
用户组
角色
身份提供商
策略
权限边界
排除故障
下载安全分析报告
支持角色的业务
概览
计算
容器
微服务
基础存储服务
数据处理与分析
数据迁移
关系型数据库
企业级分布式数据库
NoSQL 数据库
数据库 SaaS 工具
数据库 SaaS 服务
网络
CDN与加速
网络安全
数据安全
应用安全
域名与网站
大数据
中间件
互动视频服务
实时互动
媒体点播
媒体处理服务
媒体处理
实时云渲染
游戏服务
云资源管理
管理与审计
开发者工具
监控与运维
其他文档
支持CAM的业务接口
概览
计算
边缘计算
容器
分布式云
微服务
Serverless
基础存储服务
数据处理与分析
数据迁移
关系型数据库
企业级分布式数据库
NoSQL 数据库
数据库 SaaS 工具
网络
CDN与加速
网络安全
终端安全
数据安全
业务安全
应用安全
域名与网站
办公协同
大数据
语音技术
图像创作
腾讯大模型
人工智能平台服务
自然语言处理
文字识别
中间件
通信服务
互动视频服务
实时互动
流媒体服务
媒体点播
媒体处理服务
媒体处理
实时云渲染
游戏服务
教育服务
医疗服务
云资源管理
管理与审计
开发者工具
监控与运维
其他文档
实践教程
安全实践教程
多身份人员权限管理
授予标签下部分操作权限
支持员工间资源隔离访问
企业多账号权限管理
查看员工腾讯云操作记录
使用 ABAC 管理员工资源访问权限
按标签鉴权时支持仅匹配标签键
商用案例
MySQL 相关案例
CLB 相关案例
CMQ 相关案例
COS 相关案例
CVM 相关案例
VPC 相关案例
云点播相关案例
其他案例
API 文档
History
Introduction
API Category
Making API Requests
User APIs
Policy APIs
Role APIs
Identity Provider APIs
Data Types
Error Codes
常见问题
角色相关问题
密钥相关问题
其他问题
CAM 用户与权限问题
词汇表

语法结构

PDF
聚焦模式
字号
最后更新时间: 2024-01-23 17:54:33
整个策略的语法结构如下图所示。策略 policy 由版本 version 和语句 statement 构成,还可以包含委托人信息 principal,委托人仅限于策略管理 API 中策略语法相关的参数中使用。 语句 statement 是由若干个子语句构成。每条子语句包括操作 action、资源 resource、生效条件 condition 以及效力 effect 四个元素,其中 condition 是非必填项。



JSON 格式

策略语法以 JSON 格式为基础。创建或更新的策略不满足 JSON 格式时,将无法提交成功,所以用户必须要确保 JSON 格式正确。 JSON 格式标准在 RFC7159 中定义,您也可以使用在线 JSON 验证程序检查策略格式。

语法约定

语法描述中有如下约定:
以下字符是包含在策略语法中的 JSON 字符:
{ } [ ] " , :
以下字符是用于描述策略语法中的特殊字符,不包含在策略中:
= < > ( ) |
当一个元素允许多个值时,使用逗号分隔符和省略号进行表示。例如:
[<resource_string>, < resource_string>, ...]
<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }
允许多个值时,也可以只包含一个值。当元素只有一个值时,尾部的逗号必须去掉,且中括号"[]"标记可选。例如:
"resource": [<resource_string>]
"resource": <resource_string>
元素后的问号 (?) 表示该元素是非必填项。例如:
<condition_block?>
元素是枚举值的情况下,枚举值之间用竖线 "|" 表示,并用 "()" 括号定义枚举值的范围。例如:
("allow" | "deny")
字符串元素用双引号包括起来。例如:
<version_block> = "version" : "2.0"

语法描述

policy = {
<version_block>
<principal_block?>,
<statement_block>
}

<version_block> = "version" : "2.0"

<statement_block> = "statement" : [ <statement>, <statement>, ... ]

<statement> = {
<effect_block>,
<action_block>,
<resource_block>,
<condition_block?>
}

<effect_block> = "effect" : ("allow" | "deny")

<principal_block> = "principal": ("*" | <principal_map>)

<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }

<principal_map_entry> = "qcs":
[<principal_id_string>, <principal_id_string>, ...]

<action_block> = "action":
("*" | [<action_string>, <action_string>, ...])

<resource_block> = "resource":
("*" | [<resource_string>, <resource_string>, ...])

<condition_block> = "condition" : { <condition_map> }
<condition_map> {
<condition_type_string> : { <condition_key_string> : <condition_value_list> },
<condition_type_string> : { <condition_key_string> : <condition_value_list> }, ...
}
<condition_value_list> = [<condition_value>, <condition_value>, ...]
<condition_value> = ("string" | "number")
语法说明:
一个策略 policy 可以包含多条语句 statement。 策略的最大长度是 6144 个字符(不包含空格),具体信息请参阅 限制。 各个块 block 的显示顺序无限制。例如,在策略中, version_block 可以跟在 effect_block 后面等。
当前支持的语法版本为 2.0。
principal_block 元素在控制台中不允许写入,仅支持在策略管理 API 中和策略语法相关的参数中使用 principal 。
操作 action 和资源 resource 都支持列表。
生效条件可以是单个条件,或者包括多个子条件块的逻辑组合。每个生效条件包括条件操作符 condition_type、条件键 condition_key,条件值 condition_value。
每条语句 statement 的效力 effect 为 deny 或 allow 。当策略中包含的语句中既包含有 allow 又包含有 deny 时,遵循 deny 优先原则。

字符串说明

语法描述的元素字符串说明如下:

action_string

由描述作用域、服务类型和操作名称组成。
//所有产品所有操作
"action":"*"
"action":"*:*"
// COS 产品所有操作
"action":"cos:*"
// COS 产品的名为 GetBucketPolicy 的操作
"action":"cos:GetBucketPolicy"
// COS 产品部分匹配 Bucket 的操作
"action":"cos:*Bucket*"
// cos 产品,名为 GetBucketPolicy\\PutBucketPolicy\\DeleteBucketPolicy 的操作列表
"action":["cos:GetBucketPolicy","cos:PutBucketPolicy","cos: DeleteBucketPolicy"]


resource_string

资源通过六段式描述。
qcs: project :serviceType:region:account:resource
示例如下所示:
// COS 产品的 object 资源,上海地域,资源拥有者的 uid 是10001234,资源名是 bucket1/object2
qcs::cos:sh:uid/10001234:prefix//10001234/bucket1/object2
// CMQ 产品的队列,上海地域,资源拥有者的 uin 是12345678,资源名是12345678/queueName1,资源前缀是 queueName
qcs::cmqqueue:sh:uin/12345678:queueName/12345678/queueName1
// CVM 产品的云服务器,上海地域,资源拥有者的 uin 是12345678,资源名是 ins-abcdefg,资源前缀是 instance
qcs::cvm:sh:uin/12345678:instance/ins-abcdefg
如果您想了解各个产品对应的资源定义详情,请参阅 支持CAM 的产品 中对应产品的参考文档。

condition_type_string

条件操作符,描述测试条件的类型。例如 string_equal、string_not_equal、date_equal、date_not_equal、ip_equal、ip_not_equal、numeric_equal、numeric_not_equal 等。示例如下所示:
"condition":{
"string_equal":{"cvm:region":["sh","gz"]},
"ip_equal":{"qcs:ip":"10.131.12.12/24"}
}

condition_key_string

条件键,表示将对其值采用条件操作符进行操作,以便确定条件是否满足。CAM 定义了一组在所有产品中都可以使用的条件键,包括 qcs:current_time、qcs:ip 、qcs:uin 和 qcs:owner_uin 等。具体信息请参阅 生效条件

principal_id_string

对于 CAM 而言,用户也是它的资源。因此委托人 principal 也采用六段式描述。示例如下,具体信息请参阅 资源描述方式
"principal": {"qcs":["qcs::cam::uin/1238423:uin/3232",
"qcs::cam::uin/1238423:groupid/13"]}


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈