亚马逊 API 网关的添加与使用指南
1. API 安全保障
API 资源的安全是至关重要的话题,在构建和部署 API 之前,了解 API 网关的安全选项十分必要。API 网关常被用作客户端连接的安全前置设备,下面将介绍 IAM 权限、亚马逊 Cognito 认证、Lambda 授权器和证书管理。
1.1 IAM 权限和策略
使用 IAM 认证方法保障 API 安全有两种主要方式:
- 提供创建、更新、维护和删除 API 的管理访问权限。
- 控制哪些实体可以调用或执行现有 API,这也是本节重点关注的部分。
使用 IAM 进行访问控制的好处在于将认证和授权集中到单一服务,熟悉 AWS 的用户对 IAM 服务也很熟悉,因为它几乎与所有服务集成。对角色或策略的更改无需重新部署 API 代码,且更改即时生效,不会导致服务中断。此外,在安全事件发生时,还能快速禁用角色或凭证。不过,每个客户端都需要一个 IAM 用户或角色,这对于内部客户端或服务来说尚可,但不适用于保障基于 Web 的 API 安全。
要使客户端成功请求 API,必须将允许 execute-api:Invoke
操作的 IAM 策略附加到实体上,同时 API 的授权类型需设置为 AWS_IAM
。以下是包含允许权限的策略文档示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",