AWS Cognito - IAM - 拒绝对 public/unauth 用户的所有访问 - 联合

AWS Cognito - IAM - Deny all access to public/unauth users - Federated

我有一个网络应用程序,使用 cognito 连接到后端,全部在 aws 服务中。有一个 public api 方法 (Lambda) 调用 cognito 进行身份验证并返回会话令牌等。所有这些都来自后端,问题是任何人都可以访问 cognito api 直接从网络(直接连接到 aws api),我不希望这样...我如何定义策略以便不向用户授予对 Cognito 的 public 访问权限?

当然有知道我用户的用户 pool/cognito id

TIA

可能有几种方法可以解决这个问题。这是我想到的三个想法。

  • Cognito 联合身份将两个角色链接到您的身份池,一个用于未经身份验证的用户,一个用于经过身份验证的用户。您可以不授予 unauth 角色任何权限,只允许人们在与某些提供商(例如 Facebook)登录后访问它。
  • 您可以将 Lambda 放在 API 网关后面,然后使用联合身份(使用上述策略)安全访问它。
  • 最后,您还可以使用 Cognito 用户池对 API 网关进行身份验证。 API Gateway 与用户池紧密集成,因此您所要做的就是登录并提供返回的登录令牌之一以进行身份​​验证。