使用Amazon Verified Permissions和Amazon Cognito实现API访问

AWS宣布Amazon API Gateway支持使用Amazon Verified Permissions进行授权

AWS最近宣布,Amazon API Gateway现在可以通过Amazon Verified Permissions进行请求授权。该功能允许使用Amazon Cognito签发的令牌对API资源进行授权决策。

Amazon Verified Permissions简介

Amazon Verified Permissions是一个运行时授权引擎,于2023年6月正式发布。它允许用户为资源构建细粒度的授权模型,并实时评估对这些资源的访问请求。授权模型通过schemas定义,指定了应用程序上下文中的主体类型、资源和操作。

授权流程

  1. 定义Schema:用户首先定义schema,明确主体、资源和操作的类型。
  2. 创建策略:基于主体的角色或属性,用户可以创建策略,允许或拒绝对资源的访问。
  3. 授权请求:通过AWS SDK或HTTP请求调用Amazon Verified Permissions的IsAuthorized端点,返回授权结果、执行的策略以及评估过程中遇到的错误。

与Amazon API Gateway的集成

为了将Amazon Verified Permissions与Amazon API Gateway结合使用,用户需要配置一个Lambda Authorizer。Lambda Authorizer负责从请求中提取授权所需的字段,调用Amazon Verified Permissions的决策端点,并将响应转换为Amazon API Gateway所需的格式。AWS还提供了一个CloudFormation模板,包含一个示例Lambda Authorizer。

集成步骤

  1. 映射主体、操作和资源:将API Gateway请求中的主体、操作和资源映射到Amazon Verified Permissions的schema和策略中。
  2. 导入Cognito用户池实体:通过快速入门指南,将Cognito用户池实体作为主体导入schema,并将API Gateway资源映射到操作。
  3. 设置策略:基于映射关系设置访问控制策略。

客户端在请求API时,只需包含已登录Amazon Cognito用户的访问或身份令牌,即可验证对资源的访问权限。

成本问题

集成Amazon Verified Permissions与Amazon API Gateway的一个主要缺点是成本较高。Amazon Verified Permissions每百万次请求收费约150美元,而API Gateway的HTTP选项每百万次请求收费1美元,REST选项收费3.5美元。Serverless Advocate Yan Cui指出,尽管该服务功能强大,但当前定价使其仅适用于业务关键、可预测且低吞吐量的环境。

替代方案

其他实现细粒度访问控制的方案包括OpenFGAPermit.io的Policy Decision Point。虽然这些方案可能更具成本效益,但它们不提供与Amazon Cognito或API Gateway的一键集成,无法简化授权模型的创建。

可用性

Amazon Verified Permissions已在所有商业AWS区域上线。更多关于其与API Gateway和Cognito集成的详细信息,请参阅用户指南

阅读 115
0 条评论