AWS API 网关授权方:同时需要 OAuth 令牌和 API 密钥可以获得什么安全性?

AWS API Gateway Authorizer: What security is gained by requiring both an OAuth token and an API key?

我正在尝试使用 AWS Cognito 用户池令牌保护 AWS API 网关。 API 网关授权方设置允许我要求 HTTP 请求同时包含 x-api-key header 和 authorization header(包含 JWT 令牌)。我附上了这张照片。

在我看来,要求 API 密钥和 OAuth 令牌是多余的。要求此端点的客户端同时提供两者可能有什么实际的安全优势?

Api键更多的是配合Usage Plan来控制

  • 给定客户端可以访问哪些阶段。
  • 设置节流限制。例如:每分钟 100 次调用。
  • 设置配额限制。例如:每天 10 万次调用。

Api 键实际上不包含任何用户特定的详细信息,它通常是根据 application/client.

创建的静态值

就我个人而言,我什至不认为这个 AWS Api 密钥等同于老派的 Basic Auth header,并且根本没有用于保护 api。

另一方面,身份验证 Header 通常 access_token and/or id_token,当特定用户成功 authorized/authenticated 针对身份验证服务器并获得收益时生成访问 API。

来自文档:

Don't rely on API keys as your only means of authentication and authorization for your APIs. For one thing, if you have multiple APIs in a usage plan, a user with a valid API key for one API in that usage plan can access all APIs in that usage plan. Instead, use an IAM role, a Lambda authorizer, or an Amazon Cognito user pool.