Node.js 使用NodeJS(服务器端)从另一个帐户访问AWS Cognito池
我们正在开发一个有两种用户的应用程序Node.js 使用NodeJS(服务器端)从另一个帐户访问AWS Cognito池,node.js,amazon-web-services,amazon-cognito,Node.js,Amazon Web Services,Amazon Cognito,我们正在开发一个有两种用户的应用程序 个人用户(允许自己注册) 用户是机构的一部分(仅由我们的内部管理员添加到应用程序中 用户) 该应用程序的设计方式是,所有Cognito操作(如添加用户、删除用户、密码重置等)都由运行在AWS Lambda中的服务器api(服务器端身份验证流)完成。我们在客户端不做任何事情 我们的基础设施团队目前正在改变所有应用程序都将在其自己的AWS帐户下运行的方式,但我们不希望在每个帐户中创建用户池,因为我们的许多应用程序共享相同的用户池。因此,我们决定将池保留在活期帐户
提前感谢我假设您使用NodeJS中的awsdk连接到Cognito用户池 AWS SDK将以某种方式获取凭据,以与特定AWS帐户的AWS服务器进行身份验证。如果没有在代码中指定访问代码/密钥(我希望不是这样!),SDK可能会从环境中获取(临时)密钥 如果在Lambda或ECS容器中运行NodeJS,则可以设置IAM角色。如果您这样做,AWS将创建一些临时凭证,并通过环境变量注入它们 要连接到不同的AWS帐户,通常有两个选项:
选项2适用于您的场景,主要技巧是以安全的方式提供凭据。如何做到这一点取决于您的特定环境,但Lambda中的一种可能性是使用安全环境变量或SSM参数 谢谢你帮我。我们的lambda基于角色访问其他资源,但如果无法通过角色完成跨帐户资源访问,我们肯定可以使用凭据。由于我们的应用程序配置详细信息已存储在ssm中,我可以向ssm添加凭据。我希望仅仅将凭证传递给CognitoAPI就足以连接到池。我今晚会尝试并更新回来。