Bird
0
0

Which condition key setup correctly enforces this in an IAM policy?

hard🚀 Application Q15 of 15
DynamoDB - Security and Access Control
You want to enforce row-level security so that users can only update their own items in a DynamoDB table with partition key userId and sort key itemId. Which condition key setup correctly enforces this in an IAM policy?
A"Condition": {"StringEquals": {"dynamodb:LeadingKeys": "${aws:userid}"}}
B"Condition": {"StringEquals": {"dynamodb:LeadingKeys": ["${aws:userid}", "${aws:itemid}"]}}
C"Condition": {"StringEquals": {"dynamodb:Attributes.userId": "${aws:userid}", "dynamodb:Attributes.itemId": "${aws:itemid}"}}
D"Condition": {"ForAllValues:StringEquals": {"dynamodb:LeadingKeys": "${aws:userid}"}}
Step-by-Step Solution
Solution:
  1. Step 1: Understand table keys

    Partition key userId determines ownership; sort key itemId identifies specific items within a user's partition.
  2. Step 2: Identify correct condition

    StringEquals on dynamodb:LeadingKeys with an array of [${aws:userid}, ${aws:itemid}] checks both partition and sort keys match, enforcing row-level security for specific items.
  3. Final Answer:

    "Condition": {"StringEquals": {"dynamodb:LeadingKeys": ["${aws:userid}", "${aws:itemid}"]}} -> Option B
  4. Quick Check:

    StringEquals dynamodb:LeadingKeys with array = partition and sort key match [OK]
Quick Trick: Use array in dynamodb:LeadingKeys to match partition and sort keys [OK]
Common Mistakes:
MISTAKES
  • Using dynamodb:Attributes for primary key value checks
  • Applying ForAllValues:StringEquals which mismatches sort key
  • Using single string instead of array for both keys

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More DynamoDB Quizzes