Slavenin999
@Slavenin999
программист php/erlang/elixir/js

Как правильно настроить Kafka acl и sasl для нескольких пользователей?

Всем привет.

Пошёл 3 день конфигурации kafka...

Есть 1 брокер и zookeeper. Между собой прекрасно взаимодействуют. Есть kafka-gitops, который тоже прекрасно ходит в кластер под своим пользователем и создаёт/меняет топики/права. Есть клиент на php, который через rdkafka пытается послать сообщение в заданный топик, но получает:
%3|1690452667.087|FAIL|rdkafka#producer-1| [thrd:sasl_plaintext://10.0.200.20:9093/bootstrap]: sasl_plaintext://1.2.3.4:9092/bootstrap: SASL authentication error: Authentication failed: Invalid username or password (after 301ms in state AUTH_REQ)


При этом если поставить в настройки админского пользователя, то ошибок нет, но сообщение в топик не добавляется.

/etc/kafka/kafka_server_jaas.conf выглядит так:
KafkaServer {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin"
  password="pass"
  user_admin="pass"
  user_gitops-user="pass1"
  user_dev="pass2";
};

KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    user_admin="pass";

    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="user_dev"
    password="pass2";
};

Client {
  org.apache.zookeeper.server.auth.DigestLoginModule required
  username="admin"
  password="pass";
};


Вполне может быть, что где-то тут ошибка, но всё запускается и работает... С этим файлом я упражнялся по всякому... Это текущий вариант.

Композ файлом не буду загромождать описание.
Переменные окружения про настройки безопасности:
KAFKA_SECURITY_PROTOCOL: 'SASL_PLAINTEXT'
KAFKA_OPTS: "-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf"
KAFKA_SASL_ENABLED_MECHANISMS: PLAIN
KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
KAFKA_AUTHORIZER_CLASS_NAME: "kafka.security.authorizer.AclAuthorizer"


на клиенте ставлю:
enqueue:
    default:
        transport:
            dsn: '%env(resolve:ENQUEUE_DSN)%'
            global:
                group.id: 'dev-bp'
                metadata.broker.list: '%env(resolve:KAFKA_BROKER_LIST)%'
                sasl.mechanism: PLAIN
                security.protocol: SASL_PLAINTEXT
                sasl.username: '%env(resolve:KAFKA_BROKER_USER)%'
                sasl.password: '%env(resolve:KAFKA_BROKER_PASS)%'
            topic:
                auto.offset.reset: 'beginning'


Подскажите, пожалуйста, где я ошибся?
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 1
Slavenin999
@Slavenin999 Автор вопроса
программист php/erlang/elixir/js
В настройках надо было префикс user_ убрать....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы