Select 正确的 KafkaUser 身份验证类型?

Select proper KafkaUser authentication type?

也许我漏掉了什么,如果是这样请原谅我的无知。

这里有:

  1. 我们在 Kafka 集群中使用 TLS 身份验证侦听器(这可以更改,我们可以添加新类型的侦听器)。
  2. 当从 Java 代码连接到 Kafka 主题时,我使用为 Kafka 用户生成的 SSL 证书。

如果我决定避免使用 SSL 证书,原因有两个:

  1. 我将仅从受信任的 OpenShift 集群连接到 Kafka 主题 PODs
  2. 为了避免在producer/consumer端更新重新生成年度用户的SSL证书(因为Kafka生成的用户证书有效期为1年)

出于上述两个原因,KafkaUser 的 SCRAM-SHA-512 身份验证类型是否是更好(也是唯一?)的选择?或者 SCRAM-SHA-512 也需要 SSL 证书?

我看到的另一种方法是不进行身份验证,但我不确定如何为此类用户使用 ACL?我如何将用户正在连接的服务器信息传递给服务器。是否可以同时使用 ACL 而不是通过 SSL 证书或密码 Kafka 用户进行身份验证?

[UPD] 环境构建于 Strimzi(OpenShift 中的 Apache Kafka 集群)

使用 SCRAM-SHA-512 不需要 TLS。因此,您可以在 Kafka 自定义资源(.spec.kafka.listeners -> 设置 tls: false)中禁用 TLS 加密,启用 SCRAM-SHA-512 身份验证(同一个地方,在 authentication 节)。然后您只需使用 KafkaUser 创建用户并获取密码。

一般来说,通常总是建议使用 TLS 加密。但 SCRAM-SHA 机制不会直接通过网络发送密码,因此不加密使用它应该不会泄露密码。最后,由您决定。

此外,作为旁注 - 默认情况下,证书有效期为 1 年。您可以在 Kafka CR 中更改它。