Защита канала по протоколу SSL в Kafka
ПРИМЕЧАНИЕ
Включение защиты канала про протоколу SSL осуществляется в соответствии со статьей Защита канала по протоколу SSL.
|
Проверка настроек SSL
-
Проверьте, что после запуска SSL в настройках сервиса Kafka в группе Main изменился параметр listeners с
SASL_PLAINTEXT://:9092
наSASL_SSL://:9092
.Настройки сервиса Kafka -
Проверьте изменение файла server.properties на каждом сервере Kafka.
Открыть файл server.properties:
$ sudo vim /usr/lib/kafka/config/server.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
-
Для создания файла конфигурации .properties для пользователя с учетом SSL выполнить команду:
$ sudo vim /tmp/client_ssl.properties
Заполнить файл данными:
security.protocol=SASL_SSL sasl.mechanism=GSSAPI sasl.kerberos.service.name=kafka
-
Выполнить шаги по подключению к Kafka под пользователем
writer
из статьи Использование MIT Kerberos в Kafka:-
Открыть терминальную сессию 1 и подключиться к одному из брокеров Kafka.
-
Создать тикет для пользователя
writer
. -
Проверить тикет.
-
Экспортировать файл client.jaas как параметр JVM для данного пользователя при помощи переменной среды
KAFKA_OPTS
.
-
-
Создать топик, указав путь к созданному файлу 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 не требуется. -
Записать сообщение в топик:
$ /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
-
Выполнить шаги по подключению к Kafka под пользователем
reader
из статьи Использование MIT Kerberos в Kafka:-
Открыть терминальную сессию 2 и подключиться к ней к одному из брокеров Kafka.
-
Создать тикет для пользователя
reader
. -
Проверить тикет.
-
Экспортировать созданный файл client.jaas как параметр JVM для данного пользователя при помощи переменной среды
KAFKA_OPTS
.
-
-
Считать сообщения из топика, указав путь к созданному файлу 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
Убедиться, что сообщения считываются корректно.