Fine grained row level access to Dynamodb via Cognito Authorizer

0

Im able to only allow logged in users to access my Api gateway endpoint via Cognito Authorizer. The next step is to allow users to only access their data in Dynamodb. For that Im taking the role ARN (which is defined in my user group) from the lambda request event, and assuming that role before querying Dynamodb. Here's my DynamoDB policy. If I hardcode the cognito user pool sub, which matches the portion key on the table, it works, which means my policy is correct. I just can't figure out how to dynamically get the user pool sub in the policy.

    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:Query",
                "dynamodb:Update*",
                "dynamodb:Delete*"
            ],
            "Resource": [
                "arn:aws:dynamodb:*:*:table/table-name-db",
                "arn:aws:dynamodb:*:*:table/table-name-db/index/*"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": [
                        <NOT SURE WHAT TO ADD HERE>
                    ]
                }
            }
        }
    ]
}```
2개 답변
0
  • Thanks for your reply. "${cognito-identity.amazonaws.com:sub}" doesn't work unless you are using the indentity pool id as the partition key. In my case Im suing the user pool sub as partition key.

0

OK. I am not aware of how to accomplish this without using Cognito Identity Pools. This blog explains how you can use Cognito Identity Pools with Cognito User Pools to achieve fine-grained authorization - https://aws.amazon.com/blogs/mobile/building-fine-grained-authorization-using-amazon-cognito-user-pools-groups/

profile pictureAWS
전문가
답변함 2년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠