如何为 API Gateway REST API 激活 IAM 身份验证?

上次更新日期:2021 年 10 月 6 日

我想要激活 AWS Identity and Access Management (IAM) 身份验证以访问我的 Amazon API Gateway (API Gateway) REST API。该如何设置?

简短描述

在 API Gateway 控制台中为 API 方法开启 IAM 身份验证。然后,使用 IAM 策略以及资源策略为您的 API 用户指定权限。

有关可用于 API Gateway 的不同安全功能的更多信息,请参阅在 API Gateway 中控制和管理对 REST API 的访问

解决方法

为您的 REST API 开启 IAM 身份验证

1.    在 API Gateway 控制台中,选择您的 API 的名称。

2.    在资源窗格中,选择您想要用于激活 IAM 身份验证的方法 (例如 GETPOST)。

3.    在方法执行窗格中,选择方法请求

4.    在设置下,对于授权,选择铅笔图标 (编辑)。然后,从下拉列表中选择 AWS_IAM,接下来选择复选标记图标 (更新)。

5.    (可选) 对要为其激活 IAM 身份验证的每个 API 方法重复步骤 2-4。

6.    部署您的 API 以使更改生效。

7.    在阶段编辑器窗格中,复制调用 URL。 稍后您将使用该调用 URL 来进行测试。

有关更多信息,请参阅使用 API Gateway 控制台设置方法。另外,在 API Gateway 控制台中获取 API 的调用 URL

为一组 IAM 用户授予 API 授权

1.    确定您希望您的 API 用户拥有的权限。有关更多信息,请参阅使用 IAM 权限控制对 API 的访问

2.    创建包含所需权限的 IAM 策略。有关示例和格式指导,请参阅以下内容:
控制调用 API 的访问权
API 执行权限的 IAM 策略示例
Amazon API Gateway 基于身份的策略示例
注意:要完成本文结尾的测试说明,您必须允许调用权限。

3.    通过执行以下操作之一将 IAM 策略附加到 IAM 组:
将策略附加到现有的 IAM 组
– 或 –
创建新的 IAM 组时附加策略。

有关更多信息,请参阅创建并将策略附加到 IAM 用户

注意:最佳实践是在 IAM 组级别授予访问权限。

(可选) 配置 API Gateway 资源策略

您还可以使用 API Gateway 资源策略 (基于资源的权限) 以及 IAM 策略 (基于身份的权限) 管理对 API 的访问权限。有关更多信息,请参阅 IAM 身份验证和资源策略基于身份的策略和基于资源的策略

重要提示:如果您使用一种类型的 IAM 策略拒绝访问 API,并允许使用另一种类型的策略进行访问,则访问将被拒绝。有关更多信息,请参阅策略评估结果表

发送请求以测试身份验证设置

使用 Postman 应用程序,通过您激活 IAM 身份验证的方法向您的 API 资源发送请求。

注意:要手动验证使用另一个工具或环境发送至 API Gateway 的请求,请使用签名版本 4 签名过程。有关更多信息,请参阅为请求签名

1.    在 Postman 中的授权选项卡上,执行以下操作:
对于类型,选择 AWS 签名
对于 AccessKeySecretKey,输入 IAM 用户的 IAM 访问密钥 ID 和私有访问密钥。IAM 用户必须位于有权访问 API 的 IAM 组中。

2.    在输入请求 URL 字段中,粘贴 API 的调用 URL。如果您对特定 API 资源的方法激活 IAM 身份验证,则将资源名称附加到调用 URL 的结尾。

注意:包含资源名称的完整请求 URL 如下所示:https://restApiId.execute-api.region.amazonaws.com/stageName/resourceName

经过身份验证的请求将返回 200 OK 响应代码。未授权的请求将返回消息缺少身份验证令牌403 禁止响应代码。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?