Обзор безопасности#
После первоначальной installation вашего кластера, безопасность становится следующей ключевой задачей для успешной эксплуатации Trino. Этот обзор знакомит с различными аспектами настройки безопасности для вашего кластера Trino.
Аспекты настройки безопасности#
В установке Trino по умолчанию функции безопасности отключены. Безопасность можно включить для разных частей архитектуры Trino:
Рекомендуемый порядок настройки#
Чтобы настроить безопасность для нового кластера Trino, следуйте этому рекомендуемому порядку шагов. Не пропускайте и не объединяйте шаги.
Включите TLS/HTTPS
Работайте вместе с вашей командой безопасности.
По возможности используйте load balancer or proxy для терминации HTTPS.
Используйте глобально доверенный TLS-сертификат.
Настройте a shared secret
Включите аутентификацию
Начните с password file authentication, чтобы быстрее запустить систему.
Затем настройте предпочитаемого провайдера аутентификации, например LDAP.
По возможности избегайте сложности Kerberos для клиентской аутентификации.
Включите авторизацию и контроль доступа
Начните с file-based rules.
Затем при необходимости настройте другой метод контроля доступа.
Настраивайте по одному шагу за раз. Всегда перезапускайте сервер 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 может использоваться для содержимого файлов свойств каталога.