2014-09-16 9 views
10

क्या मैं एडब्ल्यूएस डायनेमो डीबी टेबल पर एक पॉलिसी लागू कर सकता हूं लेकिन इसे एक्सेस करने वाले उपयोगकर्ता की कॉग्निटो आईडी के आधार पर इसे प्रतिबंधित कर सकता हूं?क्या मैं कॉग्निटो आईडी के आधार पर एक एडब्ल्यूएस डायनेमो डीबी नीति निर्दिष्ट कर सकता हूं?

उदा। एक ग्राहक तालिका में प्राथमिक हैश कुंजी को कॉग्निटो आईडी के बराबर होती है। जब कोई भी उपयोगकर्ता एक ही आईडी साझा करने वाला उपयोगकर्ता आइटम प्राप्त करने का प्रयास करता है तो उन्हें एक अनधिकृत अपवाद प्राप्त होगा।

(गैर DynanoDB नीतियों शायद भी मान्य हैं।)

+0

आप हैश के रूप में प्रयोक्ता आईडी और सीमा या केवल हैश कुंजी के रूप में एक और विशेषता परिभाषित किया? मैं + रेंज के साथ नीचे दिए गए समाधान का प्रयास कर रहा हूं लेकिन यह दुर्भाग्य से मेरे लिए काम नहीं करता है। मैं "AccessDeniedException" प्राप्त कर रहा हूं। हैश कुंजी का नाम भी क्या है। मैंने इसे "UserId" कहा। सुनिश्चित नहीं है कि सही नाम महत्वपूर्ण है या नहीं। – batmaci

उत्तर

20

आप using an ID Provider के लिए उन लोगों के रूप में एक ही तकनीक का उपयोग इस तरह कुछ करने के लिए सक्षम होना चाहिए। आप use the Cognito identifier नीति में कुंजी के रूप में करना चाहिए:

{ 
    "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}"]} 
    } 
    }] 
} 
संबंधित मुद्दे