非 Kerberized Kafka 代理连接到 Kerberized Zookeeper

Not Kerberized Kafka broker connection to Kerberized Zookeeper

我找不到关于这个问题的任何信息,所以如果有人能帮助我,我会很高兴。

我有一个 Kerberized 集群,其中包含 Hbase、MapReduce、HDFS、Zookeeper 等服务,...所有 kerberized 和工作。

假设我想向集群添加一些 kafka 代理,但我想要Kerberize Kafka,因为睾丸中了一枪让我感觉比 kerberized Kafka 的想法更好。

我不知道我是否遗漏了一些东西,一些参数...可能我是..但是可以告诉动物园管理员还必须接受某些节点的 PLAINTEXT 请求,或者一些特定的目录,例如示例中的kafka:

zookeeper:2181/kafka


恢复中,问题是:

如果您需要这样的配置:

[zookeeper] <----- SASL ----> [kafka] <----- non-authenticated request ---> [clients]

那么是的,这是可能的。你只需要

  1. 为将用于与 Zookeeper 通信的代理创建主体(带有密钥表)。
  2. 配置 Zookeeper ACL,为该用户设置 cdrwa 对节点 zookeeper:2181/kafka 的访问权限
  3. 将密钥表复制到代理并像这样配置 Kafka jaas 文件: ZookeeperClient { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true keyTab="/path/to/keytab" principal="user@REALM"; };

然后,在 Kafka 配置中设置 zookeeper.set.acl=true,但不要设置任何 authorizer.class.name(这将启用 Kafka 消费者和生产者的身份验证)