自定义权限策略参考

如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍号码认证服务使用自定义权限策略的场景和策略示例。

什么是自定义权限策略

在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。

  • 创建自定义权限策略后,需为RAM用户、用户组或RAM角色绑定权限策略,这些RAM身份才能获得权限策略中指定的访问权限。

  • 已创建的权限策略支持删除,但删除前需确保该策略未被引用。如果该权限策略已被引用,您需要在该权限策略的引用记录中移除授权。

  • 自定义权限策略支持版本控制,您可以按照RAM规定的版本管理机制来管理您创建的自定义权限策略版本。

操作文档

常见自定义权限策略场景及示例

  • 示例1:仅允许调用某一个或多个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*"
              ],
              "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": "dypns:*",
            "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访问,且只能访问名为GetMobile的API方法。配置如下:

    {
        "Version": "1",
        "Statement": [{
            "Action": "dypns:GetMobile",
            "Resource": "*",
            "Condition": {
                "IpAddress": {
                    "acs:SourceIp": "192.168.1.100"
                }
            },
            "Effect": "Allow"
        }]
    }

授权信息参考

使用自定义权限策略,您需要了解业务的权限管控需求,并了解号码认证的授权信息。详细内容请参见授权信息