Системный контроль доступа#

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

Чтобы использовать системный контроль доступа, добавьте файл etc/access-control.properties со следующим содержимым и нужным именем системы контроля доступа на всех узлах кластера:

access-control.name=allow-all

Несколько систем контроля доступа#

Можно одновременно настроить несколько реализаций системного контроля доступа с помощью свойства конфигурации access-control.config-files. Оно должно содержать список файлов свойств контроля доступа, разделенных запятыми, вместо стандартного etc/access-control.properties. Поддерживаются относительные пути от Trino INSTALL_PATH или абсолютные пути. Каждая система настраивается в отдельном конфигурационном файле.

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

Например, можно объединить контроль доступа file и контроль доступа ranger с помощью двух отдельных конфигурационных файлов file-based.properties и ranger.properties.

access-control.config-files=etc/file-based.properties,etc/ranger.properties

Warning

Использование нескольких систем контроля доступа может быть очень сложным в настройке и сопровождении. Кроме того, каждая система и каждая политика внутри каждой системы оцениваются для каждого запроса, что может иметь существенное негативное влияние на производительность.

Доступные системы контроля доступа#

Trino предлагает следующие встроенные реализации системного контроля доступа:

Имя

Описание

default

Все операции разрешены, кроме impersonation пользователя и запуска Graceful shutdown.

Это контроль доступа по умолчанию, если не настроен никакой другой.

allow-all

Все операции разрешены.

read-only

Разрешены операции чтения данных или метаданных, но все операции, записывающие данные или метаданные, запрещены.

file

Правила авторизации задаются в конфигурационном файле. См. Контроль доступа на основе файлов.

opa

Использование Open Policy Agent (OPA) для авторизации. См. Контроль доступа Open Policy Agent.

ranger

Использование политик Apache Ranger для авторизации. См. Управление доступом Ranger.

Если вы хотите ограничить доступ на системном уровне иным способом, чем перечисленные выше, необходимо реализовать пользовательский Системный контроль доступа.

Контроль доступа должен быть настроен на координаторе. Авторизация для операций на конкретных узлах worker, например запуск Graceful shutdown, также должна быть настроена на всех worker.

Системный контроль доступа read only#

Этот контроль доступа разрешает любые операции чтения данных или метаданных, такие как SELECT или SHOW. Также разрешена установка свойств сессии на уровне системы или каталога. Однако любые операции, записывающие данные или метаданные, такие как CREATE, INSERT или DELETE, запрещены. Чтобы использовать этот контроль доступа, добавьте файл etc/access-control.properties со следующим содержимым:

access-control.name=read-only