经过身份验证的 Cognito 用户访问 DynamoDB 表的 AWS IAM 策略问题



我通过成功进行身份验证的 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
}

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

{
  "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 表?还是我还需要在表的"访问控制"选项卡下添加"精细访问控制"?

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

一头雾水!

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

AWS 表示您的用户无权访问 aws:dynamodb:us-east-1:MY-ACCOUNT-NUM:table/VideoCatalog

,而您的策略文档提供对 aws:dynamodb:us-east-2:MY-ACCOUNT-NUM:table/VideoCatalog 的访问权限。

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

相关内容

  • 没有找到相关文章

最新更新