在Ubuntu上對Kafka進行安全配置,主要涉及開啟認證機制和配置SSL證書。以下是詳細步驟:
server.properties
文件:listeners
參數以啟用SASL_PLAINTEXT監聽器。security.inter.broker.protocol
和sasl.mechanism.inter.broker.protocol
為SASL_PLAINTEXT
。sasl.enabled.mechanisms
為SCRAM-SHA-512
(或其他支持的認證機制)。/opt/kafka_2.12-2.4.0/config/
目錄下創建kafka_server_jaas.conf
文件,指定用戶名和密碼信息。KafkaServer {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="root"
password="Root@123";
};
kafka-server-start.sh
中添加JVM參數,指定JAAS配置文件路徑。EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'}
export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka_2.12-2.4.0/config/kafka_server_jaas.conf"
kafka-configs.sh
添加認證配置:./bin/kafka-configs.sh --zookeeper 172.16.1.102:2181 \
--alter \
--add-config "SCRAM-SHA-256=[password=Root@123],SCRAM-SHA-512=[password=Root@123]" \
--entity-type users \
--entity-name root
kafka-topics.sh
、kafka-configs.sh
等)時,通過--command-config
參數指定JAAS配置屬性文件。mkdir -p $KAFKA_HOME/config/certificates
keytool
生成密鑰庫(keystore)和證書簽名請求(CSR):keytool -genkey -alias mykey -keyalg RSA -keystore $KAFKA_HOME/config/certificates/keystore.jks -validity 3650
server.properties
文件,添加或修改以下配置:listeners=SASL_SSL://:9093
security.inter.broker.protocol=SASL_SSL
ssl.keystore.location=/path/to/keystore.jks
ssl.keystore.password=your_keystore_password
ssl.key.password=your_key_password
ssl.enabled.protocols=TLSv1.2
ssl.client.auth=required
server.properties
文件啟動Kafka服務。通過以上步驟,您可以在Ubuntu上為Kafka配置基本的安全措施,包括認證和SSL加密,以保護數據傳輸的安全性。