Cognito用户池组不能使用不同的角色

Sha*_*aho 4 amazon-web-services amazon-cognito

我正在尝试实现以下目标:我有一个Web应用程序,它对某些菜单和对API网关的调用需要不同的用户权限。

我已执行以下操作:-设置具有2个组(组1组2)的用户池-将用户分配给这些组-设置2个策略(策略1策略2,其中策略1是经过身份验证的角色的默认策略在联合身份中) -在角色中设置正确的信任策略-在联合身份中,在身份验证提供程序下,我设置了身份验证角色选择以从令牌中选择角色

在前面,我已经解码了ID令牌,并验证了初始化登录时cognito:groups等是否正确。

因此,组1是允许所有内容的宽松策略,策略2是更严格的策略,不应允许调用API网关中的某个资源。

但是,当我将用户分配给具有更严格策略2的组2时,该用户似乎仍然使用允许所有内容的策略1。我在这里做错了什么?

我有与此线程相同的问题,并完全按照它说的做,但仍然没有任何进展

Sim*_*son 5

检查分配给用户组的角色是否带有trust relationship。它需要它,因此它可以担当联合身份提供者的角色。

您可以通过执行以下操作为用户池组角色构建适当的角色:

  • 打开AWS控制台
  • 前往IAM部分
  • 选择角色
  • 选择网络身份
  • 选择Amazon Cognito
  • 粘贴您的身份池ID(联合身份ID)
  • 点击下一步
  • 现在,添加/创建用户组所需的策略,例如S3访问或其他。
  • 给角色命名并保存。
  • 转到“用户池”组,对其进行编辑并分配刚刚创建的角色。
  • 打开联合身份
  • 将“身份验证的角色选择”下拉框设置为 Choose role from token
  • (可选)设置Role resolutionDENY

参考文献:

精细认证

基于角色的访问控制


小智 0

这可能是一个愚蠢的问题,但是您是否已将 IAM 角色分配给 Cognito 用户池组?

此外,我会选择更严格的政策优先。您应该应用“普通用户”策略作为经过身份验证的角色,并应用更多“管理员用户”策略作为属于特定组的用户所承担的角色。

如同:

组:管理员(附加策略 A)(优先级 0) 组:用户(附加策略 B)(优先级 10)

已验证角色:策略 B