Apache NiFi 1.14.0: что нового? Главные обновления июля 2021

Автор Категория ,
Apache NiFi 1.14.0: что нового? Главные обновления июля 2021

14 июля 2021 года вышел минорный релиз Apache NiFi – версия 1.14.0. Сегодня рассмотрим его главные фичи, исправленные ошибки и улучшения, уделив особое внимание новым функциям обеспечения информационной безопасности в этой популярной платформе управления потоками Big Data.

ТОП-5 новинок Apache NiFi 1.14.0

В новом выпуске Apache NiFi 1.14.0 исправлено 139 ошибок, внесено 144 улучшения и добавлено 22 новых функции [1]. Наиболее важными из всех этих изменений с точки зрения инженера данных и разработчика DataFlow считаются следующие [2]:

  • объединение кодовых баз Apache NiFI, Apache NiFI MiNiFI Java и Apache NiFi Registry. Теперь при новом релизе платформы, будут также обновлены версии MiNiFi Java и реестра, чтобы гарантировать совместимость всех компонентов, а также упростить их обслуживание, использование и обеспечение безопасности.
  • настраиваемое автоматическое обнаружение изменений в хранилище ключей и перезагрузка сервера Jetty. Напомним, Jetty – это популярный open-source Java-контейнер сервлетов, который обеспечивает обмен данными между сервлетом и клиентами, включая создание программной среды для работающего сервлета, идентификацию и авторизацию клиентов, организацию сессии и прочие обслуживающие функции. В частности, свойство cluster.node.max.concurrent.requests, по умолчанию равное 100, напрямую связано с Jetty – оно означает максимальное количество ожидающих веб-запросов, которые могут быть реплицированы на узлы в кластере. Если это количество превышено, встроенный сервер Jetty вернет ответ ошибку «409: Conflict» [3].
  • новые процессоры EncryptContentPGP и DecryptContentPGP вместо обработки PGP в EncryptContent. Pretty Good Privacy (PGP) – это система шифрования для отправки зашифрованных писем и для шифрования конфиденциальных файлов. С момента своего изобретения в 1991 году PGP стала фактическим стандартом защиты электронной почты, позволяя пользователям отправлять друг другу зашифрованные сообщения без обмена закрытыми ключами шифрования.
  • возможность горячей загрузки NAR-пакетов из больших BLOB-хранилищ, таких как Apache Hadoop HDFS, AWS S3 и пр. Объединение нескольких компонент с их зависимостями в один архив (NAR, NiFi Archive) позволяет избежать Java-ошибок NoClassDefFoundError. Каждый ClassLoader любого пакета NAR изолирован от других. Рекомендуется всегда развертывать пользовательские компоненты фреймворка как пакеты NAR [4].
  • повышенная безопасность с поддержкой HTTPS, политиками авторизации пользователей на основе групп в Azure Active Directory и шифрованием Hashicorp Vault. Именно этот пункт мы подробнее рассмотрим далее.

Еще безопаснее: 3 новых security-фичи

Новый NiFi версии 1.14.0 теперь запускается по умолчанию в режиме безопасного протокола HTTPS, а не HTTP, и для входа в систему требуется определенное автоматически сгенерированное имя пользователя и пароль. Также можно явно установить имя пользователя и пароль. Встроенная модель безопасной конфигурации генерирует самоподписанный сертификат сервера, на что может среагировать браузер [2]. Поэтому данный SSL-сертификат следует отметить как заслуживающий доверия (Trusted) в настройках браузера.

Дополнительно повысить уровень безопасности для среды NiFi, развернутой в облаке Azure, можно благодаря поддержке провайдера пользовательских групп Azure Active Directory. Вместе с OIDC-аутентификацией пользователя на основе OAuth 2.0 это улучшит уровень безопасности. Ранее политики на основе групп LDAP в Apache NiFi были невозможны и обойти это ограничение можно было добавлением пользователей платформы с последующим выделением групп. LDAP предназначался только для аутентификации пользователей с помощью логина и пароля, а авторизация выполнялась только с использованием имени пользователя и членства в группах NiFi [5]. Впрочем, при желании можно было самостоятельно настроить аутентификацию через LDAP, отредактировав файлы $NIFI_HOME/conf/login-identity-providers.xml и $NIFI_HOME/conf/authorizers.xml. А в файле authorizers.xml определить значения параметров, влияющих на способ представления пользователей и групп в NiFi [6]. В новой версии фреймворка настройка таких LDAP-политик для платформы потоковой маршрутизации в облаке Azure, выполняется еще проще за счет поддержки встроенных возможностей службы управления удостоверениями и доступом через средства единого входа и многофакторной аутентификации.

А предупредить возможность несанкционированного изменения свойств Apache NiFi поможет поддержка шифрования Hashicorp Vault. Эта open-source утилита часто используется для безопасного и надежного хранения и распространения секретов, таких как ключи API, токены доступа и пароли. Эта новая фича удачно дополняет ранее существовавшую функцию скрытия чувствительных данных в пользовательском интерфейсе фреймворка и шифрования паролей при записи на диск в файл flow.xml.gz [7]. О связанных с раскрытием чувствительных данных уязвимостях Apache NiFi и устранении этих проблем читайте в нашей новой статье.

Больше деталей про администрирование и использование Apache NiFi для решения задач дата-инженерии вы узнаете на специализированных курсах для разработчиков, ИТ-архитекторов, инженеров данных, администраторов, Data Scientist’ов и аналитиков Big Data в нашем лицензированном учебном центре обучения и повышения квалификации в Москве:

Источники

  1. https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&version=12349644
  2. https://cwiki.apache.org/confluence/display/NIFI/Release+Notes#ReleaseNotes-Version1.14.0
  3. https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html
  4. https://nifi.apache.org/developer-guide.html
  5. https://community.cloudera.com/t5/Support-Questions/Apache-NiFi-Integration-with-LDAP-and-Authentication-via/td-p/164856
  6. https://habr.com/ru/post/553756/
  7. https://community.cloudera.com/t5/Support-Questions/How-can-NiFi-integrate-with-hashicorp-vault-to-store/td-p/289709