Архитектура Ranger
Обзор
Apache Ranger — система безопасности с открытым исходным кодом, обеспечивающая централизованное управление политиками для Hadoop и других экосистем больших данных.
Ranger имеет сложную структуру, состоящую из трех компонентов: Ranger Admin, Ranger KMS и Ranger User synchronizer.
Ranger определяет политики аутентификации для сервисов через плагины и хранит их на сервере политик.
Ranger Admin
Ranger Admin — это централизующий интерфейс управления политиками, пользователями и аудитом. Он доступен через веб-интерфейс и через REST API. Для Ranger Admin доступна работа в режиме высокой доступности. Когда пользователь использует веб-интерфейс через браузер, балансировщик нагрузки выбирает для обработки действий инстанс с наименьшей нагрузкой. Метаданные Ranger Admin можно хранить во внешней базе данных (PostgreSQL/MySQL).
Ranger Admin также поддерживает аутентификацию пользователей через LDAP/Active Directory.
Ranger KMS
Ranger KMS (Key Management Service) используется для шифрования внутри кластера. Он основан на Hadoop KMS и позволяет хранить ключи в защищенной базе данных вместо Java keystore-файлов. Сервером KMS можно управлять через Ranger Admin.
Ranger KMS позволяет создавать, удалять и обновлять ключи через Ranger Admin или посредством REST API. Ranger KMS полностью совместим с REST API Hadoop KMS. Использование Ranger KMS рекомендуется из-за дополнительной безопасности и масштабируемости — Ranger KMS поддерживает режим высокой доступности. Как и в случае с Ranger Admin, метаданные Ranger KMS можно хранить во внешней базе данных (PostgreSQL/MySQL).
Ranger UserSync
Ranger User synchronizer (UserSync) позволяет Ranger синхронизировать пользователей/группы из внешних систем. По умолчанию импортируются только пользователи из Unix, но вы можете настроить дополнительный LDAP-источник.
По умолчанию происходит инкрементная синхронизация: при каждой синхронизации UserSync обновляет только добавленных или отредактированных пользователей/групп. Когда пользователь или группа удаляются в оригинальной системе, UserSync не удаляет их из Ranger Admin. Для улучшения производительности UserSync не импортирует пустые группы. Синхронизация происходит только в одну сторону, т.е. если пользователя удалить из Ranger Admin, он останется в исходной системе.
Синхронизация происходит периодически, частоту обновлений можно установить в конфигурации Ranger. Параметр, отвечающий за период обновления, называется ranger.usersync.sleeptimeinmillisbetweensynccycle
и находится в группе параметров ranger-ugsync-site.xml. Если не установить значение, то будет использоваться значение по умолчанию: 300000
для Unix и 21600000
для LDAP.
Сервер политик Ranger
Сервер политик Ranger позволяет определять политики авторизации для приложений Hadoop.
Плагины Ranger
Ranger предоставляет плагины контроля доступа, заменяющие исходные плагины аутентификации для приложений Hadoop. Если для сервиса включен плагин Ranger, то для него можно создать политики аутентификации в Ranger Admin. Плагины Ranger периодически обновляют политики из Ranger Admin и кешируют их. Для плагинов также можно настроить логирование аудита.