Как включить безопасность в кластере Kafka без простоев - PullRequest
1 голос
/ 26 февраля 2020

Мы производим кластер Kafka без какой-либо защиты. Мы планируем включить безопасность (SASL / OAUTHBEARER) на стороне брокера. Но, похоже, как только мы включим безопасность на стороне брокера, все незащищенные клиенты будут немедленно удалены. Для плавного перехода от небезопасного кластера к безопасному, без простоев, мы хотим, чтобы клиенты Kafka сначала включили безопасность. И как только все наши клиенты мигрируют, мы можем включить безопасность на уровне брокера. Однако я не могу найти способ, чтобы защищенные клиенты могли общаться с небезопасным брокером. Кто-нибудь делал это? Есть идеи по плавному переходу на безопасность на производстве?

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Установка следующего свойства в server.properites позволит небезопасным клиентам подключаться к порту 9097 и защищенным клиентам подключаться к порту 9096.

listeners=SASL_PLAINTEXT://:9096,PLAINTEXT://:9097

0 голосов
/ 26 февраля 2020

В Kafka 2.0 допускаются следующие комбинации протоколов:

+------------------+-------+-----------+
|                  |  SSL  |  Kerberos |
+------------------+-------+-----------+
| PLAINTEXT        |  No   |    No     |
| SSL              |  Yes  |    No     |
| SASL_PLAINTEXT   |  No   |    Yes    |
| SASL_SSL         |  Yes  |    Yes    |
+------------------+-------+-----------+

Эти комбинации применимы как для брокера к брокеру, так и для брокера клиенту, но здесь конфигурация ключа security.inter.broker.protocol, что не должно быть одинаковым для брокера к брокеру и брокера к клиенту. Это означает, что мы можем включить защиту в кластере Kafka без каких-либо простоев.


Включение Kerberos

  • Шаг 1: Отключить защиту для брокера к брокеру
security.inter.broker.protocol=PLAINTEXT
security.inter.broker.protocol=SASL_PLAINTEXT

Включение SSL

  • Шаг 1: Отключить защиту для брокера к брокеру
security.inter.broker.protocol=PLAINTEXT
security.inter.broker.protocol=SSL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...