Разрешение IAM CreateTable только для одной базы данных в Афине - PullRequest
0 голосов
/ 27 июня 2018

У меня есть группа, которой я хотел бы предоставить разрешения CreateTable для одной базы данных в Афине, в то же время применяя меньшие разрешения, такие как RunQuery, для всех баз данных в одной группе. Можно ли применять разрешения к базам данных Athena в каждом конкретном случае?

Например, в приведенной ниже политике IAM я хотел бы дать этой группе возможность создавать и удалять таблицы в тестовой базе данных.

Из документации AWS :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:RunQuery",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution"
            ],
            "Resource": [
                "*"  // Apply these permissions on all schemas
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "glue:CreateTable",
                "glue:DeleteTable"
            ],
            "Resource": [
                "test"   // Apply these permissions to only the test database
            ]
        }
    ]
}

Спасибо!

1 Ответ

0 голосов
/ 09 февраля 2019

В то время, когда вы задавали этот вопрос, было невозможно предоставить разрешения для определенных баз данных и таблиц, но сейчас это так.

Разрешения должны предоставляться на трех уровнях: каталог, база данных и таблица (для разрешений таблицы разрешения для базы данных нужны только два).

Вот пример того, как предоставить разрешения на создание, обновление и удаление для всех таблиц в базе данных с именем my_db в учетной записи 1234567890 в us-east-1:

 {
  "Effect": "Allow",
  "Action": [
    "glue:CreateTable",
    "glue:UpdateTable",
    "glue:DeleteTable"
  ],
  "Resource": [
    "arn:aws:glue:us-east-1:1234567890:catalog",
    "arn:aws:glue:us-east-1:1234567890:database/my_db",
    "arn:aws:glue:us-east-1:1234567890:table/my_db/*"
  ]
}

Можно использовать подстановочные знаки для имени базы данных или частичного имени базы данных (например, если вы хотите предоставить некоторые разрешения всем базам данных с определенным префиксом), и то же самое с именами таблиц.

...