Ограничить доступ пользователей к выбору базы данных - PullRequest
0 голосов
/ 08 марта 2019

Как использовать рабочие группы athena для ограничения доступа пользователя к определенной базе данных?

Например, у меня есть пользователь «только для чтения», который не должен иметь возможность выполнять запрос выбора в базе данных по умолчанию.Это возможно?

1 Ответ

1 голос
/ 08 марта 2019

Способ запретить пользователям запрашивать таблицы - использовать разрешения IAM.Модель разрешений в Athena, к сожалению, более сложная, чем в изолированном хранилище данных или RDBMS, поскольку Athena является частью более крупной экосистемы, которая также включает S3 и Glue.

Специальных разрешений для запуска SELECT нет,Вы можете запретить пользователям выполнять запросы, контролируя, разрешено ли им выполнять действие athena:StartQueryExecution, но вы не можете контролировать, какие запросы они запускают.

Вместо этого вам нужно думать с точки зрениядоступ к данным и доступ к каталогу.

Чтобы ограничить чтение, вы ограничиваете доступ пользователя к данным на S3.Даже если пользователю разрешено выполнять запрос SELECT, он получит ошибку, если у него нет разрешения на выполнение s3:ListObject и s3:GetObject для объектов в префиксе таблицы.

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

Вы можете найтидокументация о том, как контролировать доступ к объектам каталога здесь: https://docs.aws.amazon.com/athena/latest/ug/fine-grained-access-to-glue-resources.html

Рабочие группы в Афине не могут использоваться для контроля доступа к данным или каталогу.

...