2014-09-16 26 views
10

Bir AWS DynamoDB tablosuna bir ilke uygulayabilir, ancak ona erişen kullanıcının Cognito ID'sini temel alarak kısıtlayabilir miyim?Cognito ID'ye dayalı bir AWS DynamoDB ilkesi belirtebilir miyim?

E.g. Müşteri tablosunda, Cognito ID'ye eşit bir birincil hash anahtarı vardır. Aynı ID'yi paylaşan kullanıcı, öğeyi almayı denediğinde, yetkisiz bir istisna alır.

(Non DynanoDB politikaları da muhtemelen geçerlidir.)

+0

Kullanıcı karma olarak kimliği ve aralık ya da sadece karma anahtar olarak başka bir özellik tanımlamak mı? Ben aşağıda olan çözüm + aralığı ile çalışıyorum ama maalesef benim için çalışmıyor. "AccessDeniedException" almaya devam ediyorum. Ayrıca hashy anahtarının adı nedir. Ben "UserId" aradım. kesin adın önemli olup olmadığı kesin değil. – batmaci

cevap

20

Sen using an ID Provider aynıdır teknikler kullanılarak böyle bir şey yapmak mümkün olmalıdır. Sen politikasında anahtar olarak use the Cognito identifier olmalıdır:

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
     "Effect": "Allow", 
     "Action": [ 
     "dynamodb:DeleteItem", 
     "dynamodb:GetItem", 
     "dynamodb:PutItem", 
     "dynamodb:Query" 
     ], 
     "Resource": ["arn:aws:dynamodb:REGION:123456789012:table/UserData"], 
     "Condition": { 
     "ForAllValues:StringEquals": { 
      "dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"]} 
    } 
    }] 
} 
İlgili konular