Передача учетных данных в Trino

Обзор

Передача учетных данных (credentials propagation) в Trino позволяет аутентифицироваться от имени текущего пользователя через коннекторы, такие как ADB, PostgreSQL, ClickHouse и другие. Это обеспечивает большую безопасность при доступе к данным.

В этой статье описывается, как включить и настроить передачу учетных данных для Trino в кластерах Arenadata.

ПРИМЕЧАНИЕ

Эта функция работает для JDBC-коннекторов и при использовании HTTP-аутентификации с паролем (свойство http-server.authentication.type=PASSWORD).

Включение credentials propagation

Когда значение параметра arenadata.http-server.authentication.password.populate-extra-credentials установлено в true, Trino автоматически добавляет имя пользователя и пароль из текущей сессии в extra credentials. Используемый коннектор считывает эти учетные данные и аутентифицирует запрос от имени пользователя.

Чтобы включить передачу учетных данных с помощью ADCM:

  1. На странице Clusters выберите нужный кластер.

  2. Перейдите в Services → Trino → Components → Trino Coordinator/Trino Worker и включите опцию Show advanced.

  3. Откройте раздел Custom node.properties и нажмите Add property.

  4. Введите arenadata.http-server.authentication.password.populate-extra-credentials в качестве имени поля и true — в качестве значения.

  5. Сохраните конфигурацию, нажав Save, и перезапустите компонент через Actions → Restart.

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

user-credential-name=arenadata.username
password-credential-name=arenadata.password

Дополнительную информацию о настройке коннекторов можно получить в статье Обзор коннекторов в Trino.

Пример

Чтобы проверить, что передача учетных данных работает корректно:

  1. Подключитесь к Trino, используя CLI. Пример команды для подключения:

    $ ./trino https://<coordinator_host>:18188 --user=<username> --password
  2. Введите пароль.

  3. Выполните запрос к коннектору, который использует передаваемые учетные данные:

    SHOW TABLES FROM adb.default;

Коннектор выполнит аутентификацию, используя предоставленные учетные данные пользователя.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней