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

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

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

  1. Проверьте, что после запуска SSL в настройках сервиса Kafka в группе Main изменился параметр listeners с SASL_PLAINTEXT://:9092 на SASL_SSL://:9092.

    Настройки сервиса Kafka
    Настройки сервиса Kafka
  2. Проверьте изменение файла server.properties на каждом сервере Kafka.

    Открыть файл server.properties:

    $ sudo vim /usr/lib/kafka/config/server.properties
  3. Убедитесь, что для каждого брокера 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 чтобы сообщить о ней