Обзор безопасности#

После первоначальной installation вашего кластера, безопасность становится следующей ключевой задачей для успешной эксплуатации Trino. Этот обзор знакомит с различными аспектами настройки безопасности для вашего кластера Trino.

Аспекты настройки безопасности#

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

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

Чтобы настроить безопасность для нового кластера Trino, следуйте этому рекомендуемому порядку шагов. Не пропускайте и не объединяйте шаги.

  1. Включите TLS/HTTPS

    • Работайте вместе с вашей командой безопасности.

    • По возможности используйте load balancer or proxy для терминации HTTPS.

    • Используйте глобально доверенный TLS-сертификат.

    Verify this step is working correctly.

  2. Настройте a shared secret

    Verify this step is working correctly.

  3. Включите аутентификацию

    • Начните с password file authentication, чтобы быстрее запустить систему.

    • Затем настройте предпочитаемого провайдера аутентификации, например LDAP.

    • По возможности избегайте сложности Kerberos для клиентской аутентификации.

    Verify this step is working correctly.

  4. Включите авторизацию и контроль доступа

    • Начните с file-based rules.

    • Затем при необходимости настройте другой метод контроля доступа.

    Verify this step is working correctly.

Настраивайте по одному шагу за раз. Всегда перезапускайте сервер Trino после каждого изменения и проверяйте результат, прежде чем переходить дальше.

Защита клиентского доступа к кластеру#

clients Trino включают CLI Trino, Web UI, JDBC driver, Python, Go, or other clients, а также любые приложения, использующие эти инструменты.

Весь доступ к кластеру Trino управляется координатором. Поэтому защита доступа к кластеру означает защиту доступа к координатору.

Нужно учитывать три аспекта:

Шифрование#

Сервер Trino использует стандартный HTTPS protocol and TLS encryption, ранее известный как SSL.

Аутентификация#

Trino поддерживает несколько провайдеров аутентификации. При настройке нового кластера начните с простой password file authentication, а затем переходите к другому провайдеру.

Управление именами пользователей#

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

  • User mapping применяется ко всем системам аутентификации и позволяет задавать правила регулярных выражений, которые сопоставляют сложные имена пользователей из других систем (alice@example.com) с простыми именами пользователей (alice).

  • Group mapping предоставляет способы назначать набор имен пользователей имени группы для упрощения контроля доступа.

Авторизация и контроль доступа#

default method of access control в Trino разрешает все операции для всех аутентифицированных пользователей.

Чтобы реализовать контроль доступа, используйте:

  • File-based system access control, где вы настраиваете JSON-файлы, задающие детальные ограничения доступа пользователей на уровне каталога, схемы или таблицы.

  • Контроль доступа Open Policy Agent, где вы используете Open Policy Agent для принятия решений по контролю доступа на детальном уровне.

  • Управление доступом Ranger, где вы используете Apache Ranger для детального контроля доступа, применения динамических row-filters и column-masking во время выполнения запроса и генерации audit logs.

Кроме того, Trino provides an API, позволяющий создать собственный метод контроля доступа или расширить существующий.

Контроль доступа может ограничивать доступ к столбцам таблицы. Поведение по умолчанию для запроса ко всем столбцам через SELECT * — показывать ошибку, запрещающую доступ к недоступным столбцам.

Вы можете изменить это поведение, чтобы недоступные столбцы скрывались без ошибки, с помощью глобального свойства hide-inaccessible-columns, настраиваемого в Config properties:

hide-inaccessible-columns = true

Защита внутри кластера#

Вы можете secure the internal communication между координатором и worker внутри кластера.

Секреты в файлах свойств, например пароли в файлах каталогов, можно защитить с помощью secrets management.

Защита доступа кластера к источникам данных#

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

Больше информации доступно в документации по отдельным connectors.

Secrets management может использоваться для содержимого файлов свойств каталога.