amazon-web-services - 使用 Cognito 从 API 网关方法调用 Lambda 函数时,如何仅授予对用户特定资源(DynamoDB、S3)的访问权限
问题描述
我正在使用 AWS(Lambda、Cognito、API Gateway、DynamoDB 和 S3)创建一个无服务器后端。
我在 DynamoDB 上有一个用户表和一个用于访问该数据的 API(Lambda 和 API 网关)。我想根据 Cognito 用户凭据在行级别授予对表的访问权限。
我怎样才能做到这一点?我应该使用 IAM 策略还是应该检查来自 Cognito 的 id 是否等于 Lambda 中的 DB Table 行 id?
解决方案
您可以使用 cognito 授予对 s3 和 DynamoDb 中用户特定数据的访问权限。您的身份池中的子变量(不同于用户池中的子变量)可以动态写入您的身份验证角色策略。因此,如果您的 dynamodb 文档中有 sub 变量并作为 s3 对象的前缀(基本上是保存文件的“文件夹”名称),您可以使用单个策略根据登录的用户授予访问权限。
您可以在以下博客文章中找到执行此操作的完整步骤。
推荐阅读
- dns - 如何在同一台服务器上运行 dnsmasq 和 samba ad dc?
- python - 枢轴/重塑熊猫数据框
- python - 台式计算机/PC 的 HTML“捕获”属性
- visual-c++ - '::main' 必须返回 'int' void main() ^
- mysql - 在linux中制作导出表postgresql的时间表
- android - 如何停止在 Transformation.map 中发射空值
- visual-studio-code - vscode 文件中的问题似乎是二进制文件,无法作为文本打开
- python - sqlalchemy orm:如何在父类中定义方法以返回相关子值的列表(一对多关系)
- python - 在 s3 存储桶中压缩对象,然后将 zip 文件夹上传到存储桶
- python - 硒模块`NoSuchElementElement`异常[PYTHON]