AWS에서 IAM을 처음 사용했습니다. 그리고 다양한 사용자의 쿼리를 기본 키가 Cognito 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 ========
나는 정책 시뮬레이션을 사용하여 시도하고 LeadingKey없이 쿼리가 아래 그림과 같이 이유를 이해 할 수없는입니다 허용됩니다. 내가 선두 키를 제공 할 때
하고, 그것을 거부했다. 그림 아래 참조 :
오류 메시지는 분명합니다. 그것은 호출하는 사용자 (즉,'arn : aws : sts :: 049428796662 : assum ...')가 자원 :'arn : aws : dynamodb에 대한 프로세스/메카니즘'dynamodb : Query'를 호출 할 특권을 가지고 있지 않음을 나타냅니다. ..'. – FDavidov
예. 하지만 내 ID는 기본 키와 동일합니다. 그래서, 나는 왜 모든 오류 메시지를 올바르게 제공하고 있는데도이 오류가 발생합니까? – achin
특정 답변을 드릴 수는 없지만 내 생각에이 자격 증명은 자격 증명의 정확성과 아무 관련이 없으며 서버 측의 보안 설정과 관련이 있습니다 (이것은 야생의 추측이므로, AWS에 익숙하지 않은 사용자). – FDavidov