代码之家  ›  专栏  ›  技术社区  ›  Max B.

DynamoDB用户管理用户组

  •  0
  • Max B.  · 技术社区  · 7 年前

    用例示例:

    • User1在名为“Groups”的表中创建项“Group\u A”。
    • User2在名为“Groups”的表中创建项“Group_B”。
    • 另一个名为“Messages”的表有一个排序键,可以是任何项 表“组”。

    User1如何在不允许访问User2的情况下将“Group_A”的“消息”授予User3和User4。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Ashan    7 年前

    您的场景无法通过IAM策略(附加到用户或角色)和与用户池连接的DynamoDB细粒度访问控制直接实现。

    DynamoDB在其最佳访问控制级别允许通过前导键进行行级访问控制。例如,在您的案例中,如果Messages表中消息项的hashkey是Cognito中登录用户的属性,则可以仅为具有IAM策略的用户授予权限。

    然而,可以实现这一点的方法是在应用程序级别。例如,您可以设置API网关和Lambda,以便在API网关上验证Cognito发出的id_令牌,并且在Lambda代码中,您可以编写一个查询,根据您的访问控制列表限制和检索数据。