Amazon web services 通过身份验证的Cognito用户访问DynamoDB表的AWS IAM策略问题
我在通过已成功验证的Cognito用户访问新的DynamoDB表时遇到问题 尝试扫描表时(使用AWS JavaScript SDK),我得到以下AccessDeniedException: 已通过身份验证的Cognito用户策略已通过以下DynamoDB部分进行扩展:Amazon web services 通过身份验证的Cognito用户访问DynamoDB表的AWS IAM策略问题,amazon-web-services,amazon-dynamodb,amazon-cognito,amazon-iam,Amazon Web Services,Amazon Dynamodb,Amazon Cognito,Amazon Iam,我在通过已成功验证的Cognito用户访问新的DynamoDB表时遇到问题 尝试扫描表时(使用AWS JavaScript SDK),我得到以下AccessDeniedException: 已通过身份验证的Cognito用户策略已通过以下DynamoDB部分进行扩展: { "Sid": "AllowedCatalogActions", "Effect": "Allow", "Action": [ "dynamodb:BatchGetItem", "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的访问
您是否错误地在两个不同的区域调配资源 从本质上说,这不是错的。。。但是谢谢你注意到这一点!该表肯定位于us-east-2区域,而Cognito用户池位于us-east-1区域。由于我在尝试编程(使用AWS JavaScript SDK)扫描VideoCatalog表时没有指定区域,因此必须假定它位于同一区域。我没有理由不能将DynamoDB表与我的Cognito用户池放在同一个区域中。。所以我会这样做,并报告回来!你完全正确。很容易错过美国东部1对2的比赛,但现在我知道要先考虑地区问题!谢谢
{
"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"
]
}