创建自定义权限策略
如果号码认证服务系统策略无法满足您的需求,您可以自定义符合要求的权限策略。本文为您介绍如何创建自定义权限策略及示例。
前提条件
通过脚本编辑模式创建自定义权限策略
使用阿里云账号登录RAM控制台。
在左侧导航栏,选择
。在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑页签。
输入权限策略内容,然后单击下一步:编辑基本信息。
关于权限策略语法结构的详情,请参见权限策略语法和结构。 输入权限策略名称和备注。
检查并优化权限策略内容。
- 基础权限策略优化
系统会对您添加的权限策略语句自动进行基础优化。基础权限策略优化会完成以下任务:
- 删除不必要的条件。
- 删除不必要的数组。
- (可选)高级权限策略优化
您可以将鼠标悬浮在可选:高级策略优化上,单击执行,对权限策略内容进行高级优化。高级权限策略优化功能会完成以下任务:
- 拆分不兼容操作的资源或条件。
- 收缩资源到更小范围。
- 去重或合并语句。
单击确定。
- 基础权限策略优化
单击确定。
自定义策略示例
自定义策略示例一
仅允许调用某一个或多个API。
调用一个API时,脚本配置如下所示:
{ "Version": "1", "Statement": [ { "Action": [ "dypns:GetMobile" ], "Resource": "*", "Effect": "Allow" } ] }
调用多个API时,脚本配置如下所示:
{ "Version": "1", "Statement": [ { "Action": [ "dypns:GetMobile", "dypns:VerifyMobile" ], "Resource": "*", "Effect": "Allow" } ] }
API名称支持星号(*)通配符。
{ "Version": "1", "Statement": [ { "Action": [ "dypns:Query*", "dypns:Create*", "dypns:Get*", "dypns:List*" ], "Resource": "*", "Effect": "Allow" } ] }
更多API信息,请参见API概览。
自定义策略示例二
仅允许指定的IP地址或IP地址段调用。
适用场景:指定的RAM用户可以调用号码认证中所有API,且调用方的IP地址必须是指定的IP地址或IP地址段。
acs:SourceIp
的取值如果是单个IP地址,需要写明具体的IP地址,不能使用该IP地址的IP地址段形式xx.xx.xx.xx/32。例如:10.0.0.1不能写成10.0.0.1/32。
脚本配置如下所示:
{
"Version": "1",
"Statement": [{
"Action": "dypns:*",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": "42.120.XX.XX/24"
},
"DateLessThan": {
"acs:CurrentTime": "2016-12-16T15:00:00+08:00"
}
},
"Effect": "Allow"
}]
}
42.120.XX.XX为拟允许调用的IP地址,/24为该IP地址段的掩码。您可以根据实际需要设置可允许调用的IP地址或IP地址段。
DateLessThan字段为自动过期时间。如果当前时间晚于该时间,则上述IP地址/地址段的限制自动无效。反之,则该IP地址/地址段策略有效。
可以去掉DateLessThan字段,则该IP地址或IP地址段的策略将一直有效。配置如下:
{ "Version": "1", "Statement": [{ "Action": "dypns:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": "42.120.XX.XX/24" } }, "Effect": "Allow" }] }
可以把不同的策略组合使用。例如,只允许192.168.1.100的IP访问,且只能访问名为GetMobile的API方法。配置如下:
{ "Version": "1", "Statement": [{ "Action": "dypns:GetMobile", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": "192.168.1.100" } }, "Effect": "Allow" }] }