【发布时间】:2018-11-22 04:37:23
【问题描述】:
我正在尝试在 zookeeper 和 kafka 之间设置 kerberos 标识。
我已按照此处提供的配置步骤进行操作:https://docs.confluent.io/4.1.1/kafka/authentication_sasl_gssapi.html#sasl-gssapi-broker。
kafka 代理成功连接到 zookeeper ensemble,并且代理正在 znode 上设置 ACL。
在 Zookeeper 中,我可以看到 znodes /brokers/ids,但 ACL 设置如下:
'world,'anyone
: r
'sasl,'kafka/kafka-broker-01.c.aesthetic-way-193809.internal@MYREALM.COM
: cdrwa
第一个代理创建 znode,放置它的 ACL 并使其对所有想要添加其 id 的节点都不可修改。
文档说我们应该为所有代理使用相同的主体,但文档示例与此建议不符:
// ZooKeeper client authentication
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/kafka_server.keytab"
principal="kafka/kafka1.hostname.com@EXAMPLE.COM";
};
我应该创建一个像 kafka_zk_cli@MYREALM.COM 这样的主体,并在每个代理上的 JAAS 文件的客户端部分使用它吗?如果是,我可以在每个代理上共享此用户的密钥表吗?
感谢您的帮助。
【问题讨论】:
-
这个参考有帮助吗? docs.confluent.io/current/tutorials/…
-
感谢文档,但它谈到了普通身份验证。我需要用 Kerberos 设置它。我设法通过在 JAAS 配置的 Client 部分中为所有 kafka 代理使用相同的主体来使其工作。看来这个doc不完全正确。
标签: apache-kafka apache-zookeeper kerberos