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

2 分钟阅读
0

我想激活 AWS Identity and Access Management (IAM) 身份验证以访问我的 Amazon API Gateway (API Gateway) REST API。

简短描述

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

有关可用于 API Gateway 的不同安全功能的更多信息,请参阅 Controlling and managing access to a REST API in API Gateway

解决方法

为 REST API 启用 IAM 身份验证

  1. API Gateway 控制台中,选择 API 的名称。
  2. Resources(资源)窗格中,选择要激活 IAM 身份验证的方法(例如 GETPOST)。
  3. Method Execution(方法执行)窗格中,选择 Method Request(方法请求)。
  4. Settings(设置)下的 Authorization(授权)中,选择铅笔图标(Edit(编辑))。然后,从下拉列表中选择 AWS_IAM,接下来选择复选标记图标(Update(更新))。
  5. (可选)对要激活 IAM 身份验证的每个 API 方法重复步骤 2-4。
  6. 部署您的 API,以使更改生效。
  7. Stage Editor(阶段编辑器)窗格中,复制 **Invoke URL(调用 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 组时附加策略。

有关更多信息,请参阅 Create and attach a policy to an IAM User

**注意:**最佳做法是在 IAM 组级别授予访问权限。

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

您还可以使用 API Gateway 资源策略(基于资源的权限)以及 IAM 策略(基于身份的权限)管理对 API 的访问权限。有关更多信息,请参阅 IAM authentication and resource policyIdentity-based policies and resource-based policies

**重要事项:**如果您使用一种类型的 IAM 策略拒绝对 API 的访问,而允许使用另一种类型的策略对其进行访问,则访问将被拒绝。有关更多信息,请参阅 Policy evaluation outcome tables

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

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

**注意:**要手动验证使用其他工具或环境发送到 API Gateway 的请求,请使用签名版本 4 签名流程。有关详细信息,请参阅签署请求

  1. 在 Postman 的 Authorization(授权)选项卡上,执行以下操作:
    对于 Type(类型),选择“**AWS 签名”。
    对于 AccessKeySecretKey,输入 IAM 用户的 IAM 访问密钥 ID 和私密访问密钥。IAM 用户必须位于有权访问 API 的 IAM 组中。
  2. Enter request URL(输入请求 URL)字段中,粘贴您的 API 的调用 URL。如果您对特定 API 资源的方法激活了 IAM 身份验证,则将资源名称附加到调用 URL 的末尾。

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

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

相关信息

API 网关资源策略如何影响授权工作流程