溫馨提示×

Kafka安全認證在Linux上如何配置

小樊
45
2025-07-08 05:12:08
欄目: 智能運維

在Linux上配置Kafka安全認證主要包括啟用SASL認證和配置SSL/TLS加密。以下是詳細的步驟:

1. 啟用SASL認證

生成JAAS配置文件

  • /etc/kafka目錄下創建kafka_server_jaas.conf文件,指定Kafka服務器和客戶端的身份驗證信息。例如:

    KafkaServer {
        org.apache.kafka.common.security.scram.ScramLoginModule required
        username="admin"
        password="admin-secret";
    };
    
    KafkaClient {
        org.apache.kafka.common.security.scram.ScramLoginModule required
        username="alice"
        password="alice-secret";
    };
    

修改Kafka配置文件

  • 編輯Kafka的配置文件server.properties,啟用SASL認證并指定JAAS配置文件的位置:

    security.inter.broker.protocol = SASL_PLAINTEXT
    sasl.mechanism.inter.broker.protocol = PLAINTEXT
    sasl.login.class.name = org.apache.kafka.common.security.plain.PlainLoginModule
    sasl.enabled.mechanisms = SCRAM-SHA-256
    sasl.login.config = /etc/kafka/kafka_server_jaas.conf
    

2. 配置SSL/TLS加密

生成密鑰庫和信任庫

  • 使用Java的keytool工具生成密鑰庫(keystore)和信任庫(truststore):

    keytool -genkey -alias localhost -keyalg RSA -keystore kafka.server.keystore.jks -validity 3650
    keytool -export -alias localhost -file kafka.server.certificate.jks -keystore kafka.server.keystore.jkskeytool -import -alias localhost -file kafka.server.certificate.jks -keystore kafka.client.truststore.jks
    
  • 修改Kafka配置文件server.properties,指定密鑰庫和信任庫的位置以及密碼:

    ssl.keystore.location = /path/to/kafka.server.keystore.jks
    ssl.keystore.password = your_keystore_password
    ssl.key.password = your_key_password
    ssl.truststore.location = /path/to/kafka.client.truststore.jks
    ssl.truststore.password = your_truststore_password
    ssl.enabled.protocols = TLSv1.2
    ssl.client.auth = required
    

修改監聽器以使用SSL/TLS協議

  • server.properties中配置監聽器以使用SSL/TLS協議:

    listeners = SSL://:9093
    advertised.listeners = SSL://your_kafka_broker_ip:9093
    

3. 啟動Kafka服務

  • 使用配置好的server.properties文件啟動Kafka服務:

    export KAFKA_OPTS='-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf'
    bin/kafka-server-start.sh config/server.properties
    

4. 客戶端配置

  • 在使用客戶端工具(如kafka-topics.sh、kafka-configs.sh等)時,通過--command-config參數指定JAAS配置屬性文件。

    export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf"
    bin/kafka-console-producer.sh --broker-list localhost:9093 --topic test --producer.config client-ssl.properties 
    bin/kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic test --consumer.config client-ssl.properties
    

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女