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

创建 API Gateway 资源策略并将其附加到 API

要允许用户通过调用 API 执行服务访问您的 API,您必须创建 API Gateway 资源策略以控制对 API Gateway 资源的访问,并将该策略附加到 API。

重要

要更新 API Gateway 资源策略,您将需要具有 apigateway:UpdateRestApiPolicy 权限以及 apigateway:PATCH 权限。

创建 API 时即可将资源策略附加到 API,也可以日后附加。对于私有 API,请注意,在您将资源策略附加到私有 API 之前,对该 API 的所有调用都将失败。

重要

如果在创建 API 后更新资源策略,您将需要附加更新的策略,然后部署 API 以传播更改。单独更新或保存策略不会更改 API 的运行时行为。有关部署 API 的更多信息,请参阅在 Amazon API Gateway 中部署 REST API

访问控制可以由 IAM 条件元素来实现,包括关于 AWS 账户、资源 VPC、源 VPC 终端节点或 IP 范围的条件。如果策略中的 Principal 设置为 "*",则可以随资源策略一起使用其他授权类型。如果 Principal 设置为 "AWS",则对于未使用 AWS_IAM 授权保护的所有资源 (包括不安全的资源),授权将失败。

下面几节介绍如何创建自己的 API Gateway 资源策略并将其附加到 API。如果附加一个策略,则会将该策略中的权限应用于 API 中的方法。

重要

如果您使用 API Gateway 控制台将资源策略附加到已部署的 API,或者更新现有的资源策略,则需要在控制台中重新部署 API 以使更改生效。

附加 API Gateway 资源策略(控制台)

您可以使用 AWS 管理控制台将资源策略附加到 API Gateway API。

将资源策略附加到 API Gateway API

  1. 通过 https://console.amazonaws.cn/apigateway 登录 API Gateway 控制台。

  2. 选择 API 名称。

  3. 在左侧导航窗格中,选择 Resource Policy (资源策略)

  4. 如果需要,选择其中一个 Examples (示例)。在策略示例中,占位符括在双大括号 ("{{placeholder}}") 内。将每个占位符 (包括大括号) 替换为必要的信息。

    如果不使用任何一个 Examples (示例),则输入您的资源策略。

  5. 选择 Save (保存)

如果已在 API Gateway 控制台中部署了 API,则需要重新进行部署以使资源策略生效。

附加 API Gateway 资源策略 (AWS CLI)

要使用 AWS CLI 创建新 API 并向其附加资源策略,请按以下所示调用 create-rest-api 命令:

aws apigateway create-rest-api \ --name "api-name" \ --policy "{\"jsonEscapedPolicyDocument\"}"

要使用 AWS CLI 将资源策略附加到现有 API,请按以下所示调用 update-rest-api 命令:

aws apigateway update-rest-api \ --rest-api-id api-id \ --patch-operations op=replace,path=/policy,value='{\"jsonEscapedPolicyDocument\"}'