Контроль доступа с помощью политик Hive в Apache Ranger#

CedrusData позволяет выполнять авторизацию действий пользователя с помощью политик доступа Hive в Apache Ranger. Данный режим аутентификации поддерживается для коннекторов Hive и Iceberg.

Требования#

  • Apache Ranger версии 2.5.0 и выше

  • Наличие сервиса Hive в Apache Ranger

  • Наличие сетевого доступа к Apache Ranger с координатора CedrusData

Принцип работы#

Apache Ranger хранит политики доступа к различным системам. Для каждой целевой системы в Apache Ranger необходим соответствующий плагин, который описывает структуру политик доступа. Одним из встроенных плагинов Apache Ranger является плагин Hive (отображается в UI Apache Ranger как Hadoop SQL), который управляет политиками доступа в Apache Hive.

В CedrusData вы можете осуществлять авторизацию действий пользователя в каталогах Hive и Iceberg на основе политик доступа Hive в Apache Ranger. Для этого CedrusData подключается к Apache Ranger и получает из него политики доступа Hive, а также группы и роли пользователя. После этого происходит локальная авторизация действия пользователя. Политики, группы и роли периодически обновляются с заданной частотой.

Настройка#

Конфигурация авторизации с помощью политик Hive в Apache Ranger происходит на уровне конкретного каталога (Hive или Iceberg).

Задайте в конфигурации каталога режим безопасности cedrusdata_hive_ranger (также можно написать cedrusdata-hive-ranger). Пример для Hive:

hive.security=cedrusdata-hive-ranger

Пример для Iceberg:

iceberg.security=cedrusdata-hive-ranger

Далее необходимо задать имя существующего сервиса Hive в Apache Ranger с помощью параметра cedrusdata.ranger-hive.service-name. Например, если в Apache Ranger имя сервис Hive равно myhive, задайте следующую конфигурацию:

cedrusdata.ranger-hive.service-name=myhive

Если у вас есть XML-файлы конфигурации Apache Ranger, полученные от администраторов, то используйте их для дальнейшей конфигурации. Перечислите данные файлы через запятую в параметре конфигурации cedrusdata.ranger-hive.resources. Как правило, на этом настройка будет завершена.

Если у вас нет XML-файлов конфигурации, необходимо будет задать:

  1. Путь к Apache Ranger cedrusdata.ranger-hive.rest.url

  2. Имя пользователя и пароль для подключения (cedrusdata.ranger-hive.rest.basic-auth-username, cedrusdata.ranger-hive.rest.basic-auth-password)

  3. Если вы подключаетесь к Apache Ranger по TLS, то потребуется XML-файл Apache Ranger с настройками SSL. Данный файл вам должны предоставить администраторы Apache Ranger. Путь к нему необходимо указать в параметре конфигурации cedrusdata.ranger-hive.rest.ssl-config-file

Предупреждение

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

Примеры#

Подключение к Apache Ranger из каталога Hive с помощью XML-файлов конфигурации:

hive.security=cedrusdata-hive-ranger
cedrusdata.ranger-hive.service-name=myhive
cedrusdata.ranger-hive.resources=path/to/ranger-hive-security.xml,path/to/ranger-hive-audit.xml

Подключение к Apache Ranger из каталога Iceberg с явным указанием параметров:

iceberg.security=cedrusdata-hive-ranger
cedrusdata.ranger-hive.service-name=myhive
cedrusdata.ranger-hive.rest.url=https://ranger:9080
cedrusdata.ranger-hive.rest.ssl-config-file=path/to/ranger-policymgr-ssl.xml
cedrusdata.ranger-hive.rest.basic-auth-username=admin
cedrusdata.ranger-hive.rest.basic-auth-password=rangerR0cks!

Параметры конфигурации#

Параметры конфигурации#

Название

Описание

cedrusdata.ranger-hive.service-name

Имя сервиса Hive в Apache Ranger. Обязательный параметр.

cedrusdata.ranger-hive.app-id

Идентификатор приложения CedrusData. Опциональный параметр, необходим только для целей аудита.

cedrusdata.ranger-hive.resources

Разделенные запятой пути к XML файлам конфигурации Apache Ranger. Опциональный параметр. Используйте его, если администраторы Apache Ranger предоставили вам файлы конфигурации (например, ranger-hive-security.xml).

cedrusdata.ranger-hive.rest.url

URL Apache Ranger Admin. Должен начинаться с http:// или https://. Если значение не задано, будет использовано значение параметра ranger.plugin.hive.policy.rest.url из файлов конфигурации cedrusdata.ranger-hive.resources.

cedrusdata.ranger-hive.rest.ssl-config-file

Путь к файлу с конфигурацией SSL. Наличие такого файла обязательно, если вы подключаетесь к Apache Ranger через SSL. Если значение не задано, будет использовано значение параметра ranger.plugin.hive.policy.rest.ssl.config.file из файлов конфигурации cedrusdata.ranger-hive.resources.

cedrusdata.ranger-hive.rest.client-connection-timeout

Таймаут подключения к Apache Ranger Admin. Если значение не задано, будет использовано значение параметра ranger.plugin.hive.policy.rest.client.connection.timeoutMs из файлов конфигурации cedrusdata.ranger-hive.resources. Значение по умолчанию: 120s (две минуты).

cedrusdata.ranger-hive.rest.client-read-timeout

Таймаут чтения данных из Apache Ranger Admin. Если значение не задано, будет использовано значение параметра ranger.plugin.hive.policy.rest.client.read.timeoutMs из файлов конфигурации cedrusdata.ranger-hive.resources. Значение по умолчанию: 30s (тридцать секунд).

cedrusdata.ranger-hive.rest.basic-auth-username

Имя пользователя для подключения к Apache Ranger Admin Если значение не задано, будет использовано значение параметра ranger.plugin.hive.policy.rest.client.username из файлов конфигурации cedrusdata.ranger-hive.resources.

cedrusdata.ranger-hive.rest.basic-auth-password

Пароль для подключения к Apache Ranger Admin. Если значение не задано, будет использовано значение параметра ranger.plugin.hive.policy.rest.client.password из файлов конфигурации cedrusdata.ranger-hive.resources.

cedrusdata.ranger-hive.policy.poll-interval

Как часто обновлять политики доступа Apache Ranger. Если значение не задано, будет использовано значение параметра ranger.plugin.hive.policy.pollIntervalMs из файлов конфигурации cedrusdata.ranger-hive.resources. Значение по умолчанию: 30s (тридцать секунд).

cedrusdata.ranger-hive.policy.cache-dir

Директория, в которой будут сохранены закэшированные политики Apache Ranger. Если значение не задано, будет использовано значение параметра ranger.plugin.hive.policy.cache.dir из файлов конфигурации cedrusdata.ranger-hive.resources.

cedrusdata.ranger-hive.audit.enabled

Включен ли аудит Apache Ranger. Значение по умолчанию: true.

cedrusdata.ranger-hive.user-group.source

Откуда брать список групп доступа для текущего пользователя. Допустимые значения: CEDRUSDATA — использовать список групп CedrusData; RANGER — получать список групп пользователя из Apache Ranger; NONE — использовать пустой список групп. Значение по умолчанию: CEDRUSDATA.

cedrusdata.ranger-hive.user-group.cache-size

Размер кэша пользовательских групп Apache Ranger. Используется, только когда значение параметра cedrusdata.ranger-hive.user-group.source равно RANGER. Значение 0 отключает кэширование групп Apache Ranger. Значение по умолчанию: 10000.

cedrusdata.ranger-hive.user-group.cache-ttl

Как долго хранить закэшированные группы Apache Ranger для конкретного пользователя. Используется, только когда значение параметра cedrusdata.ranger-hive.user-group.source равно RANGER. Значение 0s отключает кэширование групп Apache Ranger. Значение по умолчанию: 30s (тридцать секунд).