すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Kafka データの暗号化に SSL を使用する

最終更新日:Jan 25, 2025

Secure Sockets Layer ( SSL ) は、クライアントとサーバー間の安全な接続を提供するネットワークプロトコルです。Dataflow クラスタで SSL を有効にすると、プロデューサー、コンシューマー、およびブローカー間のデータ転送が暗号化されます。これにより、転送中の機密データが盗聴や改ざんから保護されます。このトピックでは、Kafka がデプロイされている Dataflow クラスタで SSL を有効にし、SSL 経由で Kafka にアクセスする方法について説明します。

前提条件

E-MapReduce ( EMR ) コンソールで Dataflow クラスタが作成され、クラスタの作成時に Kafka が選択されています。詳細については、「Dataflow Kafka クラスタを作成する」をご参照ください。

手順

手順 1:SSL を有効にする

Kafka クラスタで SSL を有効にするには、次のいずれかの方法を使用できます。

  • EMR が提供するデフォルトの証明書を使用して SSL を有効にします。

  • カスタム証明書と関連する設定項目を使用して SSL を有効にします。

EMR は、server.properties 設定ファイルの kafka.ssl.config.type 設定項目を使用して、SSL を構成するために使用されるポリシーを管理します。

方法 1:デフォルトの証明書を使用して SSL を有効にする

説明

デフォルトでは、Kafka クラスタの SSL は無効になっています。次の操作を実行して、SSL をすばやく有効にすることができます。

  1. Kafka サービスページの [構成] タブに移動します。

    1. EMR コンソール にログインします。左側のナビゲーションウィンドウで、[ EMR on ECS ] をクリックします。

    2. 上部のナビゲーションバーで、クラスタが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します

    3. [ EMR on ECS ] ページで、目的のクラスタを見つけ、[操作] 列の [サービス] をクリックします。

    4. [サービス] タブで、Kafka サービスを見つけ、[構成] をクリックします。

  2. 設定項目を変更します。

    1. [構成] タブで、[server.properties] タブをクリックします。

    2. kafka.ssl.config.type 設定項目の値を DEFAULT に変更します。

      修改参数

  3. 構成を保存します。

    1. [保存] をクリックします。

    2. 表示されるダイアログボックスで、[実行理由] パラメーターを構成し、[保存] をクリックします。

  4. Kafka サービスを再起動します。

    1. Kafka サービスページの [構成] タブで、右上隅にある [詳細] > [再起動] を選択します。

    2. 表示されるダイアログボックスで、[実行理由] パラメーターを構成し、[OK] をクリックします。

    3. [確認] メッセージで、[OK] をクリックします。

方法 2:カスタム証明書を使用して SSL を有効にする

説明

デフォルトでは、Kafka クラスタの SSL は無効になっています。構成をカスタマイズして SSL を有効にすることができます。

  1. Kafka サービスページの [構成] タブに移動します。

    1. EMR コンソール にログインします。左側のナビゲーションウィンドウで、[ EMR on ECS ] をクリックします。

    2. 上部のナビゲーションバーで、クラスタが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します

    3. EMR on ECS ページで、目的のクラスタを見つけ、[アクション] 列の [サービス] をクリックします。

    4. [サービス] タブで、Kafka サービスを見つけ、[構成] をクリックします。

  2. 設定項目を変更します。

    1. Kafka サービスページの [構成] タブで、[server.properties] タブをクリックします。

    2. kafka.ssl.config.type 設定項目の値を CUSTOM に変更します。

  3. 構成を保存します。

    1. [保存] をクリックします。

    2. 表示されるダイアログボックスで、[実行理由] パラメーターを構成し、[保存] をクリックします。

  4. SSL に関連する他の設定項目を変更します。

    リスナーを除く SSL 関連の設定項目は、ビジネス要件に基づいて構成する必要があります。たとえば、ssl.keystore.locationssl.keystore.passwordssl.truststore.locationssl.truststore.passwordssl.key.password、ssl.keystore.type、および ssl.truststore.type などの設定項目を構成する必要があります。

  5. Kafka サービスを再起動します。

    1. Kafka サービス ページの [構成] タブで、右上隅にある [詳細] > [再起動] を選択します。

    2. 表示されるダイアログボックスで、実行理由パラメーターを構成し、[OK] をクリックします。

    3. [確認] メッセージで、[OK] をクリックします。

手順 2:SSL 経由で Kafka にアクセスする

SSL 経由で Kafka にアクセスするには、security.protocolssl.truststore.password、および ssl.truststore.location 設定項目を構成する必要があります。

たとえば、Kafka の Producer プログラムと Consumer プログラムを使用して、SSL が有効になっている Kafka クラスタでジョブを実行する場合、次の手順を実行できます。

  1. SSH モードでクラスタのマスターノードにログインします。詳細については、「クラスタにログインする」をご参照ください。

  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 クラスタのノードの特定のディレクトリにある truststore ファイルと keystore ファイルを実行時環境にコピーします。次に、必要な情報を構成します。

  3. 次のコマンドを実行して、Kafka トピックを作成します。

    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

関連情報

簡易認証およびセキュリティ層 ( SASL ) を使用して Dataflow Kafka クラスタにログインするために使用されるユーザー ID を検証する方法については、「SASL を使用して Kafka クラスタにログインする」をご参照ください。