Как запустить kafka Producer.sh и consumer.sh для конкретного пользователя для проверки ACL?

./bin/kafka-console-producer.sh --broker-list 10.162.0.6:32294 --topic my-topic
./bin/kafka-console-consumer.sh --bootstrap-server 10.162.0.6:32294 --topic my-topic --from-beginning 

Я новичок в кафке. Моя кафка работает на операторе strimzi kubernetes, развернутом с Helm.

Я создал тему под названием my-topic и выполняю две вышеупомянутые команды на двух отдельных терминалах. Какие бы сообщения я ни набирал для производителя, я вижу их в ответ на указанную выше команду потребителя!

Теперь я создал 2 пользователей, usera и userb с ACL, usera ACL полностью заблокирован для доступа к теме, другой пользователь userb имеет полный доступ к ACL для доступа к Topic: my-topic.

Чтобы проверить этот ACL, т.е. если я запускаю производителя и потребителя с помощью usera, тогда должно отображаться отказано в разрешении, и если я запускаю производителя и потребителя с другим пользователем, то должен иметь доступ к теме.

Но хотите знать, как выполнять указанные выше команды для пользователя?

или подскажите, пожалуйста, как проверить сценарий.

1 ответ

Это будет зависеть от типа аутентификации, который вы установили в своем развертывании Kafka (с использованием аутентификации клиента TLS или SCRAM-SHA), и я предполагаю, что вы используете User Operator для создания пользователей (ресурс KafkaUser). В первом случае вам нужно извлечь хранилище ключей и соответствующий пароль из секрета, который пользовательский оператор создает при создании нового KafkaUser; вы можете использовать это хранилище ключей для настройки файла свойств (с ssl.keystore.location и ssl.keystore.password), который вы можете передать производителю с помощью параметра --producer.config или потребителю с помощью параметра --consumer.config. Конечно, если аутентификация клиента TLS включена, это означает, что у вас есть TLS, поэтому вам нужно извлечь хранилище доверенных сертификатов и соответствующий пароль из секрета, содержащего сертификат CA кластера для вашего кластера (подробнее здесь https://strimzi.io/docs/master/#configuring-external-clients-to-trust-cluster-ca-str). Затем вы можете использовать его для настройки ssl.truststore.location и ssl.truststore.password в одном файле свойств. Если вы используете SCRAM-SHA, вам необходимо извлечь имя пользователя и пароль из секрета, связанного с KafkaUser, и настроить свойство JAAS в указанном выше файле свойств.

Другие вопросы по тегам