首页 > 解决方案 > 跨账户使用 AWS cognito 用户池进行登录

问题描述

我有两个 AWS 账户,比如说“master”和“regional”。我的“主”账户使用了 AWS Cognito,因此它创建了名为“主用户池”的用户池。即“master-user-pool”属于“master”AWS 账户。

现在,我希望“区域”AWS 账户的 Cognito 上的“主用户池”的所有用户都可用,以便“区域”账户可以向“主”账户中的用户发放令牌(cognito)。无论如何?

澄清一下,我不是指 API Gateway 的跨账户 cognito 授权者,因为它是针对 API 的。

我的情况与上面提到的不同。

标签: amazon-web-servicesamazon-cognitoaws-userpools

解决方案


Amazon Cognito 不直接支持跨账户 JWT 令牌生成。

但是,您实现了一种横向方式来实现此用例。您可以使用“主”上的 Cognito 身份池来生成临时 AWS 凭证,“区域”账户可以使用这些凭证来进行 Cognito 用户池 API 调用。不建议为生产应用程序实现这样的横向系统,因为它有自己的陷阱。Amazon Cognito 也不提供任何 API 或功能来备份用户池。

如果您确实决定实施递归方法,我建议您从彻底了解用户池和身份池之间的区别开始。我为此写了一篇文章,阐明了差异。然后,您可以使用您的身份池和 RBAC 间接利用另一个用户池。

我能想到的另一种横向方式是通过 AWS Lambda,并在使用 AWS Secrets Manager 或 SSM Parameter Store 等托管 AWS 安全服务时安全地加载“主”账户的凭证。

总而言之,无论哪种方式,都没有直接的方法可以让这个用例正常工作,而横向的变通/破解是解决这个问题的唯一方法。


推荐阅读