选择正确的 KafkaUser 身份验证类型?

时间:2021-04-27 21:04:03

标签: apache-kafka strimzi apache-kafka-security

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

这是我们所拥有的:

  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 集群)上

1 个答案:

答案 0 :(得分:1)

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

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

另外,作为旁注 - 证书默认为 1 年。您可以在 KafkaUser CR 中更改它。

相关问题