Zookeeper和Kafka

nszi6y05  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(450)

我已经用sasl scram security建立了一个kafka集群,它工作正常。
根据文档,我使用了 kafka-configs.sh 创建用户名和密码并授予该用户对主题的访问权限。
这也很有效。
然而 kafka-configs.sh 命令本身不需要任何类型的身份验证,因此我想到,任何人都可以运行该命令,在kafka中创建自己的用户,并授予自己的权限。
也许我需要在zookeeper上启用sasl安全?但我找不到任何关于如何做到这一点的一致或有效的文件。将属性添加到 zookeeper.config 就像 requireclientauthscheme=sasl 似乎什么都没做。或者至少它不会停止 kafka-configs.sh 在zookeeper中创建新用户而无需任何身份验证。
我是不是在走一条可行的路?或者我需要备份并做一些不同的事情?
作为参考,我使用的是kafka1.0.0和zookeper3.4.11。但如果其他版本的效果更好的话,我会灵活处理。
感谢您的帮助!:)
谢谢!

63lcw9qa

63lcw9qa1#

我终于找到了解决办法。:)
基本上,你需要使用Zookeeper的 setAcl 锁定节点的命令 /config/users . 关于如何使用sasl对zookeeper acl进行身份验证的文档充其量也很差。正常的使用机制 addauth 对sasl进行身份验证不起作用,因为sasl必须在启动时进行,而不是像zookeeper期望的那样晚些时候。
的语法 setAcl 这很棘手,如果你搞错了,你可以永远把自己关在外面。所以要小心。但zookeeper确实有办法在启动时注入超级用户,让自己摆脱这种情况。
所以为了你的 kafka-configs.sh ,必须指定 -Djava.security.auth.login.config=[some file] 参数将客户端凭据传递给zookeeper。服务器凭据同样位于zookeeper服务器上的jaas文件中。
如果有人需要我的解决方案,我可以提供更多的技术细节,但不知怎的,我怀疑我是少数几个试图用sasl\u scram来确保Kafka和Zookeeper安全的人之一
不过,我确实希望sasl\u scram能流行起来,因为kerberos是一种三头兽式的技术,除非我必须使用它,否则我宁愿不使用它p

相关问题