繁体   English   中英

Zookeeper和Kafka具有SASL安全性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM