Ste*_*pel 18

在AWS添加了针对Amazon DynamoDB的细粒度访问控制之后,这成为可能,这有助于AWS 身份和访问管理(IAM)策略来管理对存储在DynamoDB表中的项和属性的访问.

介绍性博客文章说明了此功能的出色粒度,并简化了许多现实世界的用例:

  • 水平 - 您可以通过匹配哈希键值来有选择地隐藏或公开特定表中的特定DynamoDB项目
  • 垂直 - 通过匹配属性名称,可以选择性地隐藏或公开特定表中所有DynamoDB项的特定属性
  • 组合 - 您可以在同一策略中执行水平和垂直控制

有关此功能的详细信息,请参阅Amazon DynamoDB的细粒度访问控制,以确定谁可以访问Amazon DynamoDB表和索引中的各个数据项和属性,以及可以对其执行的操作.

  • 这还包括一个具体示例,如何在Amazon DynamoDB表的主键中包含用户ID,并在此后根据调用用户通过适当的IAM条件水平和垂直隐藏信息.

附录

Werner Vogels 使用DynamoDB的细粒度访问控制简化移动应用数据管理,也强调了这一新功能的深远影响范围/影响:

通过细粒度访问控制,我们通过使您能够创建包含描述其他级别的过滤和控制条件的访问策略来解决此问题.这消除了对代理层的需要,简化了应用程序堆栈,并节省了成本.

[...]

随着今天的推出,在移动设备上运行的应用程序可以将工作负载发送到DynamoDB表,行甚至列,而无需通过中间代理层.[...]此功能允许在移动设备上运行的应用程序仅修改属于特定用户的行.此外,通过整合DynamoDB表中的用户数据,您可以大规模获取有关用户群的实时洞察,而无需通过昂贵的连接和批处理方法(如分散/聚集).


Che*_*rel 0

我不相信这是可能的。IAM 角色基本上控制客户端可以进行哪些 API 调用。一旦客户端获得执行操作的权限,DynamoDB 就不会记录该操作并将其附加到客户端。

如果您需要这种行为,您可能应该在表中保留一个属性,该属性会使用有关用户执行操作的一些元数据进行更新。