【问题标题】:AWS IAM policy issue for DynamoDB table access by authenticated Cognito users已通过身份验证的 Cognito 用户访问 DynamoDB 表的 AWS IAM 策略问题
【发布时间】:2019-06-20 23:31:01
【问题描述】:

我在通过成功通过身份验证的 Cognito 用户访问新 DynamoDB 表时遇到问题。

尝试扫描表(使用 AWS JavaScript 开发工具包)时,我收到以下 AccessDeniedException:

Unable to scan. Error: {
  "message": "User: arn:aws:sts::MY-ACCOUNT-NUM:assumed-role/Cognito_VODStreamTestAuth_Role/CognitoIdentityCredentials 
is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:us-east-1:MY-ACCOUNT-NUM:table/VideoCatalog",
  "code": "AccessDeniedException",
  "time": "2019-01-27T02:25:27.686Z",
  "requestId": "blahblah",
  "statusCode": 400,
  "retryable": false,
  "retryDelay": 18.559011800834146
}

已通过以下 DynamoDB 部分扩展了经过身份验证的 Cognito 用户策略:

{
  "Sid": "AllowedCatalogActions",
  "Effect": "Allow",
  "Action": [
     "dynamodb:BatchGetItem",
     "dynamodb:GetItem",
     "dynamodb:Scan",
     "dynamodb:Query",
     "dynamodb:UpdateItem"
  ],
  "Resource": [
     "arn:aws:dynamodb:us-east-2:MY-ACCOUNT-NUM:table/VideoCatalog"
  ]
}

只要我像上面那样指定表资源,这是否足以让经过身份验证的 Cognito 用户访问我可能创建的任何 DynamoDB 表?还是我需要在表格的“访问控制”选项卡下添加"Fine-grained access control"

我可以说我在我的非根管理员 IAM 角色(上面由 MY-ACCOUNT-NUM 表示)下创建了 VideoCatalog DynamoDB 表。那是问题吗? (在尝试移动到 DynamoDB 表之前,我使用 S3 上的 JSON 文件作为视频目录。)

我很困惑!

【问题讨论】:

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


    【解决方案1】:

    查看来自 AWS 的错误消息和您提供的政策文档,我可以看到这里有两个不同的区域。

    AWS 说您的用户无权访问 aws:dynamodb:us-east-1:MY-ACCOUNT-NUM:table/VideoCatalog,而您的政策文档提供了对 aws 的访问权限:dynamodb:us-east-2:MY-ACCOUNT-NUM:table/VideoCatalog.

    您是否可能错误地将资源配置在两个不同的区域?

    【讨论】:

    • 本身不是错误的......但感谢您注意到这一点!该表肯定位于 us-east-2 区域,而 Cognito 用户池位于 us-east-1。看到当我尝试以编程方式(使用 AWS JavaScript SDK)扫描 VideoCatalog 表时我没有指定区域,它必须假设它在同一区域中。我没有理由不能将 DynamoDB 表与我的 Cognito 用户池放在同一区域。所以我会这样做并报告!
    • 你说的很对。很容易错过 us-east-1 与 -2 的比赛,但现在我知道首先要考虑区域问题!谢谢!!
    猜你喜欢
    • 2016-10-25
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2019-04-02
    • 2019-01-29
    • 2016-10-01
    • 2021-03-15
    相关资源
    最近更新 更多