Если вы хотите использовать имя пользователя + пароль для аутентификации, вам нужно включить аутентификацию SASL с помощью простого механизма в вашем кластере.См. Подробные инструкции в разделе Аутентификация с использованием SASL на веб-сайте Kafka.
Обратите внимание, что вы также, вероятно, захотите включить SSL (SASL_SSL), иначе SASL Plain будет передавать учетные данные в виде открытого текста..
Несколько клиентов Python поддерживают SASL Plain, например:
Относительно авторизаций, используя авторизатор по умолчанию, kafka.security.auth.SimpleAclAuthorizer
, вы можете ограничить продюсера только тем, что он может производить только тему.Опять же, все это полностью документировано на веб-сайте Kafka в разделе Авторизация и ACL .
Например, для SASL Plain по умолчанию имя принципала - это имя пользователя, которое использовалось для подключения.Используя следующую команду, вы можете ограничить пользователя Alice
, чтобы иметь возможность создавать только тему с именем testtopic
:
bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:Alice --producer --topic testtopic