6
我是AWS中的IAM的新手。而且,我希望将各种用户的查询限制为只有主键与认证ID匹配的表项。要做到这一点,我创建的策略:AWS IAM - 使用条件
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessToOnlyItemsMatchingUserID",
"Effect": "Allow",
"Action": [
"dynamodb:GetItem",
"dynamodb:BatchGetItem",
"dynamodb:Query",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:DeleteItem",
"dynamodb:BatchWriteItem"
],
"Resource": [
"arn:aws:dynamodb:us-east-1:XXXXXXXXXXX:table/User"
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"${cognito-identity.amazonaws.com:sub}"
]
}
}
}
]
}
我收到以下错误:
"__type": "com.amazon.coral.service#AccessDeniedException",
"Message": "User: arn:aws:sts::XXXXXXXXXXXXX:assumed-role/Achintest/BackplaneAssumeRoleSession is not authorized to perform: dynamodb:Query on resource: arn:aws:dynamodb:us-east-1:XXXXXXXXXXXXX:table/User"
有人能让我知道我在做什么错误吗?
======== ======== UPDATE
我试着用政策SIM卡,我无法理解为什么如下图所示PIC不LeadingKey查询被允许。
,当我提供领先的关键,它说拒绝。见下面图:
错误信息非常清楚。它声明调用用户(即'arn:aws:sts :: 049428796662:假设...')没有权限在资源上调用进程/机制'dynamodb:Query':'arn:aws:dynamodb。 ..'。 – FDavidov
是的。但是,我的认证ID与表中的主键相同。那么,为什么我得到这个错误,尽管我正确提供所有凭据? – achin
我不能给你一个具体的答案,但我的猜测是,这与凭证的正确性无关,它确实与服务器端的安全设置有关(这是一种疯狂的猜测,对AWS不熟悉)。 – FDavidov