Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在 API Gateway 中为私有 API 使用 VPC 终端节点策略

您可以通过将 API Gateway 配置为使用接口 VPC 终端节点来提高私有 API 的安全性。接口终端节点由 AWS PrivateLink 提供支持,您可以使用该技术通过私有 IP 地址私密访问 AWS。有关创建 VPC 终端节点的更多信息,请参阅创建接口终端节点

VPC 终端节点策略 是一种 IAM 资源策略,您可以将它们附加到接口 VPC 终端节点来控制对终端节点的访问。有关更多信息,请参阅使用 VPC 终端节点控制对服务的访问。您可以使用终端节点策略来限制从您的内部网络访问您的私有 API 的流量。您可以选择允许或拒绝访问可以通过 VPC 终端节点访问的特定私有 API。

VPC 终端节点策略可以与 API Gateway 资源策略一起使用。资源策略用于指定哪些委托人可以访问 API。终端节点策略指定哪些私有 API 可以通过 VPC 终端节点调用。有关资源策略的更多信息,请参阅使用 Amazon API Gateway 资源策略控制对 API 的访问

VPC 终端节点策略示例

您可以为 Amazon API Gateway 的 Amazon Virtual Private Cloud 终端节点创建一个策略,在其中可以指定:

  • 可执行操作的委托人。

  • 可执行的操作。

  • 可用于执行操作的资源。

要将策略附加到 VPC 终端节点,您需要使用 VPC 控制台。有关更多信息,请参阅使用 VPC 终端节点控制对服务的访问

示例 1:授予对两个 API 访问权限的 VPC 终端节点策略

以下示例策略只授予通过该策略附加到的 VPC 终端节点访问两个特定 API。

{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/*", "arn:aws:execute-api:us-east-1:123412341234:aaaaa11111/*" ] } ] }

示例 2:授予对 GET 方法访问权限的 VPC 终端节点策略

以下示例策略授予用户通过该策略附加到的 VPC 终端节点访问特定 API 的 GET 方法。

{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/stageName/GET/*" ] } ] }

示例 3:授予用户对特定 API 特定用户访问权限的 VPC 终端节点策略

以下示例策略授予特定用户通过该策略附加到的 VPC 终端节点访问特定 API。

{ "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123412341234:user/MyUser" ] }, "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/*" ] } ] }