Способ запретить пользователям запрашивать таблицы - использовать разрешения 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
Рабочие группы в Афине не могут использоваться для контроля доступа к данным или каталогу.