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

its*_*rew 6 amazon-web-services amazon-cognito

tl;博士

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

情况:

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

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

然而

  • 如果我将用户添加到组“A”和“B”,我希望他们拥有这两个组的权限。
  • 似乎记录在案的功能表明用户将只拥有“B”组的权限。如果是这种情况,将用户添加到多个组的目的是什么?

我假设能够将用户添加到多个组的目的是让角色堆栈而不是覆盖。这边走...:

  • A 组可以有优先级为 10 的烫发 1,2,3
  • B组可以有优先级为9的烫发4、5、6
  • C 组可以具有优先级为 8 的拒绝为 1 的烫发

结果可能是这样:

  • A 和 B 中的用户将拥有权限 1、2、3、4、5、6
  • A、B 和 C 中的用户将拥有权限 2、3、4、5、6

但实际上: - A 和 B 中的某个人拥有权限 4,5,6 - A、B 和 C 中的某个人没有权限

Nin*_*wad 4

这是预期的行为。如果您想要两个组的权限,您只需创建另一个具有组合权限的组/角色。组用于分隔用户。在任何时候,用户只能承担一个角色。您可以让 cognito 根据优先级决定将承担哪个角色,也可以在 GetCredentialsForIdentity 自定义角色 ARN 中指定它。此外,您还可以随时通过调用 GetCredentialsForIdentity 并切换角色 ARN 并使用特定角色的凭据进行调用,在幕后切换角色。