0

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

这里我们有:

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

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

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

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

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

[UPD]环境建立在 Strimzi(OpenShift 中的 Apache Kafka 集群)之上

4

1 回答 1

1

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

一般来说,通常总是推荐使用 TLS 加密。但 SCRAM-SHA 机制不会直接通过网络发送密码,因此在不加密的情况下使用它不会泄露密码。最后,由您决定。

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

于 2021-04-28T14:24:39.263 回答