【问题标题】:How to configure Kafka server with SASL_SSL and GSSAPI protocols如何使用 SASL_SSL 和 GSSAPI 协议配置 Kafka 服务器
【发布时间】:2023-11-23 05:44:02
【问题描述】:

我是Apache Kafka 新手,这里是what I have done so far

  1. 已下载kafka_2.12-2.1.0
  2. Zookeeper制作批处理文件以运行zookeeper服务器:

    start kafka_2.12-2.1.0.\bin\windows\zookeeper-server-start.bat kafka_2.12-2.1.0.\config\zookeeper.properties

  3. 为 Apache Kafka 服务器制作批处理文件

    start kafka_2.12-2.1.0\bin\windows\kafka-server-start.bat kafka_2.12-2.1.0\config\server.properties

  4. 使用批处理文件启动了一个生产者。

    start kafka_2.12-2.1.0.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic 3drocket-player

它运行良好,但现在我正在寻找身份验证。因为我必须实现具有特定身份验证设置的消费者(客户端要求)。就像安全协议是 SASL_SSLSSL 机制GSSAPI。 出于这个原因,我试图搜索并找到confluet documentation,但问题是如何采取每一步都太抽象了。

我正在根据我的设置寻找详细的配置步骤。如何使用 SASL SSL 和 GSSAPI 协议配置我的 kafka 服务器。最初我发现 GSSAPI/Keberos 有一个单独的服务器,我需要安装更多服务器吗?在 Confluent Kafka 中有任何内置的解决方案。

【问题讨论】:

标签: ssl apache-kafka kerberos sasl gssapi


【解决方案1】:

在 server.properties 中配置 SASL 端口

例如)

listeners=SASL_SSL://host.name:port
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=GSSAPI
sasl.enabled.mechanisms=GSSAPI
sasl.kerberos.service.name=kafka
ssl.keystore.location=/path/to/keystore.jks
ssl.keystore.password=keystore_password
ssl.truststore.location=/path/to/truststore.jks
ssl.truststore.password=truststore_password
ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1

https://kafka.apache.org/documentation/#security_configbroker https://kafka.apache.org/documentation/#security_sasl_config

客户: 运行 Kafka 客户端时,需要设置这些属性。

security.protocol=SASL_SSL
ssl.truststore.location=/path/to/truststore.jks
ssl.truststore.password=truststore_password
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka

https://kafka.apache.org/documentation/#security_configclients https://kafka.apache.org/documentation/#security_sasl_kerberos_clientconfig

然后配置JAAS配置

KafkaClient {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="path/to/kafka_client.keytab"
   storeKey=true
   useTicketCache=false
   principal="kafka-client-1@EXAMPLE.COM";
};

【讨论】:

【解决方案2】:

... SASL/GSSAPI 适用于使用 Kerberos 的组织(例如,通过使用 Active Directory)。您无需仅为 Apache Kafka® 安装新服务器。向您的 Kerberos 管理员询问集群中每个 Kafka 代理的主体以及将使用 Kerberos 身份验证(通过客户端和工具)访问 Kafka 的每个操作系统用户。 https://docs.confluent.io/current/kafka/authentication_sasl/authentication_sasl_gssapi.html#kafka-sasl-auth-gssapi ....

【讨论】:

  • 点评来源: 嗨,虽然链接是分享知识的好方法,但如果它们将来被破坏,它们将不会真正回答问题。将回答问题的链接的基本内容添加到您的答案中。如果内容太复杂或太大而无法在此处放置,请描述所提出解决方案的总体思路。请记住始终保留对原始解决方案网站的链接引用。见:How do I write a good answer?
最近更新 更多