[英]Zookeeper and Kafka with SASL security
我已经设置了具有SASL SCRAM安全性的Kafka集群,并且工作正常。
根据文档,我使用命令kafka-configs.sh
创建用户名和密码,并授予该用户访问主题的权限。
那也很好。
但是, kafka-configs.sh
命令本身不需要任何身份验证,因此我想到任何人都可以运行该命令并在Kafka中创建自己的用户并授予自己的权限。
也许我需要在Zookeeper上启用SASL安全性? 但是我找不到有关该操作的任何一致或有效的文档。 像requireclientauthscheme=sasl
这样将属性添加到zookeeper.config
似乎没有任何作用。 或者至少它不会阻止kafka-configs.sh
在没有任何身份验证的情况下在zookeeper中创建新用户。
我什至在这里走一条可行的道路吗? 还是我需要备份并执行其他操作?
作为参考,我使用的是Kafka 1.0.0和Zookeper 3.4.11。 但是如果其他版本的效果更好,我会在版本上保持灵活性。
任何帮助表示赞赏! :)
谢谢!
我终于解决了这个问题。 :)
基本上,您需要使用Zookeeper的setAcl
命令来锁定节点/config/users
。 关于如何使用SASL对Zookeeper ACL进行身份验证的文档充其量是充斥的。 使用addauth
进行身份验证的常规Zookeeper机制addauth
用于SASL,因为SASL必须在启动时发生,而不是Zookeeper期望的那样。
setAcl
的语法很棘手,如果弄错了,可以将自己永远锁定。 所以要小心 但是Zookeeper确实有一种在启动时注入超级用户的方法,以使您摆脱这种情况。
因此,对于kafka-configs.sh
,您必须指定-Djava.security.auth.login.config=[some file]
参数,以将客户端凭据传递给Zookeeper。 服务器凭据同样在Zookeeper服务器上的JAAS文件中。
如果有人需要,我可以在其解决方案上提供其他技术详细信息,但是以某种方式我怀疑我是尝试使用SASL_SCRAM认真保护Kafka和Zookeeper的少数人之一。 :)
我确实希望SASL_SCRAM能够继续发展下去,因为Kerberos是三头野兽,除非我必须这样做,否则我不希望使用它。 :P
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.