如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍号码百科使用自定义权限策略的场景和策略示例。
什么是自定义权限策略
在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。
创建自定义权限策略后,需为RAM用户、用户组或RAM角色绑定权限策略,这些RAM身份才能获得权限策略中指定的访问权限。
已创建的权限策略支持删除,但删除前需确保该策略未被引用。如果该权限策略已被引用,您需要在该权限策略的引用记录中移除授权。
自定义权限策略支持版本控制,您可以按照RAM规定的版本管理机制来管理您创建的自定义权限策略版本。
操作文档
常见自定义权限策略场景及示例
示例1:仅允许调用某一个或多个API。
调用一个API时,脚本配置如下所示:
{ "Version": "1", "Statement": [{ "Action": [ "dytns:DescribePhoneNumberAttribute" ], "Resource": "*", "Effect": "Allow" }] }
调用多个API时,脚本配置如下所示:
{ "Version": "1", "Statement": [{ "Action": [ "dytns:DescribePhoneNumberOperatorAttribute" ,"dytns:PhoneNumberStatusForPublic" ,"dytns:PhoneNumberStatusForAccount" ], "Resource": "*", "Effect": "Allow" }] }
API名称支持星号(*)通配符。
{ "Version": "1", "Statement": [{ "Action": [ "dytns:DescribePhoneNumberAttribute*" ], "Resource": "*", "Effect": "Allow" }] }
示例2:仅允许指定的IP地址或IP地址段的用户调用号码百科API。
说明acs:SourceIp
的取值如果是单个IP地址,需要写明具体的IP地址,不能使用该IP地址的IP地址段形式xx.xx.xx.xx/32。例如:10.0.0.1不能写成10.0.0.1/32。42.XXX.XX.XX为拟允许调用的IP地址,/24为该IP地址段的掩码。您可以根据实际需要设置可允许调用的IP地址或IP地址段。
DateLessThan字段为自动过期时间。如果当前时间晚于该时间,则上述IP地址/地址段的限制自动失效。反之,则该IP地址/地址段策略有效。
脚本配置如下所示:
{ "Version": "1", "Statement": [{ "Action": "dytns:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": "42.XXX.XX.XX/24" }, "DateLessThan": { "acs:CurrentTime": "2016-12-16T15:00:00+08:00" } }, "Effect": "Allow" }] }
可以去掉DateLessThan字段,则该IP地址或IP地址段的策略将一直有效。配置如下:
{ "Version": "1", "Statement": [{ "Action": "dypns:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": "42.XXX.XX.XX/24" } }, "Effect": "Allow" }] }
示例3:将不同的策略组合使用。例如,只允许192.168.1.100的IP访问,且只能访问名为DescribePhoneNumberAttribute的API方法。配置如下:
{ "Version": "1", "Statement": [{ "Action": "dytns:DescribePhoneNumberAttribute", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": "192.168.1.100" } }, "Effect": "Allow" }] }
授权信息参考
使用自定义权限策略,您需要了解业务的权限管控需求,并了解号码百科的授权信息。详细内容请参见授权信息。