0

我为 Kafka 部署了 Strimzi 运算符并启用了 TLS/ACL,现在我被卡住了!如何在创建的 9093 个传递用户上运行 producer.sh/consumer.sh?

以下是在端口 9092 上禁用 ACL 的命令:

kubectl -n myproject run kafka-producer -ti --image=strimzi/kafka:0.14.0-kafka-2.3.0 --rm=true --restart=Never -- bin/kafka-console-producer.sh --broker-list my-cluster-kafka-bootstrap:9092

但是,如果我在上述命令中启用 ACL、TLS 并使用 9093,那么我该如何传递 Kafka 用户详细信息进行身份验证?

@Jakub @ppatierno 将很高兴收到您的帮助。

非常感谢, 苏迪尔

4

3 回答 3

1

您可以通过名为 kafka-acls.sh 的 CLI 脚本进行设置

您可以从这里找到更多详细信息: https ://kafka.apache.org/documentation/#security_authz

-- 附加 抱歉,我没有正确阅读您的问题。我不确定它是否与 Kubernetes 命令一起使用。

于 2020-04-15T17:22:29.140 回答
0

您是否使用 TLS 进行加密或身份验证?我需要查看您的 Kafka 集群部署文件。如果您使用 SCRAM-SHA-512 和 TLS 作为加密,那么您需要将以下--producer.config /tmp/producer.properties添加到您的命令中:

kubectl -n myproject run kafka-producer -ti --image=strimzi/kafka:0.14.0-kafka-2.3.0 --rm=true --restart=Never -- bin/kafka-console-producer.sh --broker-list my-cluster-kafka-bootstrap:9093 --producer.config /tmp/producer.properties 

在 pod 内创建 producer.properties

  cat /tmp/producer.properties <<EOF
    security.protocol=SASL_SSL
    sasl.mechanism=SCRAM-SHA-512
    sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username=admin password=UGzYA2hddMqz;
    ssl.truststore.location=/tmp/truststore.jks
    ssl.truststore.password=truststorepassword
    EOF

并且正在使用以下方法检索密码:

kubectl get secret admin -o jsonpath='{.data.password}' | base64 -d
于 2020-05-25T07:57:14.930 回答
0

我见过的一种情况如下。

1)我创建了 2 个新用户 K1 和 K2,其中一个主题为 T1。2) 现在它们之间的关系是:::::K1->T1(Sending) 和 K2->T1(receiving) 3) 所以当我启动 console-producer.sh 和 console-consumer.sh 来传输消息时,我注意到 User:ANONYMOUS is Denied for Describe 错误。

我可以通过使用 kafka-acls.sh 脚本将 user:ANONYMOUS 添加到主题 T1 来解决此问题。

我遇到的一些问题是::: 1) 当我已经拥有 K1 和 K2 用户证书和用于用户身份验证的密钥文件时,为什么期望 ANONYMOUS 是强制性的?
2)我们是否需要为将来创建的任何主题添加此用户,或者 .yaml 中是否有可以用来自动应用的配置参数?

于 2020-04-21T13:05:13.500 回答