【发布时间】:2017-11-05 07:32:21
【问题描述】:
尽管搜索和阅读了有关角色和政策的信息,但我对 AWS 还是很陌生。我仍然无法弄清楚如何让用户管理用户组来控制对 DynamoDB 表中项目的访问。如果有人可以通过提供术语或示例帮助我进行搜索,我将不胜感激。
用例示例:
- User1 在名为“Groups”的表中创建项目“Group_A”。
- User2 在名为“Groups”的表中创建项目“Group_B”。
- 另一个名为“Messages”的表有一个排序键,可以是任何项目 表“组”。
User1 如何在不允许 User2 访问的情况下将“Group_A”的“Messages”访问权限授予 User3 和 User4。
【问题讨论】:
-
这听起来确实像是您可以通过应用程序控制的事物类型,而不是直接在数据库中。类似于使用 SQL 数据库的典型 web 应用程序如何访问整个数据库并使用应用程序中内置的某种授权系统来控制谁可以访问哪些数据。
-
知道如何做到这一点并避免人们访问他们不应该访问的数据吗?
-
您是否授予他们运行直接数据库查询的权限?您是否向他们提供登录您的 AWS 账户的凭据?一般来说,应用程序不会给用户直接的数据库访问权限,授权是在应用程序层而不是数据库层处理的。您提到了 Java,所以我会查看 Spring Security。
-
非常感谢马克的帮助。我想我对这一切是如何运作的只有很少的了解。我创建了一个用户池,用户必须进行身份验证,然后通过具有策略的角色获取凭据才能访问表。也许我是偏执狂,但我的理解是,除非我以某种方式通过策略本身阻止对单个项目的访问,否则有人可以制作一个应用程序来进行身份验证并访问整个表。我会检查 Spring Security。
标签: java amazon-web-services amazon-dynamodb amazon-iam