DynamoDB Fine-Grained Access Control и вторичные индексы - PullRequest
0 голосов
/ 13 июня 2018

Итак, в настоящее время я делаю таблицу DynamoDB с несколькими индексами и пытаюсь управлять контролем доступа.

У меня есть ключ (organizationId), который я не хочу использовать в качестве раздела вторичных индексов или ключа сортировкипотому что это было бы в значительной степени бессмысленно с точки зрения запросов.

Таблица DynamoDB

  • Имя таблицы: Выполнения
  • Ключ раздела: OrganizationId (Строка)

Вторичный индекс DynamoDB

  • Первичный ключ раздела: processId (String)
  • Первичный ключ сортировки: состояние (число)

Будет ли следующее условие политики IAM эффективно ограничивать доступ к вторичному индексу на основе идентификатор организации?

"Condition": {
    "ForAllValues:StringEquals": {
        "dynamodb:LeadingKeys": [
            "anOrganizationId / Variable"
        ]
    }
}

1 Ответ

0 голосов
/ 09 ноября 2018

следующая политика разрешений разрешает запросы к вторичному индексу (здесь пример имени индекса: TopScoreDateTimeIndex) с помощью ключа условия Dynamodb: Attributes.Политика также ограничивает запросы запросом только определенных атрибутов, которые были спроецированы в индекс.Пожалуйста, обратите внимание на раздел Ресурсы и условия

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QueryOnlyProjectedIndexAttributes",
            "Effect": "Allow",
            "Action": [
                "dynamodb:Query"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/TopScoreDateTimeIndex"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:Attributes": [
                        "TopScoreDateTime",
                        "GameTitle",
                        "Wins",
                        "Losses",
                        "Attempts"
                    ]
                },
                "StringEquals": {
                    "dynamodb:Select": "SPECIFIC_ATTRIBUTES"
                }
            }
        }
    ]
}
...