云原生API网关自定义权限策略参考

更新时间:
复制为 MD 格式

当系统权限策略无法满足需求时,可创建自定义权限策略实现最小授权。自定义权限策略支持精细化权限管控,有效提升资源访问安全性。本文提供云原生API网关的自定义权限策略示例。

什么是自定义权限策略

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

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

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

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

操作文档

授权模式

云原生API网关支持两种自定义权限策略的授权模式,请根据实际场景选择:

  • 通过 Resource ARN 指定资源:在 Resource 元素中填写具体的资源 ARN,将权限精确限定到某个网关实例、API 或全部资源。这是最常用的授权模式。

  • 通过条件键限定资源范围:将 Resource 设为 *,在 Condition 元素中使用 apig:GatewayId 条件键限定网关实例。当需要同时管控同一网关下的多种资源类型(如服务和来源)而无需逐一指定 ARN 时,使用此模式。

示例概览

下表汇总了本文档中的自定义权限策略示例。

示例

授权对象

操作范围

限定方式

适用场景

示例 1(推荐)

指定网关实例

全部操作(apig:*

Resource ARN

授予某个网关实例的完整权限。

示例 2

指定 API

全部操作(apig:*

Resource ARN

授予某个 API 的完整权限。

示例 3

全部资源

只读(List*Get*

Resource ARN

授予所有网关资源的只读权限。

示例 4

指定网关下的服务和来源

Service 和 Source 的增删改查

条件键(apig:GatewayId

需要在同一网关下管控多种资源类型,无需逐一指定 ARN。

通过 Resource ARN 指定资源

以下示例在 Resource 元素中指定具体的资源 ARN 来限定授权范围。这是最常用的授权模式。如果您首次创建自定义策略,建议从示例 1 开始。

  • 示例 1(推荐):授予RAM用户对云原生API网关实例gw-cpnx*******的读写权限。

    {
      "Statement": [
        {
          "Action": [
            "apig:*"
          ],
          "Resource": "acs:apig:*:*:gateway/gw-cpnx*******",
          "Effect": "Allow"
        }
      ],
      "Version": "1"
    }
  • 示例2:授予RAM用户对云原生API网关API列表api-cpo22t5lhtgxxxxxx的读写权限。

    {
      "Statement": [
        {
          "Action": [
            "apig:*"
          ],
          "Resource": "acs:apig:*:*:httpapi/api-cpo22t5lhtgxxxxxx",
          "Effect": "Allow"
        }
      ],
      "Version": "1"
    }
  • 示例3:授予RAM用户对云原生API网关所有资源的读权限。

    {
      "Statement": [
        {
          "Action": [
            "apig:List*",
            "apig:Get*"
          ],
          "Resource": "acs:apig:*:*:*",
          "Effect": "Allow"
        }
      ],
      "Version": "1"
    }

通过条件键限定资源范围

前述示例使用 Resource ARN 指定具体资源。以下示例改用条件键 apig:GatewayId 限定网关实例范围。Resource 设为 *,授权范围由 Condition 中的条件键控制。

  • 示例4:授予RAM用户管理指定网关实例下服务和来源的权限。

    下表按资源类型和操作类型列出本策略中的 Action。

    资源类型

    查询

    列举

    创建

    更新

    删除

    服务(Service)

    apig:GetService

    apig:ListServices

    apig:CreateService

    apig:UpdateService

    apig:DeleteService

    来源(Source)

    apig:GetSource

    apig:ListSources

    apig:CreateSource

    apig:UpdateSource

    apig:DeleteSource

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "apig:GetService",
            "apig:GetSource",
            "apig:ListServices",
            "apig:ListSources",
            "apig:CreateService",
            "apig:CreateSource",
            "apig:UpdateService",
            "apig:UpdateSource",
            "apig:DeleteService",
            "apig:DeleteSource"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "apig:GatewayId": [
                "gw-d6h4********65n996e0"
              ]
            }
          }
        }
      ]
    }

授权信息参考

创建自定义权限策略前,需了解业务的权限管控需求和云原生API网关的授权信息。详细内容请参见授权信息