SSL(Secure Sockets Layer)是一種網路通訊協定,提供了一種在用戶端和伺服器之間建立安全連線的方法。啟用SSL後,DataFlow叢集中的所有資料轉送,包括生產者、消費者與Broker之間的訊息互動都會被加密,確保敏感資訊在網路傳輸過程中不被竊聽或篡改。本文為您介紹如何開啟SSL,並使用SSL串連Kafka。
前提條件
已在E-MapReduce控制台建立選擇了Kafka服務的DataFlow叢集(即Kafka叢集),詳情請參見建立DataFlow Kafka叢集。
配置SSL功能
E-MapReduce Kafka叢集提供以下兩種配置SSL的方式:
使用預設認證配置SSL:使用E-MapReduce預設建立的認證和預設配置方式快速啟用SSL功能。
自訂配置SSL:使用自訂認證和配置值啟用SSL功能。
E-MapReduce通過server.properties設定檔的kafka.ssl.config.type配置項來管理配置SSL的策略。
使用預設認證配置SSL
Kafka叢集的SSL功能預設關閉,您可以執行以下步驟快速開啟SSL功能。
進入服務的配置頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
單擊目的地組群操作列的叢集服務。
在叢集服務頁面,單擊Kafka服務地區的配置。
修改配置項。
在配置頁面,單擊server.properties頁簽。
修改kafka.ssl.config.type的參數值為DEFAULT。
儲存配置。
單擊儲存。
在彈出的對話方塊中,輸入執行原因,單擊儲存。
重啟Kafka服務。
在Kafka服務的配置頁面,選擇
。在彈出的對話方塊中,輸入執行原因,單擊確定。
在確認對話方塊中,單擊確定。
自訂配置SSL
Kafka叢集的SSL功能預設關閉,您可以通過自訂配置開啟SSL功能。
進入服務的配置頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
單擊目的地組群操作列的叢集服務。
在叢集服務頁面,單擊Kafka服務地區的配置。
修改配置項。
在配置頁面,單擊server.properties頁簽。
修改kafka.ssl.config.type的參數值為CUSTOM。
儲存配置。
單擊儲存。
在彈出的對話方塊中,輸入執行原因,單擊儲存。
修改SSL其他配置。
您需要根據業務需求,自行配置除listeners之外的SSL相關配置。例如,ssl.keystore.location,ssl.keystore.password,ssl.truststore.location,ssl.truststore.password,ssl.key.password,ssl.keystore.type和ssl.truststore.type等。
重啟Kafka服務。
在Kafka服務的配置頁面,選擇
。在彈出的對話方塊中,輸入執行原因,單擊確定。
在確認對話方塊中,單擊確定。
使用SSL串連Kafka
使用SSL串連Kafka時,需要用戶端配置參數security.protocol、ssl.truststore.password和ssl.truststore.location。
例如,在已開啟SSL的Kafka叢集中,使用Kafka內建的Producer和Consumer執行作業,操作步驟如下:
使用SSH方式串連叢集的Master節點,詳情請參見登入叢集。
建立設定檔。
執行以下命令,建立設定檔ssl.properties。
vim ssl.properties
添加以下內容至設定檔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=
上面參數的值,您可以在EMR控制台Kafka服務的配置頁面查看。如果是在Kafka叢集以外的環境執行作業,您可以將Kafka叢集中任意節點相應目錄下的truststore和keystore檔案,拷貝至運行環境進行相應配置。
執行以下命令,建立Topic。
kafka-topics.sh --partitions 10 --replication-factor 2 --bootstrap-server core-1-1:9092 --topic test --create --command-config ssl.properties
執行以下命令,使用SSL設定檔產生資料。
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節點的內網IP地址。執行以下命令,使用SSL設定檔消費資料。
export IP=<your_InnerIP> kafka-consumer-perf-test.sh --broker-list ${IP}:9092 --messages 100000000 --topic test --consumer.config ssl.properties
相關文檔
如需對串連至Kafka服務的使用者進行身分識別驗證,詳情請參見使用SASL登入認證Kafka服務。