我正在使用AWS(Lambda,Cognito,API Gateway,DynamoDB和S3)创建无服务器后端。
我在DynamoDB上有一个用户表和一个用于访问该数据的API(Lambda和API网关)。我想基于Cognito用户凭据在行级别授予对表的访问权限。
我该怎么做?我应该使用IAM策略还是应该检查Cognito中的ID是否等于Lambda中的数据库表行ID?
答案 0 :(得分:1)
您可以使用cognito授予对s3和DynamoDb中用户特定数据的访问权限。身份池中的 sub 变量(与用户池中的变量不同)可以动态写入到经过身份验证的角色策略中。因此,如果您在dynamodb文档中具有sub变量,并且作为s3对象的前缀(基本上是保存文件的“文件夹”名称),则可以使用单个策略根据登录的用户来授予访问权限。 / p>
您可以在以下博客文章中找到完成此操作的完整步骤。