Настройка Kafka SASL: возможно ли включить его только для клиентов - PullRequest
0 голосов
/ 30 января 2019

Я хочу включить аутентификацию SASL только для клиента с брокером связи, а не для

  • Брокер с брокером
  • Брокер с Zookeeper

Возможно ли это сделать?Если да, то как я могу этого достичь.

Я также перешел по различным ссылкам и официальному документу по Кафке, но безуспешно, чтобы получить ясное представление об этом.

Любая помощь будет принята!

1 Ответ

0 голосов
/ 30 января 2019

Да, это возможно.

Требуется несколько шагов, и я боюсь, я сомневаюсь, что могу быть более ясным, чем официальные документы Kafka о настройке SASL .Я бы порекомендовал еще раз взглянуть на него, и если есть раздел, который вы не уверены, спросите об этом явно.

В любом случае, я дам вам несколько советов по SASL PLAIN (вероятно, самый простой в настройке)

  • На стороне брокера, следуя этим документам :

    • Создайте файл JAAS с разделом KafkaServer:

      KafkaServer {
          org.apache.kafka.common.security.plain.PlainLoginModule required
          username="admin"
          password="admin-secret"
          user_admin="admin-secret"
          user_alice="alice-secret";
      };
      
    • Задайте свойство JVM java.security.auth.login.config, чтобы файл JAAS был выбран

    • Обновление server.properties для включения настроек SASL.Например:

      security.protocol=SASL_PLAINTEXT
      sasl.mechanism=PLAIN
      

      Я рекомендую начать без SSL, но имейте в виду, что если вы в конечном итоге используете SASL PLAIN, вы должны включить SSL, иначе весь трафик, включая аутентификацию, будет в виде открытого текста!

  • На стороне клиента, следуя этим документам :

    • Обновите свойства клиента, включив в них:

      sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
        username="alice" password="alice-secret";
      security.protocol=SASL_SSL
      sasl.mechanism=PLAIN
      

Очевидно, что в работе не следует полагаться на жестко закодированных пользователей в файле JAAS брокера.В Kafka docs объясняется, как вместо этого правильно предоставить реализацию, предоставляющую идентификаторы пользователей.

...