我想激活 AWS Identity and Access Management(AWS 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。
1. 在 API Gateway 控制台中,选择 API 的名称。
2. 在资源窗格中,选择要激活 IAM 身份验证的方法(例如 GET 或 POST)。
3. 在方法执行窗格中,选择方法请求。
4. 在设置下的授权中,选择铅笔图标(编辑)。然后,从下拉列表中选择 AWS_IAM,接下来选择复选标记图标(更新)。
5. (可选)对要激活 IAM 身份验证的每个 API 方法重复步骤 2-4。
6. 部署您的 API,让更改生效。
7. 在阶段编辑器窗格中,复制**调用 URL。**稍后您将使用该调用 URL 进行测试。
有关更多信息,请参阅 Set up a method using the API Gateway console。还可以参考在 API Gateway 控制台中获取 API 的调用 URL。
1. 确定您希望 API 用户拥有的权限。有关更多信息,请参阅 Control access to an API with IAM permissions。
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 资源策略(基于资源的权限)以及 IAM 策略(基于身份的权限)管理对 API 的访问权限。有关更多信息,请参阅 IAM authentication and resource policy 和 Identity-based policies and resource-based policies。
**重要提示:**如果您使用一种类型的 IAM 策略拒绝对 API 的访问,而允许使用另一种类型的策略对其进行访问,则访问将被拒绝。有关更多信息,请参阅 Policy evaluation outcome tables。
使用 Postman 应用程序,通过已激活 IAM 身份验证的方法向您的 API 资源发送请求。
**注意:**要手动验证使用其他工具或环境发送到 API Gateway 的请求,请使用签名版本 4 签名流程。有关更多信息,请参阅签署请求。
1. 在 Postman 的授权选项卡上,执行以下操作: 对于类型,选择 AWS 签名。 对于 AccessKey 和 SecretKey,请输入 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 禁止访问响应代码。
API 网关资源策略如何影响授权工作流程