AWS'de IAM'da yeniyim. Ve, çeşitli kullanıcılar için Sorguyu yalnızca birincil anahtarın cognito kimliğiyle eşleştiği tablo girişlerini kısıtlamak istiyorum. Bunu başarmak için, ben politikasını oluşturmuştur:
AWS IAM - Koşulları kullanma
aşağıdaki hatayı alıyorum:
{
"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}"
]
}
}
}
]
}
Ama aşağıda gösterildiği gibi i Postacı kullanarak tablo sorgulama am zaman
"__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"
biri bana ben ne yapıyorum hata haber verir misiniz?
======== GÜNCELLEME ========
Ben politika sim kullanarak çalıştı ve LeadingKey olmadan Sorgu aşağıda pic gösterildiği gibi neden anlamıyorum alamıyorum izin verilir. i lider anahtarı sağlayabilir zaman
ve bu inkar diyor. pic aşağıya bakın:
Hata mesajı oldukça açık. Çağıran kullanıcının (yani "arn: aws: sts :: 049428796662: varsayılan ...") işlemin/mekanizmanın 'dynamodb: Query 'kaynağında çağrılması imtiyazına sahip olmadığını belirtir: arn: aws: dynamodb. ..'. – FDavidov
Evet. Ancak, şifreleme kimliğim tablodaki birincil anahtarla aynı. Bu yüzden, tüm kimlik bilgilerini doğru bir şekilde sağladığım halde neden bu hatayı alıyorum? – achin
Size belirli bir yanıt veremem, ancak tahminimce bunun kimlik bilgilerinin doğruluğu ile ilgisi yok ve sunucu tarafındaki güvenlik ayarlarıyla ilgili olması gerekiyor (bu, bu yana bence vahşi bir tahmin). AWS'ye aşina değil). – FDavidov