Могу ли я указать политику AWS DynamoDB на основе Cognito ID?

Могу ли я применить политику к таблице AWS DynamoDB, но ограничить ее на основе идентификатора Cognito пользователя, обращающегося к нему?

например. Таблица Customer имеет первичный хеш-ключ, равный идентификатору Cognito. Когда кто-либо, кроме пользователя, использующего один ID, пытается получить элемент, он получит несанкционированное исключение.

(Возможно, политики Non DynanoDB также действительны.)

Ответ 1

Вы можете сделать что-то подобное, используя те же методы, что и для используя поставщик ID. Вы должны использовать идентификатор Cognito в качестве ключа в политике:

{
  "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}"]}
    }
  }]
}