GrantForge

    Плагины

    Apache Hive

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

    Плагин Hive обеспечивает для HiveServer2 поиск баз данных, таблиц, столбцов и постоянных UDF, а также политики доступа, маскирования и фильтрации строк по образцу сервиса Hive в Apache Ranger. Идентификатор плагина и тип сервиса — hive. Плагин сервиса работает на сервере GrantForge; политики применяет агент Hive, установленный в HiveServer2.

    Интеграционные тесты Testcontainers в репозитории охватывают HiveServer2 3.1.3, 4.0.1 и 4.1.0, включая вход через Kerberos в 4.0.1; это не означает сертификации остальных версий.

    Установка

    Дистрибутив содержит плагин в plugins/hive. Убедитесь в разделе Управление платформой → Плагины, что hive включён; после обновления каталога плагинов выполните повторное сканирование. Плагин обращается к HiveServer2 через собственный JDBC-драйвер Hive (hive-jdbc 4.0.1, standalone) в отдельном загрузчике классов, поэтому одинаково работает с HiveServer2 3.1 и 4.x.

    Добавление сервиса данных

    1. Откройте Права на данные → Сервисы данных, добавьте сервис и выберите Apache Hive (hive).
    2. Укажите JDBC URL HiveServer2, например jdbc:hive2://hiveserver2.example.com:10000/default. Поддерживается и обнаружение через ZooKeeper: jdbc:hive2://zk1:2181,zk2:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2.
    3. Выберите способ входа пользователя для поиска, укажите его, проверьте подключение и сохраните сервис. Проверка выполняет вход и выводит список баз данных, как это делает поиск.

    Пользователь для поиска нужен GrantForge только для обнаружения ресурсов и не связан с пользователями, выполняющими запросы. Успешная проверка подключения не означает, что запросы уже подчиняются политикам.

    Параметр Назначение
    jdbc.url Обязательный URL HiveServer2 jdbc:hive2://хосты/база;переменные сеанса с TLS (;ssl=true;sslTrustStore=…), HTTP-транспортом или, для Kerberos, принципалом сервера (;principal=hive/_HOST@EXAMPLE.COM)
    authentication password (по умолчанию): пользователь с паролем — для LDAP, PAM или без аутентификации; kerberos: принципал с keytab или паролем
    username Обязательный пользователь для поиска; для Kerberos — полный принципал, например grantforge@EXAMPLE.COM
    password Пароль пользователя или, если keytab не задан, пароль Kerberos принципала; хранится в зашифрованном виде
    keytab Kerberos: путь к keytab принципала, доступный для чтения на сервере GrantForge
    kerberos.kdc Kerberos: KDC области принципала, host[:port] через запятую; если пусто, используется krb5.conf сервера
    read.timeout.ms Тайм-аут чтения, по умолчанию 30000, диапазон 1..600000

    URL не может содержать учётные данные или то, что читает файлы и токены на сервере GrantForge: user, password, initFile, kerberosAuthType, delegationToken, storePasswordPath, jwt и переменные browser… отклоняются независимо от регистра. auth может быть только noSasl. Сервису Kerberos нужен principal в URL; у сервиса с паролем его быть не должно.

    Kerberos

    При kerberos GrantForge сам выполняет вход принципала по keytab или паролю и открывает подключение от его имени; другие настройки Kerberos на сервере GrantForge не нужны. Области, KDC которых указаны в kerberos.kdc, объявляются для всего сервера GrantForge, как в плагине HDFS, поэтому несколько сервисов Hive и HDFS могут одновременно использовать разные области.

    Ресурсы и типы доступа

    Уровень Сопоставление Примечания
    database Шаблоны, без учёта регистра Политики могут заканчиваться здесь
    table Шаблоны, без учёта регистра Под базой данных; политики могут заканчиваться здесь
    column Шаблоны, без учёта регистра Под таблицей
    udf Шаблоны, без учёта регистра Постоянные функции, под базой данных
    url Пути, с учётом регистра, рекурсивно Данные, которые читают или пишут операторы, например hdfs://nn:8020/landing; типы доступа read и write
    hiveservice Шаблоны Сам HiveServer2; тип доступа serviceadmin
    global Шаблоны Временные функции и добавленные файлы; тип доступа tempudfadmin

    Типы доступа совпадают с Hive: select, update, create, drop, alter, index, lock, read, write, repladmin, serviceadmin, tempudfadmin, refresh и all. Как и в Ranger, all включает все типы, кроме tempudfadmin, который позволяет пользователю выполнять произвольный код внутри HiveServer2.

    В значениях политик * соответствует любому числу символов, а ? — одному символу. Редактор политик подсказывает имена по префиксу: базы данных, таблицы и UDF в базах, названных в политике, и столбцы её таблиц.

    Маскирование

    Политики маскирования применяются к столбцам. Каждый тип маски — одна из функций маскирования Hive, где {col} обозначает столбец:

    Тип маски Показывает
    mask Заглавные буквы как X, строчные как x, цифры как n
    mask_show_last_4 Только последние четыре символа
    mask_show_first_4 Только первые четыре символа
    mask_hash Хеш SHA-256
    mask_null NULL
    mask_none Значение без изменений
    mask_date_show_year 1 января года даты
    custom Собственное выражение Hive с {col} вместо столбца, например concat('****', substr({col}, -4))

    Например, mask_show_last_4 показывает 4111111111111111 как xxxxxxxxxxxx1111.

    Фильтры строк

    Политики фильтрации строк применяются к таблицам. Фильтр — условие Hive по столбцам таблицы, например region = 'EU': запросы видят только удовлетворяющие ему строки.

    Маски и фильтры строк не предоставляют доступ. Запрос должна разрешать отдельная политика доступа.

    Пример политик

    Допустим, в Hive есть таблица sales.orders со столбцами id, region и card. Создайте в одном сервисе данных три включённые политики для пользователя alice:

    Вид политики Ресурсы Правило
    Доступ database=sales, table=orders, column=* Разрешить select пользователю alice
    Маскирование database=sales, table=orders, column=card Использовать mask_show_last_4 для пользователя alice
    Фильтр строк database=sales, table=orders Использовать region = 'EU' для пользователя alice

    Как только агент применит новый снимок, alice будет видеть только строки EU из sales.orders, а у каждой карты будут скрыты все символы, кроме последних четырёх; SHOW DATABASES покажет ей sales, а другие базы данных будут ей отказывать.

    Применение политик

    Плагин сервиса управляет политиками и ищет ресурсы. Чтобы применять их, включая маски и фильтры строк, в каждом HiveServer2 нужен агент Hive. Его развёртывание и проверки описаны в разделе агент Hive.

    Связанные руководства

    Редактировать эту страницу на GitHub