AWS API 网关后端 API 身份验证

Posted

技术标签:

【中文标题】AWS API 网关后端 API 身份验证【英文标题】:AWS API gateway backend API authentication 【发布时间】:2022-01-01 09:25:24 【问题描述】:

是否可以使用 AWS Signature V4 进行身份验证,并根据与签名关联的身份为后端 API 设置访问策略?

或者是仅用于访问 AWS 基础设施 API 的签名消息。例如API Gateway API,而不是它管理的 API。

【问题讨论】:

【参考方案1】:

是的,你可以。如果您将 API Gateway 中定义的方法上的 authorizationType 设置为 AWS_IAM,则只有在请求由允许执行 @987654324 的 AWS 委托人(用户或假定角色)签名时才能调用该方法@对该方法的操作。

有关如何指定操作的详细信息,请参阅https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html。简而言之,您的策略应允许 execute-api:Invoke 使用以下格式的 ARN 或 ARN:

arn:aws:execute-api:region:account-id:api-id/stage-name/HTTP-VERB/resource-path-specifier

通过将不同的策略分配给不同的主体,每个主体可以拥有不同级别的访问权限。例如,您可以有一个策略允许所有 HTTP-VERB 是读写访问级别,而另一个策略只允许 GET、HEAD 和 OPTIONS 作为对 API 的只读访问级别。或者您可以使用不同的资源路径说明符来仅允许每个主体使用某些资源路径。

【讨论】:

以上是关于AWS API 网关后端 API 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

AWS Api 网关:缺少身份验证令牌

使用来自 REST 客户端 Postman 的 AWS_IAM 和 API 密钥对 AWS API 网关进行身份验证

AWS 身份验证和日志记录

无需托管 API 网关的多个服务的 FastAPI 身份验证

如果下游服务响应 401,如何在 Zuul API 网关中触发 OAuth2 身份验证

AWS Api Gateway + Lambda + 自定义域 (Route53) 缺少身份验证令牌问题