Amazon web services 使用联合用户的授权表控制对Amazon DynamoDB条目的访问

Amazon web services 使用联合用户的授权表控制对Amazon DynamoDB条目的访问,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,我想为一个无服务器应用程序构建一个AWS体系结构,该应用程序将文件存储在DynamoDB中 此数据库存储与给定周界相关的数据。另一方面,我有数据(M:N链接),这些数据将我的应用程序的用户链接到一些外围 我希望确保我的用户(通过联合OIDC提供者在Amazon Cognito上进行身份验证)只能访问与其周边环境相关的数据 使用Amazon bricks实现这种访问控制逻辑的最佳实践是什么 是否有可能在Dynamo DB级别使用IAM策略实现这种访问控制逻辑 您可以添加一个表 UserPerim

我想为一个无服务器应用程序构建一个AWS体系结构,该应用程序将文件存储在DynamoDB中

此数据库存储与给定周界相关的数据。另一方面,我有数据(M:N链接),这些数据将我的应用程序的用户链接到一些外围

我希望确保我的用户(通过联合OIDC提供者在Amazon Cognito上进行身份验证)只能访问与其周边环境相关的数据

  • 使用Amazon bricks实现这种访问控制逻辑的最佳实践是什么

  • 是否有可能在Dynamo DB级别使用IAM策略实现这种访问控制逻辑

您可以添加一个表

UserPerimeter
---
id (hash key)
userId (index - hash key)
perimeterId
作为Lambda中验证的一部分,您可以使用JWT/Cognito中的用户id查询索引。这将检查他是否有权访问请求的参数。因此,基本上保护数据库不受代码的影响(这是唯一的访问点)


您可以通过IAM实现这一点,(请检查此项),但它为我的口味增加了太多的复杂性。如果数据库被多个产品/组件/公司使用(这无论如何都不是一个好的做法),这将非常有用。

谢谢您的回答,哪种授权机制涉及Lambda?我是否需要构建Lambda来访问我的案例中的数据,或者它是我可以直接嵌入到DynamoDB中的验证机制?我错了,我假设您正在使用Lambda。我的意思是在你的容器/代码中进行验证我想要一个无服务器的应用程序,JavaScript通过Amazon API网关或直接DynamoDB API请求API以获取数据我可以在某处包含这样的验证机制吗?或者可以将我的DynamoDB隐藏在执行这种控制的Lambda后面吗?是的,您需要一个Lambda层来处理来自DynamoDB的数据