Важно: Данный раздел актуален для Платформы данных в Публичном облаке и On-Premise.
Apache Ranger предоставляет управление доступом и политиками безопасности для различных сервисов и компонентов в экосистеме Hadoop и больше. В Apache Ranger могут поддерживаться следующие сервисы:
Примените соответствующие настройки в зависимости от политик безопасности и требований безопасности вашей организации.
<?xml version="1.0"?>
<configuration>
<!-- Параметры HTTP-сервера Ranger Admin -->
<property>
<name>ranger.service.http.port</name>
<value>6080</value>
<description>Порт для HTTP-сервера Ranger Admin.</description>
</property>
<property>
<name>ranger.service.http.enabled</name>
<value>true</value>
<description>Включение или отключение HTTP-сервера Ranger Admin.</description>
</property>
<!-- Параметры подключения к базе данных -->
<property>
<name>ranger.jpa.jdbc.url</name>
<value>jdbc:mysql://localhost:3306/ranger</value>
<description>URL для подключения к базе данных Ranger Admin.</description>
</property>
<!-- Параметры SSL -->
<property>
<name>ranger.service.http.enabled.ssl</name>
<value>false</value>
<description>Включение или отключение SSL для HTTP-сервера.</description>
</property>
<property>
<name>ranger.https.attrib.keystore.file</name>
<value>/path/to/keystore.jks</value>
<description>Путь к файлу хранилища ключей для SSL.</description>
</property>
<!-- Аутентификация и безопасность -->
<property>
<name>ranger.authentication.method</name>
<value>simple</value>
<description>Метод аутентификации Ranger Admin.</description>
</property>
<property>
<name>ranger.service.http.authentication.method</name>
<value>simple</value>
<description>Метод аутентификации для HTTP-запросов.</description>
</property>
<property>
<name>ranger.service.http.authentication.signature.secret</name>
<value>secret_key</value>
<description>Секретный ключ для подписи токенов аутентификации.</description>
</property>
<!-- Другие настройки -->
<property>
<name>ranger.admin.ui.session.timeout</name>
<value>1800</value>
<description>Время неактивности сеанса администратора в секундах перед завершением сеанса.</description>
</property>
<property>
<name>ranger.admin.ui.header</name>
<value>Ranger Admin Interface</value>
<description>Заголовок Ranger Admin, отображаемый в пользовательском интерфейсе.</description>
</property>
<!-- ServiceDef -->
<property>
<name>ranger.servicedef.impl.class</name>
<value>org.apache.ranger.services.hdfs.client.HdfsResourceMgr</value>
<description>Класс, реализующий интерфейс ServiceDef. Определяет поддерживаемые сервисы Ranger Admin.</description>
</property>
</configuration>
1) install.properties: Файл конфигурации, используемый при установке и настройке Apache Ranger, включая параметры для UserSync.
Файл install.properties используется при установке Apache Ranger для задания различных параметров. Список параметров:
2) ranger-ugsync-site.xml: Файл конфигурации для UserSync.
Файл конфигурации ranger-ugsync-site.xml используется для настройки Apache Ranger UserSync, компонента, отвечающего за синхронизацию пользователей и групп между Apache Ranger и источниками данных, такими как LDAP или Active Directory.
Параметры ranger-ugsync-site.xml:
<?xml version="1.0"?>
<configuration>
<!-- Параметры подключения к источнику данных (например, LDAP, Active Directory) -->
<property>
<name=ranger.usersync.source.impl</name>
<value>org.apache.ranger.ldapusersync.process.LdapUserGroupBuilder</value>
<description>Класс реализации для синхронизации пользователей и групп.</description>
</property>
<property>
<name>ranger.usersync.source.ldap.binddn</name>
<value>cn=admin,dc=example,dc=com</value>
<description>Имя пользователя для привязки к LDAP.</description>
</property>
<property>
<name>ranger.usersync.source.ldap.user.dnpattern</name>
<value>uid={0},ou=people,dc=example,dc=com</value>
<description>Шаблон DN для поиска пользователя в LDAP.</description>
</property>
<property>
<name>ranger.usersync.source.ldap.group.searchbase</name>
<value>ou=groups,dc=example,dc=com</value>
<description>Базовый DN для поиска групп в LDAP.</description>
</property>
<!-- Параметры для сопоставления и преобразования данных -->
<property>
<name>ranger.usersync.group.searchenabled</name>
<value>true</value>
<description>Включение или отключение поиска и сопоставления групп.</description>
</property>
<property>
<name>ranger.usersync.group.searchfilter</name>
<value>(objectClass=posixGroup)</value>
<description>Фильтр для поиска групп в LDAP.</description>
</property>
<property>
<name>ranger.usersync.group.nameattribute</name>
<value>cn</value>
<description>АтрибутLDAP, используемый для имени группы.</description>
</property>
<!-- Параметры безопасности -->
<property>
<name>ranger.usersync.pagedresults</name>
<value>true</value>
<description>Включение или отключение использования постраничных результатов LDAP.</description>
</property>
<property>
<name>ranger.usersync.ldap.bindpassword</name>
<value>password</value>
<description>Пароль для привязки к LDAP.</description>
</property>
<!-- Другие параметры -->
<property>
<name>ranger.usersync.logdir</name>
<value>/var/log/ranger/usersync</value>
<description>Каталог для журналов UserSync.</description>
</property>
</configuration>
Apache Ranger плагины предоставляют механизмы для интеграции политик безопасности и аудита Ranger с различными компонентами экосистемы Hadoop. Каждый плагин Ranger имеет свой набор конфигурационных файлов. Ниже представлен общий список типов файлов конфигурации, которые могут использоваться плагинами Ranger:
1. ranger-<component>-security.xml: Основной файл конфигурации для плагина, который связывает компонент (например, HDFS, Hive, HBase) с Ranger. В этом файле указывается информация для подключения к Ranger Admin для получения политик безопасности.
2. ranger-<component>-audit.xml: Конфигурация аудита для плагина, определяющая, как и где должны храниться записи аудита (например, в базе данных, HDFS, Solr и
т.д.).
3. ranger-<component>-policymgr-ssl.xml: Настройки SSL для безопасного соединения между плагином и Ranger Admin. Этот файл используется, если для взаимодействия с Ranger Admin требуется шифрование.
4. install.properties: Хотя это не специфичный для плагина файл, он используется при установке Ranger и его компонентов, включая настройки для UserSync и параметры, связанные с интеграцией Ranger с другими системами. Для плагинов он может содержать параметры, указывающие на необходимость установки или конфигурации специфических аспектов плагина. Описание параметров файла представлено в п. 2.1 (1).
Компонент <component> в именах файлов представляет собой имя сервиса или приложения, с которым интегрируется плагин Ranger, например hdfs, hive, hbase и т.д.
Пример для HDFS:
Пример для Hive:
Файлы конфигурации ranger-<component>-security.xml используются для настройки связи между плагинами Apache Ranger и различными компонентами Hadoop или другими поддерживаемыми системами. Эти файлы содержат ключевые параметры, необходимые для авторизации, аутентификации и получения политик безопасности от службы Ranger Admin.
Ниже приведен общий пример параметров, которые могут быть указаны в файле ranger-<component>-security.xml для любого компонента (например, HDFS, Hive, HBase и т.д.):
<configuration>
<!-- Указывает, включен ли плагин Ranger для данного компонента -->
<property>
<name>ranger.plugin.<component>.enabled</name>
<value>true</value>
<description>Включение или отключение плагина Ranger для компонента</description>
</property>
<!-- URL службы Ranger Admin -->
<property>
<name>ranger.plugin.<component>.policy.rest.url</name>
<value>http://<RANGER_ADMIN_HOST>:<PORT></value>
<description>URL для доступа к Ranger Admin</description>
</property>
<!-- Имя службы, зарегистрированное в Ranger для данного компонента -->
<property>
<name>ranger.plugin.<component>.service.name</name>
<value>my_<component>_service</value>
<description>Имя службы, под которым компонент зарегистрирован в Ranger Admin</description>
</property>
<!-- Параметры аутентификации в Ranger -->
<property>
<name>ranger.plugin.<component>.policy.rest.auth.username</name>
<value>admin</value>
<description>Имя пользователя для аутентификации в Ranger Admin</description>
</property>
<property>
<name>ranger.plugin.<component>.policy.rest.auth.password</name>
<value>admin_password</value>
<description>Пароль для аутентификации в Ranger Admin</description>
</property>
<!-- Кеширование политик -->
<property>
<name>ranger.plugin.<component>.policy.cache.dir</name>
<value>/etc/ranger/<component>/policycache</value>
<description>Директория для кэширования политик безопасности</description>
</property>
<!-- Параметры для SSL -->
<property>
<name>ranger.plugin.<component>.policy.rest.ssl.config.file</name>
<value>/etc/ranger/<component>/conf/ranger-plugin-keystore.jks</value>
<description>Путь к файлу конфигурации SSL</description>
</property>
</configuration>
Замените <component> на имя конкретного компонента (например, hdfs, hive), <RANGER_ADMIN_HOST> на имя хоста или IP-адрес, где работает Ranger Admin, и <PORT> на порт, на котором слушает Ranger Admin.
Эти настройки являются ключевыми для обеспечения безопасного и корректного взаимодействия между компонентами экосистемы и Ranger Admin. Они позволяют плагинам Ranger автоматически загружать и обновлять политики безопасности, а также передавать данные аудита в централизованное хранилище.
Файл ranger-<component>-audit.xml используется для настройки аудита в плагинах Apache Ranger. Этот файл позволяет определить, как и где должны храниться записи аудита для каждого компонента (например, HDFS, Hive, HBase и т.д.). Настройки могут включать в себя конфигурацию для локального хранения, отправки данных в удаленные хранилища, такие как Solr, HDFS или база данных.
Ниже приведены типичные параметры, которые могут быть настроены в ranger-<component>-audit.xml для управления аудитом:
<configuration>
<!-- Включение аудита для компонента -->
<property>
<name>xasecure.audit.is.enabled</name>
<value>true</value>
<description>Флаг для включения аудита</description>
</property>
<!-- Настройка аудита в локальный файл -->
<property>
<name>xasecure.audit.destination.file</name>
<value>true</value>
<description>Включает запись аудита в локальный файл</description>
</property>
<!-- Путь к локальному файлу аудита -->
<property>
<name>xasecure.audit.destination.file.path</name>
<value>/var/log/<component>/audit.log</value>
<description>Путь к файлу локального аудита</description>
</property>
<!-- Включение аудита в Solr -->
<property>
<name>xasecure.audit.destination.solr</name>
<value>false</value>
<description>Включает отправку записей аудита в Solr</description>
</property>
<!-- URL сервера Solr для аудита -->
<property>
<name>xasecure.audit.destination.solr.urls</name>
<value>http://solr_host:solr_port/solr/ranger_audits</value>
<description>URL сервера Solr</description>
</property>
<!-- Включение аудита в HDFS -->
<property>
<name>xasecure.audit.destination.hdfs</name>
<value>false</value>
<description>Включает запись аудита в HDFS</description>
</property>
<!-- Путь к директории в HDFS для аудита -->
<property>
<name>xasecure.audit.destination.hdfs.dir</name>
<value>hdfs://<hdfs_host>:<hdfs_port>/user/ranger/audit</value>
<description>Путь к директории HDFS для аудита</description>
</property>
<!-- Включение аудита в базу данных -->
<property>
<name>xasecure.audit.destination.db</name>
<value>false</value>
<description>Включает запись аудита в базу данных</description>
</property>
<!-- Настройки соединения с базой данных для аудита -->
<!-- Соответствующие параметры конфигурации зависят от используемой СУБД -->
</configuration>
Эти настройки позволяют тонко настроить процесс аудита, выбирая между различными целевыми хранилищами (локальный файл, Solr, HDFS, база данных и т.д.) в зависимости от требований безопасности и производительности вашей инфраструктуры. Они также позволяют включать или отключать аудит на уровне отдельных компонентов, обеспечивая гибкость в настройке политик безопасности.
Файл ranger-<component>-policymgr-ssl.xml предназначен для настройки SSL/TLS соединений между плагинами Apache Ranger и Ranger Admin для безопасной передачи данных. Эти настройки обеспечивают шифрование трафика, идущего от компонентов (например, HDFS, HBase, Hive и т.д.) к Ranger Admin, что критически важно для обеспечения конфиденциальности и целостности политик безопасности и данных аудита.
Ниже приведен пример наиболее распространенных параметров, которые можно настроить в ranger-<component>-policymgr-ssl.xml:
<configuration>
<!-- Включение/выключение использования SSL -->
<property>
<name>xasecure.policymgr.clientssl.keystore</name>
<value>/etc/ranger/<component>/client.keystore</value>
<description>Путь к файлу хранилища ключей клиента</description>
</property>
<property>
<name>xasecure.policymgr.clientssl.keystore.password</name>
<value>myKeyStorePassword</value>
<description>Пароль к хранилищу ключей клиента</description>
</property>
<property>
<name>xasecure.policymgr.clientssl.truststore</name>
<value>/etc/ranger/<component>/client.truststore</value>
<description>Путь к файлу доверенного хранилища клиента</description>
</property>
<property>
<name>xasecure.policymgr.clientssl.truststore.password</name>
<value>myTrustStorePassword</value>
<description>Пароль к доверенному хранилищу клиента</description>
</property>
<!-- Включение проверки сертификата сервера -->
<property>
<name>xasecure.policymgr.clientssl.truststore.credential.file</name>
<value>java.security</value>
<description>Файл с учетными данными доверенного хранилища</description>
</property>
</configuration>
Эти параметры определяют конфигурацию для клиентских SSL соединений, включая расположение и пароли к файлам хранилища ключей и доверенных хранилищ. Ключевая цель состоит в том, чтобы обеспечить безопасный канал связи между плагинами Ranger и сервером Ranger Admin, защищая данные аудита и политики безопасности от возможного перехвата или модификации.
Важно подчеркнуть, что использование SSL/TLS требует предварительной настройки и генерации соответствующих сертификатов и ключей, которые должны быть размещены в указанных файлах хранилища ключей и доверенного хранилища. Также может потребоваться импорт сертификатов центров сертификации (ЦС), если используются сертификаты, подписанные внешним ЦС.
Важно: Данный раздел актуален для Платформы данных On-Premise.
Для работы компонента Ranger для кластера созданного с помощью плагина RT.DataLakeSecurity требуется использование базы данных Postgres из состава сертифицированной ОС.
До установки компонента Ranger необходимо установить и запустить Postgres и выполнить скрипт, создающий необходимую структуру таблиц:
sudo -u postgres psql -U postgres
CREATE DATABASE ranger;
CREATE USER rangerdba WITH PASSWORD 'rangerdba';
GRANT ALL PRIVILEGES ON DATABASE ranger TO rangerdba;
Пароль можно задать свой.
Также для компонента Ranger в конфигурации в RT.ClusterManager необходимо задать строку подключения к базе данных (как указано в шаге 3 документа “Подключение к кластеру, создаваемому с использованием плагина RT.DataLake внешней СУБД Postgres”).
После того как были изменены параметры конфигурации компонента необходимо для него выполнить команду “Переконфигурировать” (как указано в п. 8.4.5 документа ”RT.ClusterManager. Руководство администратора").