Amazon web services AWS Cognito用户池组优先级-按预期工作,无用或损坏?
tl;博士: 如果具有较高优先级的组覆盖具有较低优先级的组的角色,则能够将用户添加到用户池中的多个组的目的是什么?(而不是堆叠角色) 情况: 带有2个组的Cognito用户池。 “A”组的角色具有完全访问Dynamo的权限,优先级为10 组“B”的角色具有对弹性搜索的完全访问权限,优先级为9 如果我将一个用户单独添加到任一组,它将按预期工作 但是Amazon web services AWS Cognito用户池组优先级-按预期工作,无用或损坏?,amazon-web-services,amazon-cognito,Amazon Web Services,Amazon Cognito,tl;博士: 如果具有较高优先级的组覆盖具有较低优先级的组的角色,则能够将用户添加到用户池中的多个组的目的是什么?(而不是堆叠角色) 情况: 带有2个组的Cognito用户池。 “A”组的角色具有完全访问Dynamo的权限,优先级为10 组“B”的角色具有对弹性搜索的完全访问权限,优先级为9 如果我将一个用户单独添加到任一组,它将按预期工作 但是 如果我将一个用户添加到组“a”和“B”,我希望他们拥有来自这两个组的权限 文档中的功能似乎说明用户将只拥有组“B”的权限。如果是这样,向多个组添加用
- 如果我将一个用户添加到组“a”和“B”,我希望他们拥有来自这两个组的权限
- 文档中的功能似乎说明用户将只拥有组“B”的权限。如果是这样,向多个组添加用户的目的是什么
- A组可能有优先顺序为10的perms 1,2,3
- B组可能有4,5,6个perms,优先级为9
- C组可能在1上具有优先级为8的拒绝的PERM
- A和B中的用户将拥有Perm 1、2、3、4、5、6
- A、B和C中的用户将拥有perms 2、3、4、5、6
-A、B和C中的某人没有权限这是预期行为。如果您想要两个组的权限,您只需创建另一个具有组合权限的组/角色。组用于分隔用户。在任何时候,用户只能扮演一个角色。您可以让cognito根据优先级决定它将承担哪个角色,也可以在GetCredentialsForIdentity自定义角色ARN中指定它。您还可以随时在幕后切换角色,方法是调用GetCredentialsForIdentity并切换角色ARN,然后使用特定角色的凭据进行调用 当一个用户在多个组中时,将获得更好优先级组的权限。如果您想向用户授予多个组的权限,可以定义具有相同优先级的多个组。因此,如果我正确理解这一点,用例是:
If(user has group){get role Arn for group,get credentials for user with role Arn}
我认为这是有道理的,因为AWS上的任何地方都不存在堆叠角色。不过,如果您有一个用户需要来自a、B和C组的Perm来执行任务,那么似乎会有很多对getCredentials的调用。除非需要将组与大量组混合并匹配,否则仅创建具有组合权限的组似乎更有效。您可以进行3次get credentials调用并保存凭据,直到凭据过期。但是,创建具有组合权限的组/角色更有意义。