注意:本文档主要介绍短信 SMS 访问管理功能的相关内容,其他产品访问管理相关内容请参见 支持 CAM 的产品。
在 SMS 访问管理中使用 预设策略 来实现授权虽然方便,但权限控制粒度较粗,不能细化到 SMS 应用和 云 API 粒度。如果开发者要求精细的权限控制能力,则需要创建自定义策略。
自定义策略有多种创建方法,下方表格展示各种方法的对比,具体操作流程请参考下文。
创建入口 | 创建方法 | 效力(Effect) | 资源 (Resource) | 操作 (Action) | 灵活性 |
---|---|---|---|---|---|
CAM 控制台 | 策略生成器 | 手动选择 | 语法描述 | 手动选择 | 中 |
CAM 控制台 | 策略语法 | 语法描述 | 语法描述 | 语法描述 | 高 |
CAM 服务端 API | CreatePolicy | 语法描述 | 语法描述 | 语法描述 | 高 |
说明:
- SMS 不支持按产品功能或项目来创建自定义策略。
- 手动选择指用户在控制台所展示的候选项列表中选择对象。
- 语法描述指通过 授权策略语法 来描述对象。
如上文所述,SMS 权限管理的资源粒度是应用。应用的策略语法描述方式遵循 CAM 资源描述方式。在下文的示例中,开发者的主账号 ID 是12345678,开发者创建了三个应用:App 分别是1400000000、1400000001和1400000002。
短信所有应用的策略语法描述
"resource": ["qcs::sms::uin/12345678:app/*"]
单个应用的策略语法描述
"resource": [ "qcs::sms::uin/12345678:app/1400000001"]
多个应用的策略语法描述
"resource": [ "qcs::sms::uin/12345678:app/1400000000","qcs::sms::uin/12345678:app/1400000001"]
如上文所述,短信权限管理的操作粒度是云 API,详情请参见 可授权的资源及操作。在下文的示例中,以 DescribeAppList(获取应用列表)、DescribeAppInfo(获取应用信息)等云 API 为例。
短信所有云 API 的策略语法描述
"action": [
"name/sms:*"
]
单个云 API 操作的策略语法描述
"action": [
"name/sms:DescribeAppList"
]
多个云 API 操作的策略语法描述
"action": [
"name/sms:DescribeAppList",
"name/sms:DescribeAppInfo"
]
在下文示例中,我们将创建一个自定义策略。该策略允许对1400000001这个短信应用进行任何操作,除了 DeleteAppInfo 这个控制台 API。
qcs::sms::uin/12345678:app/1400000001
。qcs::sms::uin/12345678:app/1400000001
。在下文示例中,我们将创建一个自定义策略。该策略允许对1400000001和1400000002这两个短信应用进行任何操作,但不允许对1400000001进行 DeleteAppInfo 操作。
说明:策略模板,指新策略是现有策略(预置策略或自定义策略)的一个拷贝,然后在此基础上做调整。在实际使用中,开发者可以根据情况选择合适的策略模板,降低编写策略内容的难度和工作量。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"name/SMS:*"
],
"resource": [
"qcs::sms::uin/12345678:app/1400000001",
"qcs::sms::uin/12345678:app/1400000002"
]
},
{
"effect": "deny",
"action": [
"name/SMS: DeleteAppInfo "
],
"resource": [
"qcs::SMS::uin/12345678:app/1400000001"
]
}
]
}
说明:策略内容需遵循 CAM 策略语法逻辑,其中资源和操作两个元素的语法请参见上文 资源语法描述 和 操作语法描述 所述。
6. 单击【完成】完成自定义策略的创建。
后续将该策略授予其他子账号的方法同 将 SMS 全读写访问权限授予已存在的子账号。
本页内容是否解决了您的问题?