全部產品
Search
文件中心

E-MapReduce:使用SSL加密Kafka連結

更新時間:Jul 01, 2024

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功能。

  1. 進入服務的配置頁面。

    1. 登入E-MapReduce控制台

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. 單擊目的地組群操作列的叢集服務

    4. 叢集服務頁面,單擊Kafka服務地區的配置

  2. 修改配置項。

    1. 配置頁面,單擊server.properties頁簽。

    2. 修改kafka.ssl.config.type的參數值為DEFAULT

      修改參數

  3. 儲存配置。

    1. 單擊儲存

    2. 在彈出的對話方塊中,輸入執行原因,單擊儲存

  4. 重啟Kafka服務。

    1. 在Kafka服務的配置頁面,選擇更多操作 > 重啟

    2. 在彈出的對話方塊中,輸入執行原因,單擊確定

    3. 確認對話方塊中,單擊確定

自訂配置SSL

說明

Kafka叢集的SSL功能預設關閉,您可以通過自訂配置開啟SSL功能。

  1. 進入服務的配置頁面。

    1. 登入E-MapReduce控制台

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. 單擊目的地組群操作列的叢集服務

    4. 叢集服務頁面,單擊Kafka服務地區的配置

  2. 修改配置項。

    1. 配置頁面,單擊server.properties頁簽。

    2. 修改kafka.ssl.config.type的參數值為CUSTOM

  3. 儲存配置。

    1. 單擊儲存

    2. 在彈出的對話方塊中,輸入執行原因,單擊儲存

  4. 修改SSL其他配置。

    您需要根據業務需求,自行配置除listeners之外的SSL相關配置。例如,ssl.keystore.locationssl.keystore.passwordssl.truststore.locationssl.truststore.passwordssl.key.password,ssl.keystore.type和ssl.truststore.type等。

  5. 重啟Kafka服務。

    1. 在Kafka服務的配置頁面,選擇更多操作 > 重啟

    2. 在彈出的對話方塊中,輸入執行原因,單擊確定

    3. 確認對話方塊中,單擊確定

使用SSL串連Kafka

使用SSL串連Kafka時,需要用戶端配置參數security.protocolssl.truststore.passwordssl.truststore.location

例如,在已開啟SSL的Kafka叢集中,使用Kafka內建的Producer和Consumer執行作業,操作步驟如下:

  1. 使用SSH方式串連叢集的Master節點,詳情請參見登入叢集

  2. 建立設定檔。

    1. 執行以下命令,建立設定檔ssl.properties。

      vim ssl.properties
    2. 添加以下內容至設定檔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叢集中任意節點相應目錄下的truststorekeystore檔案,拷貝至運行環境進行相應配置。

  3. 執行以下命令,建立Topic。

    kafka-topics.sh --partitions 10 --replication-factor 2 --bootstrap-server core-1-1:9092 --topic test --create --command-config ssl.properties
  4. 執行以下命令,使用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地址。

  5. 執行以下命令,使用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服務