亚马逊Cognito多租户最佳方法

时间:2017-12-05 10:39:05

标签: amazon-web-services multi-tenant amazon-cognito

我正在开发AWS上的多租户应用程序。我正在努力在认知上实施多租户。我的第一种方法是为整个应用程序使用一个Cognito用户池和一个标识池。

目前我们每个租户有两种用户(管理员和普通用户),所以我想为他们分配不同的IAM角色。

我们的想法是为每个用户角色创建一个Cognito组,并将它们与各自的IAM角色相关联。它工作正常。使用组进行角色分配时,我将身份池身份验证角色选择配置为“从令牌中选择角色”。

但是,对于20个租户,将需要40个组,并且每个用户池的Cognito组限制为25个。

每个租户使用Cognito用户池具有相同的不便,因为Cognito用户池的限制为50(我们预计超过25个租户)。

这些是软限制,所以我知道可以要求增加它。事实上,我要求增加Cognito Groups Limit,但答案花了太长时间。

作为Cognito Group的替代方案,我可以将身份池身份验证角色选择配置为“选择带规则的角色”。

通过这种方式,我添加了Cognito User Pool自定义属性(custom:role)和配置的Identity Pool Cognito Authenticate Provider,其规则如下:

if custom:role equals 'tenant1_admin' then assign TENANT_1_ADMIN_IAM_ROLE

if custom:role equals 'tenant1_regular' then assign TENANT_1_REGULAR_IAM_ROLE

...

if custom:role equals 'tenant20_admin' then assign TENANT_20_ADMIN_IAM_ROLE

if custom:role equals 'tenant20_regular' then assign TENANT_20_REGULAR_IAM_ROLE

这是在Cognito上实施多租户的正确方法吗?据我所知,Identity Pool Authenticate Providers规则编号没有限制。

2 个答案:

答案 0 :(得分:5)

如前所述,您可以与AWS支持小组联系,要求增加您的群组限制。明确说明您的用例将使限制增加更容易。您是否在用户池中使用saml或cognito登录?

答案 1 :(得分:2)

我知道这个问题已经回答并且有点老了,但是认为这对于遇到这个问题的其他人可能很有用。 AWS实际上已经制作了白皮书和快速入门指南,用于在可用https://aws-quickstart.s3.amazonaws.com/saas-identity-cognito/doc/saas-identity-and-isolation-with-cognito-on-the-aws-cloud.pdf

的AWS上创建多租户SaaS应用程序

它具有基本的Web前端(S3上的AngularJS),Cognito(每个租户一个池),处理用户租户查找的逻辑以及用于托管服务的ECS配置。非常详细,应该可以为刚开始或对这类问题感到疑惑的人回答一系列问题。

相关问题