代码之家  ›  专栏  ›  技术社区  ›  bertie

Amazon Cognito多租户最佳方法

  •  12
  • bertie  · 技术社区  · 7 年前

    我正在AWS上开发一个多租户应用程序。我正努力在cognito上实现多租户。我的第一种方法是为整个应用程序使用一个Cognito用户池和一个身份池。

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

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

    然而,有20个租户,将需要40个组,每个用户池的Cognito组限制为25个。

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

    这些都是软限制,所以我知道可以要求增加。事实上,我要求增加认知群的限制,但答案太长了。

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

    通过这种方式,我添加了一个Cognito用户池自定义属性(自定义:角色),并使用如下规则配置了标识池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上实现多租户的正确方法吗?据我所知,身份池认证提供者规则的数量没有限制。

    2 回复  |  直到 7 年前
        1
  •  10
  •   Neutral Penguin    6 年前

    我知道这个问题已经得到了回答,而且有点老了,但我认为这可能对其他遇到这个问题的人有用。AWS实际上已经为在AWS上创建多租户SaaS应用程序编写了白皮书和快速入门指南 https://aws-quickstart.s3.amazonaws.com/saas-identity-cognito/doc/saas-identity-and-isolation-with-cognito-on-the-aws-cloud.pdf

    它有一个基本的Web前端(S3上的AngularJS)、Cognito(每个租户一个池)、处理用户租户查找的逻辑和托管服务的ECS配置。非常详细,应该有助于回答人们开始或想知道这些类型的问题一堆问题。

        2
  •  6
  •   Summer Guo    7 年前

    如前所述,您可以联系AWS支持部门,请求提高您的群限制。清楚地说明您的用例将使限制更容易增加。您是使用saml还是cognito登录您的用户池?