我们想通过使用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配置中?
答案 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
机制。