Еще раз про Big Data Security: как обеспечить безопасность кластера Apache Kafka

Kafka, Big Data, Большие данные, архитектура, обработка данных, защита информации, безопасность, security

В рамках серии публикаций про основы Apache Kafka для начинающих, сегодня мы поговорим про информационную безопасность этой популярной в сфере Big Data распределенной системы управления сообщениями: шифрование, защищенные протоколы, аутентификация, авторизация и другие средства cybersecurity.

Что обеспечивает безопасность Apache Kafka в кластере Big Data

Информационная безопасность Apache Kafka основана на следующих ключевых технологиях [1]:

  • шифрование SSL/TLS, обеспечивающее защищённую передачу данных в режиме онлайн при всех коммуникациях между отправителями (Producer) и получателями (Consumer) Кафка;
  • аутентификация с использованием криптографического протокола SSL или фреймворка SASL, что позволяет идентифицировать отправителя и получателя сообщений на кластере Kafka;
  • авторизация по спискам избирательного управления доступом (Access Control List, ACL) для детального определения прав клиентов (Client) кластера Kafka на чтение или запись топиков с сообщениями (Topic).

Учитывая распределенную архитектуру Big Data систем, для обеспечения комплексной информационной безопасности всего корпоративного кластера потребуется защитить и службу централизованного контроля работоспособности узлов – Apache ZooKeeper. Для этого используется Kerberos – сетевой протокол взаимной аутентификации клиента и сервера перед установлением связи между ними, поддерживающий GSSAPI (Generic Security Services API) – общий программный интерфейс сервисов безопасности и фреймворк SASL (Simple Authentication and Security Layer) – простой уровень аутентификации и безопасности) [2].

Kafka, Big Data, Большие данные, архитектура, обработка данных, защита информации, безопасность, security
Архитектура информационной безопасности в Apache Kafka

Как реализуется управление доступом в Кафка

Поскольку именно Apache Zookeeper хранит ACL-списки избирательного доступа к объектам Кафка, защита этой службы – первоочередная задача обеспечения информационной безопасности кластера Kafka [3]. На практике защита Apache Zookeeper реализуется сервисом аутентификации и авторизации Java – JAAS (Java Authentication and Authorization Service), который обеспечивает проверку полномочий пользователей или программ путем их определения в конфигурационных файлах [4].

ACL-авторизация по спискам избирательного доступа реализует RBAC-модель (Role Based Access Control) разрешения или запрета на операции с данными. Например, в коммерческой версии Apache Kafka от компании Confluent это выполняется следующим образом [5]:

  1. клиент по защищенному протоколу SSL отправляет вызов прокси-серверу Кафка (REST Proxy) через REST API, посылая свои учетные данные LDAP для базовой аутентификации HTTP (SSL/Basic auth);
  2. специальный плагин безопасности прокси-сервера (Security plugin) аутентифицирует клиента по метаданным сервиса, генерируя токен для деперсонализации пользовательского запроса и аутентификации между клиентами и кластером Кафка;
  3. для клиентов используются криптографические протокол SASL_PLAINTEXT/SASL_SSL, а собственный обработчик обратного вызова передает токен в кластер Кафка. Аналогично при обмене данными с реестром схем (Schema Registry) токен аутентификации передается клиенту реестра схемы с использованием собственной реализации интерфейса аутентификации учетных данных провайдера (BearerAuthCredentialProvider).
  4. При отсутствии у клиента необходимой роли или ACL-разрешения на операцию с запрашиваемым ресурсом (топиком или кластером) API-вызов REST-запроса завершается неудачно и возвращает ошибку с кодом состояния HTTP 403.
Kafka, Big Data, Большие данные, архитектура, обработка данных, защита информации, безопасность, security, RBAC
Реализация RBAC в Apache Kafka Confluent

Вышеупомянутая коммерческая версия Apache Kafka Confluent, которая очень популярна в production-решениях Big Data систем, включает также и другие инструменты обеспечения информационной безопасности кластера Кафка. В частности, сценарии запуска security-служб c передачей файла JAAS-файлов в качестве аргументов [3], генерацию ключей и сертификатов шифрования, криптографически защищенный инструмент доступа к внешним хранилищам данных Kafka Connect и другие средства cybersecurity [6]. Следующая наша статья посвящена другому важному компоненту Кафка — регистру схем. А про расширение описанных базовых возможностей обеспечения безопасности Кафка читайте здесь

Администрирование кластера Kafka

Код курса
KAFKA
Ближайшая дата курса
29 мая, 2024
Продолжительность
24 ак.часов
Стоимость обучения
72 000 руб.

Освойте администрирование и эксплуатацию Apache Kafka для потоковой аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://medium.com/@stephane.maarek/introduction-to-apache-kafka-security-c8951d410adf
  2. https://ru.wikipedia.org/wiki/Kerberos
  3. https://blog.upala.com/2017/11/09/kafka-security
  4. https://ru.wikipedia.org/wiki/Java_Authentication_and_Authorization_Service
  5. https://docs.confluent.io/current/confluent-security-plugins/kafka-rest/rbac-rest-proxy-security.html
  6. https://docs.confluent.io/4.0.0/security.html
Поиск по сайту