通过查看DynamoDB上的文档,我能够找到一些根据表的主键限制用户项目访问的示例。但是,所有这些示例仅涵盖限制对单个用户的访问。有没有办法只允许一组用户访问?从我读过的内容来看,这将归结为创建IAM组/角色,但是每个组的创建数量都有限制,并且看起来似乎不能以编程方式为每个项创建。< / p>
答案 0 :(得分:2)
你的猜测是正确的;每个共享行需要一个IAM策略。
据我所知,目前没有替代变量可用于获取用户所属的组,因此没有单一的IAM策略能够涵盖您的用例。
不仅如此,只有分区键可以与IAM策略中的条件匹配,因此除非您的分区键具有组名作为其一部分(这意味着用户永远不能更改组),否则您将需要暗示,数据库中每行的IAM策略,不会扩展。
如果您有适当的控制措施来限制共享项目的数量,那么可以 ,并积极清理不再共享的项目的政策。
我不认为使用AWS的内置访问控制来允许组访问能够很好地工作,并且您最好在顶层构建更高级别的抽象,这样就可以对您进行访问控制需要(例如,使用AWS Lambda)。