使用SSL加密Kafka鏈接
SSL(Secure Sockets Layer)是一種網(wǎng)絡(luò)協(xié)議,提供了一種在客戶端和服務(wù)器之間建立安全連接的方法。啟用SSL后,DataFlow集群中的所有數(shù)據(jù)傳輸,包括生產(chǎn)者、消費者與Broker之間的消息交互都會被加密,確保敏感信息在網(wǎng)絡(luò)傳輸過程中不被竊聽或篡改。本文為您介紹如何開啟SSL,并使用SSL連接Kafka。
前提條件
已在E-MapReduce控制臺創(chuàng)建選擇了Kafka服務(wù)的DataFlow集群(即Kafka集群),詳情請參見創(chuàng)建DataFlow Kafka集群。
配置SSL功能
E-MapReduce Kafka集群提供以下兩種配置SSL的方式:
使用默認證書配置SSL:使用E-MapReduce默認創(chuàng)建的證書和默認配置方式快速啟用SSL功能。
自定義配置SSL:使用自定義證書和配置值啟用SSL功能。
E-MapReduce通過server.properties配置文件的kafka.ssl.config.type配置項來管理配置SSL的策略。
使用默認證書配置SSL
Kafka集群的SSL功能默認關(guān)閉,您可以執(zhí)行以下步驟快速開啟SSL功能。
進入服務(wù)的配置頁面。
在頂部菜單欄處,根據(jù)實際情況選擇地域和資源組。
單擊目標集群操作列的集群服務(wù)。
在集群服務(wù)頁面,單擊Kafka服務(wù)區(qū)域的配置。
修改配置項。
在配置頁面,單擊server.properties頁簽。
修改kafka.ssl.config.type的參數(shù)值為DEFAULT。
保存配置。
單擊保存。
在彈出的對話框中,輸入執(zhí)行原因,單擊保存。
重啟Kafka服務(wù)。
在Kafka服務(wù)的配置頁面,選擇
。在彈出的對話框中,輸入執(zhí)行原因,單擊確定。
在確認對話框中,單擊確定。
自定義配置SSL
Kafka集群的SSL功能默認關(guān)閉,您可以通過自定義配置開啟SSL功能。
進入服務(wù)的配置頁面。
在頂部菜單欄處,根據(jù)實際情況選擇地域和資源組。
單擊目標集群操作列的集群服務(wù)。
在集群服務(wù)頁面,單擊Kafka服務(wù)區(qū)域的配置。
修改配置項。
在配置頁面,單擊server.properties頁簽。
修改kafka.ssl.config.type的參數(shù)值為CUSTOM。
保存配置。
單擊保存。
在彈出的對話框中,輸入執(zhí)行原因,單擊保存。
修改SSL其他配置。
您需要根據(jù)業(yè)務(wù)需求,自行配置除listeners之外的SSL相關(guān)配置。例如,ssl.keystore.location,ssl.keystore.password,ssl.truststore.location,ssl.truststore.password,ssl.key.password,ssl.keystore.type和ssl.truststore.type等。
重啟Kafka服務(wù)。
在Kafka服務(wù)的配置頁面,選擇
。在彈出的對話框中,輸入執(zhí)行原因,單擊確定。
在確認對話框中,單擊確定。
使用SSL連接Kafka
使用SSL連接Kafka時,需要客戶端配置參數(shù)security.protocol、ssl.truststore.password和ssl.truststore.location。
例如,在已開啟SSL的Kafka集群中,使用Kafka自帶的Producer和Consumer執(zhí)行作業(yè),操作步驟如下:
使用SSH方式連接集群的Master節(jié)點,詳情請參見登錄集群。
創(chuàng)建配置文件。
執(zhí)行以下命令,創(chuàng)建配置文件ssl.properties。
vim ssl.properties
添加以下內(nèi)容至配置文件ssl.properties中。
security.protocol=SSL ssl.truststore.location=/var/taihao-security/ssl/ssl/truststore ssl.truststore.password=${password} ssl.keystore.location=/var/taihao-security/ssl/ssl/keystore ssl.keystore.password=${password} ssl.endpoint.identification.algorithm=
上面參數(shù)的值,您可以在EMR控制臺Kafka服務(wù)的配置頁面查看。如果是在Kafka集群以外的環(huán)境執(zhí)行作業(yè),您可以將Kafka集群中任意節(jié)點相應(yīng)目錄下的truststore和keystore文件,拷貝至運行環(huán)境進行相應(yīng)配置。
執(zhí)行以下命令,創(chuàng)建Topic。
kafka-topics.sh --partitions 10 --replication-factor 2 --bootstrap-server core-1-1:9092 --topic test --create --command-config ssl.properties
執(zhí)行以下命令,使用SSL配置文件產(chǎn)生數(shù)據(jù)。
export IP=<your_InnerIP> kafka-producer-perf-test.sh --topic test --num-records 123456 --throughput 10000 --record-size 1024 --producer-props bootstrap.servers=${IP}:9092 --producer.config ssl.properties
說明本文代碼示例中的
your_InnerIP
為master-1-1節(jié)點的內(nèi)網(wǎng)IP地址。執(zhí)行以下命令,使用SSL配置文件消費數(shù)據(jù)。
export IP=<your_InnerIP> kafka-consumer-perf-test.sh --broker-list ${IP}:9092 --messages 100000000 --topic test --consumer.config ssl.properties
相關(guān)文檔
如需對連接至Kafka服務(wù)的用戶進行身份驗證,詳情請參見使用SASL登錄認證Kafka服務(wù)。