24 февраля 2022 года российская компания Аренадата Софтвер, выпускающая корпоративные решения для хранения и аналитики больших данных, добавила поддержку защищенного протокола Kerberos в своих продуктах Arenadata Hadoop, Streaming и Platform Security. Разбираемся, чем это полезно, как связано с Apache Ambari и как настроить.
Улучшенная безопасность продуктов Arenadata c Kerberos Active Directory
Напомним, Arenadata Hadoop (ADH), Arenadata Streaming (ADS) и Arenadata Platform Security (ADPS) входят в Arenadata EDP – многофункциональную корпоративную платформу от отечественного разработчика, которая позволяет оперировать большими объёмами данных, обеспечивая отказоустойчивость и высокую производительность в любой среде, в т.ч. публичные и частные облака. Все решения Arenadata построены на open-source проектах, адаптированы для корпоративного использования и зарегистрированы в Едином реестре российских программ для электронных вычислительных машин и баз данных. Благодаря этому продукты Arenadata отлично подходят для цифровизации государственных и частных компании в России, позволяя избежать зависимости от вендора и валютных рисков.
Добавленная в феврале 2022 года возможность предотвращать несанкционированный доступ к сервисам и данным кластеров делает платформу Arenadata еще более безопасной. Теперь конечные пользователи при обращении к данным смогут защитить конфиденциальную информацию посредством хранения авторизационных сведений в Active Directory, включив Kerberos-авторизацию для всех компонентов. Вместе с системой управления групповыми политиками безопасности Arenadata Platform Security, о чем мы подробно писали здесь, можно предупредить неперсонифицированный доступ, т.е. без ввода доменного логина и пароля, к данным. Также Kerberos Active Directory помогает централизованно и гибко управлять правами доступа к сервисам и данным. Kerberos Active Directory доступен в enterprise-версиях продуктов Arenadata начиная с версии 2.1.4_b6-1:
- Arenadata Hadoop — 2.1.4_b6-1$
- Arenadata Streaming — 1.6.2_b4-1;
- Arenadata Platform Security — 1.0.2_b7-1.
Обычно Kerberos в кластере Hadoop настраивается под управлением Apache Ambari. Что это такое и как настроить Ambari для аутентификации LDAP или Active Directory, мы рассмотрим далее.
Безопасность Hadoop-кластера с Apache Ambari
Напомним, Apache Ambari является одним из security-инструментов для администратора Hadoop-кластера. Этот opne-source проект позволяет предоставлять, управлять и контролировать кластер, а также интегрировать Hadoop с существующей инфраструктурой предприятия. Ambari нацелен на упрощение работы с Hadoop-кластерами при помощи UI, управляемого с помощью собственного RESTful API.
Ambari обеспечивает пошаговую установку сервисов Hadoop для любого количества хостов и поддерживает конфигурации сервисов Hadoop для кластера. Также Ambari предоставляет доступ к панели контроля состояния кластера Hadoop с помощью системы измерений и фреймворка сигналов для системных оповещений. REST API позволяет интегрировать приложения с Hadoop. По умолчанию Ambari использует внутреннюю базу данных в качестве хранилища пользователя для аутентификации и авторизации.
Hadoop использует защищенный протокол Kerberos для строгой аутентификации и удостоверения подлинности пользователей и сервисов. Kerberos стал стандартом де-факто в области Big Data, предполагает, что после успешной первичной аутентификации центр распределения ключей (Key Distribution Center, KDC) выдает первичное удостоверение пользователя для доступа к сетевым ресурсам — Ticket Granting Ticket (TGT). Далее при обращении к отдельным ресурсам, пользователь предъявляет TGT и получает от центра распределения ключей удостоверение для доступа к конкретному сетевому ресурсу (Service Granting Ticket, TGS).
Когда кластер включен с Kerberos, конечные точки компонента REST, например, YARN ATS, требуют аутентификации SPNEGO для доступа к данным API. Некоторые представления типа Tez View также нуждаются в доступе к ATS. Поэтому сервер Ambari требует принципала Kerberos для аутентификации через SPNEGO в отношении этих API. Следует настроить сервер Ambari с помощью принципала Kerberos и keytab, чтобы позволить представлениям аутентифицироваться через SPNEGO по компонентам кластера.
Такая настройка сводится к следующим шагам:
- создать принципала в KDC для сервера Ambari. Принципал – это база данных пользователей и сервисов, известных KDC, и соответствующие пароли Kerberos;
- cоздать keytab для этого принципала. Keytab – это файл таблицы ключей, содержащий пары имен субъектов Kerberos и зашифрованные ключи, полученные из пароля Kerberos. Такой файл может использоваться для идентификации в Kerberos без запроса пароля.
- Поместить keytab на хост сервера Ambari, задав права для keytab-файлов, чтобы пользователь, который запускает Ambari Server, мог получить доступ к этим файлам:
- остановить сервер Ambari;
- настроить безопасность, запустив команду setup-security и задав нужные значения для Ambari kerberos JAAS, имени созданного принципала Kerberos, пути к keytab для принципала Ambari;
- перезапустить сервер
При автоматической настройке Kerberos с Active Directory в зависимости от прав KDC можно настроить атрибуты принципалов, устанавливаемые Ambari при их создании. В решениях Arenadata можно использовать готовые шаблоны атрибутов Ambari, основанные на синтаксисе шаблонов Apache Velocity. Эти шаблоны можно изменить по-своему, определив, какие атрибуты назначаются принципалам, и как эти значения получаются.
Если необходимо еще более усилить защиту данных в кластере Arenadata Hadoop, можно включить шифрование, настроив Truststore Ambari и добавив сертификаты. Также можно использовать двусторонний SSL, который обеспечивает шифрование связи между сервером и агентами Ambari. По умолчанию Ambari отправляет данные с отключенным двухсторонним SSL. Во время настройки Truststore и двустороннего SSL сервер Ambari не должен быть запущен: его следует остановить для внесения изменений или сделать необходимые настройки до первого запуска.
Чтобы отключить определенные шифры, доступные через Ambari Server, необходимо добавить их список в ambari.properties, например:
security.server.disabled.ciphers=TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
Аналогичным образом можно отключить некоторые протоколы:
security.server.disabled.protocols=SSL|SSLv2|SSLv3.
Читайте в нашей новой статье про отечественный программно-аппаратный комплекс для хранения и аналитической обработки данных СКАЛА-Р МБД8 на базе продуктов Arenadata. А освоить все тонкости администрирования и безопасной эксплуатации Hadoop-кластеров, в т.ч. на платформе Arenadata, для эффективной аналитики больших данных вам помогут специализированные курсы в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
- Безопасность озера данных Hadoop на платформе CDP
- Администрирование кластера Hadoop
- Основы Hadoop
- Администрирование кластера Kafka
Источники