如何在不停机的情况下在Kafka群集中启用安全性

时间:2020-02-25 22:28:36

标签: security ssl apache-kafka kerberos apache-kafka-security

我们在生产中的Kafka集群没有任何安全性。我们计划在经纪人方面启用安全性(SASL / OAUTHBEARER)。但是看起来一旦我们打开经纪人端安全性,所有不安全的客户端将立即被丢弃。 为了从不安全的群集平稳过渡到安全的群集,而又不造成任何停机,我们希望Kafka客户端首先启用安全性。一旦所有客户迁移完毕,我们就可以在经纪人级别启用安全性。 但是,我找不到安全的客户可以与不安全的经纪人交谈的方法。有人做过吗? 关于平稳过渡到生产中的安全性有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在Kafka 2.0中,允许以下协议组​​合:

+------------------+-------+-----------+
|                  |  SSL  |  Kerberos |
+------------------+-------+-----------+
| PLAINTEXT        |  No   |    No     |
| SSL              |  Yes  |    No     |
| SASL_PLAINTEXT   |  No   |    Yes    |
| SASL_SSL         |  Yes  |    Yes    |
+------------------+-------+-----------+

这些组合同时适用于经纪人对经纪人和经纪人对客户,但是此处的关键配置是security.inter.broker.protocol,对于经纪人对经纪人和经纪人对经纪人来说,这些配置不必相同客户。这意味着我们可以在不停机的情况下在Kafka群集中启用安全性。


启用Kerberos

  • 步骤1:禁用经纪人对经纪人的安全性
security.inter.broker.protocol=PLAINTEXT
security.inter.broker.protocol=SASL_PLAINTEXT

启用SSL

  • 步骤1:禁用经纪人对经纪人的安全性
security.inter.broker.protocol=PLAINTEXT
security.inter.broker.protocol=SSL

答案 1 :(得分:0)

在server.properites中设置以下属性将允许不安全的客户端连接到端口9097,并允许安全客户端连接到端口9096。

listeners=SASL_PLAINTEXT://:9096,PLAINTEXT://:9097