当前位置: 首页 > 知识库问答 >
问题:

动物园管理员和Kafka有SASL安保

宗政招
2023-03-14

我已经设置了一个带有SASL SCRAM安全性的Kafka集群,它运行良好。

根据文档,我使用了命令< code>kafka-configs.sh来创建用户名和密码,并授予该用户对主题的访问权限。

这也很棒。

但是,kafka-configs.sh 命令本身不需要任何类型的身份验证,因此在我看来,任何人都可以运行该命令并在Kafka中创建自己的用户并授予自己的权限。

也许我需要在Zookeeper上启用SASL安全性?但我找不到任何关于如何做到这一点的一致或有效的文档。正在向动物园管理员添加属性。像requireclientauthscheme=sasl这样的配置似乎什么也做不了。或者至少它没有停止kafka-configs。sh在没有任何身份验证的情况下在zookeeper中创建新用户。

我在这里走的是一条可行的道路吗?还是我需要备份并做一些不同的事情?

作为参考,我使用的是Kafka 1.0.0和Zookeper 3.4.11。但如果其他版本更好,我在版本上会更灵活。

感谢任何帮助!:)

谢谢!

共有1个答案

唐宇定
2023-03-14

我终于破解了一个解决方案。:)

基本上,您需要使用Zookeeper的onsetAcl命令来锁定节点/config/users。关于如何使用SASL验证Zookeeper ACL的文档最多也不多。使用addauth进行身份验证的普通Zookeeper机制在SASL中不起作用,因为SASL必须在启动时发生,而不是像Zookeever预期的那样晚。

setAcl的语法很棘手,如果你弄错了,你可以永远把自己锁在外面。所以要小心。但是Zookeeper确实有办法在创业公司注入超级用户,让自己摆脱这样的情况。

所以,对于您的kafka configs。sh,则必须指定-Djava.security.auth.login。config=[some file]参数将客户端凭据传递给Zookeeper。服务器凭证同样位于Zookeeper服务器上的JAAS文件中。

如果有人需要,我可以提供有关我的解决方案的其他技术细节,但不知何故,我怀疑我是少数几个试图使用SASL_SCRAM来认真保护Kafka和Zookeeper的人之一。:)

尽管如此,我还是希望SASL_SCRAM能够流行起来,因为Kerberos是一种三头怪兽式的技术,除非万不得已,否则我不会使用它。:P

 类似资料:
  • 在Zookeeper和代理身份验证上启用SASL时,我面临以下错误。 以下配置在JAAS文件中给出,该文件作为KAFKA_OPTS传递,将其作为JVM参数:- Kafka经纪人的服务器。属性设置了以下额外字段:- Zookeeper属性如下所示:

  • 假设我有 3 台 Kafka 服务器。服务器 1 zoopkeeper1 服务器 2 zoopkeeper2 服务器 3 zoopkeeper3 在集群配置中,zoopkeepers 会发生什么?它们是为每个服务器单独维护的,还是会在群集配置中同步其数据?

  • 分布式 Apache HBase 安装依赖于正在运行的 ZooKeeper 集群。所有参与节点和客户端都需要能够访问正在运行的 ZooKeeper 集合。 Apache HBase 默认为您管理 ZooKeeper“集群”。它将启动和停止 ZooKeeper 集合作为 HBase 启动/停止过程的一部分。您还可以独立于 HBase 管理 ZooKeeper 集合,只需将 HBase 指向它应该使用

  • 如果我部署war,我将得到以下异常: 原因:org.apache.camel.resolveEndpointFailedException:无法解析endpoint:kafka://localhost:9092?serializerClass=kafka.serializer.stringencoder&topic=checking&zookeePerhost=localhost&zookeePe

  • 我正在尝试安装Kafka Kafka和Zookeeper正在运行Apache Kafka tarball(v 0 . 0 . 9 ),在Docker映像中。 尝试使用提供的脚本消费/生产。并尝试使用自己的java应用程序进行生产。如果Kafka一切正常 以下是我在尝试生成时遇到的错误: Kafka属性测试 首先: 第二: 第三: 上一个: 这是我的“/etc/hosts” 我遵循了入门指南,如果我

  • 我正在为Storm开发代码,这是开发人员的一个示例。我的问题是,当您从IDE Eclipse运行此代码时,不会建立Storm和ZooKeer之间的连接。ZooKeer在2181中运行,也设置在storm.yaml. 我的例外是: 有什么想法或程序要执行吗?是否从配置代码中传递?和我一样?