AWS Cognito - IAM - 拒绝对公共/未经身份验证用户的所有访问 - 联合

问题描述 投票:0回答:1

我有一个网络应用程序,使用 cognito 连接到后端,所有这些都在 aws 服务中。我还有一个公共 api 方法(Lambda),它可以调用 cognito 来进行身份验证并返回会话令牌等,所有这些都来自后端。

问题是任何人(知道用户池 ID 和客户端 ID)都可以直接从 Web 访问 cognito api(直接连接到 aws api)。

我不想这样。如何定义策略,以便不向用户授予对 Cognito 的公共访问权限?

api amazon-web-services amazon-iam amazon-cognito
1个回答
0
投票

可能有几种方法可以实现这一点。这是我想到的三个想法。

  • Cognito 联合身份将两种角色链接到您的身份池,一种用于未经身份验证的用户,一种用于经过身份验证的用户。您可以不向 unauth 角色授予任何权限,并且只允许人们在通过某个提供商(例如 Facebook)登录后访问它。
  • 您可以将 Lambda 放在 API Gateway 后面,然后使用联合身份对其进行安全访问(使用上述策略)。
  • 最后,您还可以使用 Cognito 用户池对 API Gateway 进行身份验证。 API Gateway 与用户池紧密集成,因此您只需登录并提供返回的登录令牌之一即可进行身份验证。
© www.soinside.com 2019 - 2024. All rights reserved.