【问题标题】:AWS DynamoDB with Cognito user-scoped access?具有 Cognito 用户范围访问权限的 AWS DynamoDB?
【发布时间】:2022-01-20 20:29:44
【问题描述】:

我正在使用 AWS Cognito 进行用户管理。我希望我的应用程序的用户将他们的数据存储在 DynamoDB 中。所以我需要用户范围的访问权限(用户A可以写入数据并且只能读取用户A添加的数据,用户B只能读取用户B添加的数据)。

文档建议能够进行行级和列级细粒度访问:(https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html)。

但我没有使用 IAM,我使用的是 Congito 用户(希望它的范围仅限于每个用户,而不是角色/组)。该文档建议您可以使用 Cognito ID:(https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_items.html)。

但是,根据这个 StackOverflow 问题 (How to use DynamoDB fine grained access control with Cognito User Pools?),这不是我所期望的?

AWS 是否支持我的用例?很多文档,但不清楚我的用例是否受支持。

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb amazon-cognito


    【解决方案1】:

    您需要使用 Cognito 身份池。 Cognito 身份池充当身份代理。当 Cognito 用户使用用户池进行身份验证时,Cognito 会提供 JWT 令牌。用户可以使用 Cognito 用户池提供的 ID 令牌,Cognito 身份池可以获取令牌并提供临时 IAM 凭证。

    我熟悉与您类似的用例。在该用例中,已将数据写入 S3 的用户只能修改/删除该数据。在这种情况下,您可以为每个用户的身份 ID(由 Cognito 身份池提供)创建新的 S3 文件夹(前缀),并且该特定用户只能访问该 S3 文件夹下的数据。

    我对 DynamoDB 访问控制不太熟悉,因此现在无法提供确切的解决方案。您可以尝试与上述方法类似的方法。

    https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-create-identity-pool.html

    【讨论】:

      猜你喜欢
      • 2018-01-21
      • 2020-03-10
      • 2020-09-27
      • 1970-01-01
      • 2019-02-25
      • 2021-12-08
      • 2020-04-25
      • 2019-09-13
      • 2023-03-23
      相关资源
      最近更新 更多