【问题标题】:Securing Kafka and Zookeeper with Kerberos使用 Kerberos 保护 Kafka 和 Zookeeper
【发布时间】: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


【解决方案1】:

您可以从主体中删除主机并为所有代理使用相同的主机,您可以手动设置 acls(不理想),或者您也可以将这些添加到您的 zookeeper 配置中

kerberos.removeHostFromPrincipal = true
kerberos.removeRealmFromPrincipal = true

这三个选项中的任何一个都应该在这里有所帮助。

【讨论】:

  • 谢谢。我对所有用于 zookeeper 连接的代理都使用了相同的主体,它可以工作。我使用了 kerberos.removeHostFromPrincipal 但它没有改变任何东西。我应该尝试与 kerberos.removeRealmFromPrincipal 结合使用。
【解决方案2】:

kerberos.removeHostFromPrincipal、kerberos.removeRealmFromPrincipal 属性对我不起作用。 在浏览了 zookeeper 版本 3.4.14 的源代码后,我将上述属性作为 JVM 参数传递,例如

-Dzookeeper.kerberos.removeHostFromPrincipal=true
-Dzookeeper.kerberos.removeRealmFromPrincipal=true

在我的情况下,因为它是跨领域票证身份验证的情况,我添加了如下身份验证规则:

-Dzookeeper.security.auth_to_local=RULE:[2:$1](.*)

看看班级https://github.com/apache/zookeeper/blob/release-3.4.14/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/SaslServerCallbackHandler.java

现在我的主题 ACLS 看起来像这样

getAcl /kafka-cluster/config/topics/test20
'world,'anyone
: r
'sasl,'zookeeper
: cdrwa

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2017-11-20
    • 2019-02-08
    • 2019-09-27
    • 1970-01-01
    相关资源
    最近更新 更多