使用 dynamoDB 和用户组进行细粒度访问

Posted

技术标签:

【中文标题】使用 dynamoDB 和用户组进行细粒度访问【英文标题】:Fine grained access with dynamoDB and user groups 【发布时间】:2021-12-23 21:18:31 【问题描述】:

我正在尝试使用 aws Amplify 设置 Web 应用程序。它由包含一些数据的 dynamodb 表支持,其中“用户组”作为主键。因此,每当用户登录时,它应该只显示连接到他的组的数据。我阅读了一些关于细粒度访问的 aws 文档,但似乎唯一的方法是使用“user_id”作为主键(希望我误解了这一点)。如果有人能给我一些建议,我将非常感激:)

【问题讨论】:

【参考方案1】:

如果我理解正确,您正在尝试在您的发电机表上应用某种行隔离策略。

您对主键的直觉是正确的,正如 here 所述,但需要注意的是,您的分区键应该包含您的 group_id(不一定是 user_id),因为您想要按组隔离访问。

在像 Dynamo 这样的数据库中使用复合分区键是common practice。

这将构建数据库,使其可以受允许在您需要的组上使用fine grained access control 的 IAM 策略的限制。

【讨论】:

谢谢!我设法在我的应用程序中将用户组作为字符串数组,现在我只需要为我的 DynamoDB 表的每一行创建一个页面,但我想我会打开一个新的讨论,因为它不是严格相关的。跨度> (Ti ringrazio e credo di aver selezionato la tua risposta come risposta corretta, correggimi se sbaglio)

以上是关于使用 dynamoDB 和用户组进行细粒度访问的主要内容,如果未能解决你的问题,请参考以下文章

IAM 策略条件中的 cognito 用户池自定义属性与 Dynamodb 细粒度访问

对 DynamoDb 使用细粒度访问控制时出现 AccessDeniedException

Lambda 代入具有细粒度权限的 AWS IAM 角色

粗粒度与细粒度权限控制

粗粒度与细粒度权限控制

允许用户在 React Native/iOS Facebook OAuth 中进行细粒度的权限审批?