Kafka动态添加SASL用户而无需重启集群

时间:2019-01-11 13:25:04

标签: apache-kafka sasl

我们想通过使用SASL向我们的kafka集群添加身份验证。正如我们所看到的,我们希望能够频繁添加用户,而我们正在寻找一种无需执行滚动重启的方法。

我们尝试过的事情:

使用“动态代理配置”界面,为所有代理重新配置listener.name.sasl_plaintext.plain.sasl.jaas.config

卡夫卡经纪人了解动物园管理员的变化 [2019-01-11 11:08:23,403] INFO Processing override for entityPath: brokers/1 with config: Map(listener.name.sasl_plaintext.plain.sasl.jaas.config -> encryptedPassword:XXX,keyLength:128,cipherAlgorithm:AES/CBC/PKCS5Padding,initializationVector:YYY,keyFactoryAlgorithm:PBKDF2WithHmacSHA512,salt:ZZZ,iterations:4096,passwordLength:270) (kafka.server.DynamicConfigManager)

但是,新用户只有在重新启动代理后才能连接。

是否可以在不重新启动Kafka集群的情况下将新用户添加到SASL JAAS配置中?

1 个答案:

答案 0 :(得分:0)

如果您在plain中使用sasl_plaintext机制, 基于this answer,您将无法在正在运行的群集中添加新用户。

相反,您可以切换到SCRAM机制,然后,您可以使用以下命令在运行集群中创建用户:

$ > bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[iterations=8192,password=alice-secret],SCRAM-SHA-512=[password=alice-secret]' --entity-type users --entity-name alice

但是,您仍然需要保留JAAS配置文件,但是在启动服务器时只需传递一次即可。

这里有useful link in Kafka document关于使用SCRAM机制。

相关问题