Защита канала по протоколу SSL в Kafka

ПРИМЕЧАНИЕ
Включение защиты канала про протоколу SSL осуществляется в соответствии со статьей Защита канала по протоколу SSL.

Проверка настроек SSL

  1. Убедитесь, что после запуска SSL на странице конфигурирования сервиса Kafka в группе server.properties значение параметра listeners изменено с SASL_PLAINTEXT://:9092 на SASL_SSL://:9092.

  2. Убедитесь, что в файлах /etc/kafka/conf/*.properties для каждого брокера Kafka строка, определяющая протокол безопасности, изменена на SASL_SSL и появились строки, определяющие хранилища для RSA-ключей серверов и пароли для них:

    security.inter.broker.protocol=SASL_SSL
    ...
    ...
    ...
    ssl.keystore.location=/tmp/keystore.jks
    ssl.keystore.password=bigdata
    ssl.key.password=bigdata
    ssl.keystore.type=JKS
    ssl.truststore.location=/tmp/truststore.jks
    ssl.truststore.password=bigdata
    ssl.truststore.type=JKS

Подключение к Kafka (создание тикетов) и работа с .sh файлами (скриптами) с участием разных пользователей после установки SSL

  1. Для создания файла конфигурации .properties для пользователя с учетом SSL выполнить команду:

    $ sudo vim /tmp/client_ssl.properties

    Заполнить файл данными:

    security.protocol=SASL_SSL
    sasl.mechanism=GSSAPI
    sasl.kerberos.service.name=kafka
  2. Выполнить шаги по подключению к Kafka под пользователем writer из статьи Использование MIT Kerberos в Kafka:

    • Открыть терминальную сессию 1 и подключиться к одному из брокеров Kafka.

    • Создать тикет для пользователя writer.

    • Проверить тикет.

    • Экспортировать файл client.jaas как параметр JVM для данного пользователя при помощи переменной среды KAFKA_OPTS.

  3. Создать топик, указав путь к созданному файлу client_ssl.properties:

    $ /usr/lib/kafka/bin/kafka-topics.sh --create --topic test-topic1 --bootstrap-server sov-ads-test-1.ru-central1.internal:9092,sov-ads-test-2.ru-central1.internal:9092,sov-ads-test-3.ru-central1.internal:9092 --command-config /tmp/client_ssl.properties
    ПРИМЕЧАНИЕ
    Файл client.jaas изменять после установки SSL не требуется.
  4. Записать сообщение в топик:

    $ /usr/lib/kafka/bin/kafka-console-producer.sh --topic test-topic1 --bootstrap-server sov-ads-test-1.ru-central1.internal:9092,sov-ads-test-2.ru-central1.internal:9092,sov-ads-test-3.ru-central1.internal:9092 --producer.config /tmp/client_ssl.properties
  5. Выполнить шаги по подключению к Kafka под пользователем reader из статьи Использование MIT Kerberos в Kafka:

    • Открыть терминальную сессию 2 и подключиться к ней к одному из брокеров Kafka.

    • Создать тикет для пользователя reader.

    • Проверить тикет.

    • Экспортировать созданный файл client.jaas как параметр JVM для данного пользователя при помощи переменной среды KAFKA_OPTS.

  6. Считать сообщения из топика, указав путь к созданному файлу client_ssl.properties:

    $ /usr/lib/kafka/bin/kafka-console-consumer.sh --topic test-topic1 --from-beginning  --bootstrap-server sov-ads-test-1.ru-central1.internal:9092,sov-ads-test-2.ru-central1.internal:9092,sov-ads-test-3.ru-central1.internal:9092 --consumer.config /tmp/client_ssl.properties

    Убедиться, что сообщения считываются корректно.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней