自定义策略

最近更新时间:2024-11-14 11:49:11

我的收藏
在 VMS 访问管理中使用 预设策略 来实现授权虽然方便,但权限控制粒度较粗,不能细化到 VMS 应用和 云 API 粒度。如果开发者要求精细的权限控制能力,则需要创建自定义策略。
注意:
本文档主要介绍语音消息 VMS 访问管理功能的相关内容,其他产品访问管理相关内容请参见 支持 CAM 的产品

自定义策略创建方法

自定义策略有多种创建方法,下方表格展示各种方法的对比,具体操作流程请参考下文。
创建入口
创建方法
效力(Effect)
资源 (Resource)
操作 (Action)
灵活性
策略生成器
手动选择
语法描述
手动选择
策略语法
语法描述
语法描述
语法描述
CAM 服务端 API
语法描述
语法描述
语法描述
说明:
VMS 不支持按产品功能或项目来创建自定义策略。
手动选择指用户在控制台所展示的候选项列表中选择对象。
语法描述指通过授权策略语法来描述对象。

授权策略语法

资源语法描述

如上文所述,VMS 权限管理的资源粒度是应用。应用的策略语法描述方式遵循 CAM 资源描述方式。在下文的示例中,开发者的主账号 ID 是12345678,开发者创建了三个应用:App 分别是1400000000、1400000001和1400000002。

语音消息所有应用的策略语法描述

"resource": ["qcs::vms::uin/12345678:app/*"]

单个应用的策略语法描述

"resource": [ "qcs::vms::uin/12345678:app/1400000001"]

多个应用的策略语法描述

"resource": [ "qcs::vms::uin/12345678:app/1400000000","qcs::vms::uin/12345678:app/1400000001"]

操作语法描述

如上文所述,语音消息权限管理的操作粒度是云 API,详情请参见 可授权的资源及操作。在下文的示例中,以 DescribeAppList(获取应用列表)、DescribeAppInfo(获取应用信息)等云 API 为例。

语音消息所有云 API 的策略语法描述

"action": [
"name/vms:*"
]

单个云 API 操作的策略语法描述

"action": [
"name/vms:DescribeAppList"
]

多个云 API 操作的策略语法描述

"action": [
"name/vms:DescribeAppList",
"name/vms:DescribeAppInfo"
]

自定义策略使用示例

使用策略生成器

在下文示例中,我们将创建一个自定义策略。该策略允许对1400000001这个语音消息应用进行任何操作,除了 DeleteAppInfo 这个控制台 API。
1. 以腾讯云 主账号 的身份访问 CAM 控制台的策略,单击新建自定义策略
2. 选择按策略生成器创建,进入策略创建页面。
3. 选择服务和操作。
效果(Effect)配置项选择允许



服务(Service)配置项选择语音消息



操作(Action)配置项勾选读操作和写操作项后把操作名“DeleteAppInfo”这项取消勾选。



资源(Resource)配置项按照下图指引配置。



条件(Condition)配置项无需配置。


4. 单击下一步,按需修改策略名称(也可以不修改)。
5. 单击完成,完成自定义策略的创建。 后续将该策略授予其他子账号的方法同 将 VMS 全读写访问权限授予已存在的子账号。

使用策略语法

在下文示例中,我们将创建一个自定义策略。该策略允许对1400000001和1400000002这两个语音消息应用进行任何操作,但不允许对1400000001进行 DeleteAppInfo 操作。
1. 以腾讯云 主账号 的身份访问 CAM 控制台的策略,单击新建自定义策略
2. 选择按策略语法创建,进入策略创建页面。
3. 选择模板类型框下选择空白模板
说明
策略模板,指新策略是现有策略(预置策略或自定义策略)的一个拷贝,然后在此基础上做调整。在实际使用中,开发者可以根据情况选择合适的策略模板,降低编写策略内容的难度和工作量。
4. 单击下一步,按需修改策略名称(也可以不修改)。
5. 编辑策略内容编辑框中填写策略内容。本示例的策略内容为:
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"name/vms:*"
],
"resource": [
"qcs::vms::uin/12345678:app/1400000001",
"qcs::vms::uin/12345678:app/1400000002"
]
},
{
"effect": "deny",
"action": [
"name/vms:DeleteAppInfo"
],
"resource": [
"qcs::vms::uin/12345678:app/1400000001"
]
}
]
}
说明
策略内容需遵循 CAM 策略语法逻辑,其中资源和操作两个元素的语法请参见上文 资源语法描述 和 操作语法描述 所述。
6. 单击创建策略完成自定义策略的创建。 后续将该策略授予其他子账号的方法同 将 VMS 全读写访问权限授予已存在的子账号