Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Cognito用户池组优先级-按预期工作,无用或损坏?_Amazon Web Services_Amazon Cognito - Fatal编程技术网

Amazon web services AWS Cognito用户池组优先级-按预期工作,无用或损坏?

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”的权限。如果是这样,向多个组添加用

tl;博士

如果具有较高优先级的组覆盖具有较低优先级的组的角色,则能够将用户添加到用户池中的多个组的目的是什么?(而不是堆叠角色)

情况:

带有2个组的Cognito用户池。 “A”组的角色具有完全访问Dynamo的权限,优先级为10 组“B”的角色具有对弹性搜索的完全访问权限,优先级为9

如果我将一个用户单独添加到任一组,它将按预期工作

但是

  • 如果我将一个用户添加到组“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区有人烫发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调用并保存凭据,直到凭据过期。但是,创建具有组合权限的组/角色更有意义。