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

E-MapReduce:SASL 認証を使用した Kafka への接続

最終更新日:Jun 22, 2026

Simple Authentication and Security Layer (SASL) は、アプリケーション層がさまざまな認証メカニズムを選択および実装できるようにするフレームワークです。SASL 認証により、ユーザーを認証し、有効な認証情報を持つクライアントのみが Kafka サービスに接続できるようになり、セキュリティが大幅に向上します。このトピックでは、SASL を有効にし、それを使用して Kafka に接続する方法について説明します。

前提条件

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

手順

ステップ 1:SASL の設定

E-MapReduce は、server.properties 設定ファイルとその kafka.sasl.config.type パラメーターを使用して SASL 設定を管理します。

Kafka クラスターでは、デフォルトで SASL が無効になっています。次の例では、SCRAM-SHA-512 認証メカニズムを使用して SASL を有効にします。

  1. ユーザーを作成します。

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

    2. 次のコマンドを実行して、admin ユーザーを作成します。

      kafka-configs.sh --bootstrap-server core-1-1:9092 --alter --add-config 'SCRAM-SHA-256=[password=admin-secret],SCRAM-SHA-512=[password=admin-secret]' --entity-type users --entity-name admin
      説明

      この例では、admin ユーザーのパスワードは admin-secret です。これを実際のパスワードに置き換えてください。

  2. サービス設定ページに移動します。

    1. E-MapReduce コンソールにログインします。

    2. 必要に応じて、トップナビゲーションバーでリージョンとリソースグループを選択します。

    3. 対象のクラスターの [操作] 列にある Services をクリックします。

    4. Services ページで、Kafka サービスエリアの Configure をクリックします。

  3. SASL 認証設定を変更します。

    1. SASL 設定項目を追加します。

      Kafka サービス設定ページの [server.properties] タブで、設定項目を追加します。

      1. Add Configuration Item をクリックします。

      2. Add Configuration Item ダイアログボックスで、次の設定項目を追加し、OK をクリックします。

        パラメーター

        sasl.mechanism.inter.broker.protocol

        SCRAM-SHA-512

        sasl.enabled.mechanisms

        SCRAM-SHA-512

      3. 表示されるダイアログボックスで、Execution Reason フィールドに理由を入力し、Save をクリックします。

    2. リスナー設定を変更します。

      1. Configure ページで、[server.properties] タブをクリックします。

      2. kafka.sasl.config.type パラメーターの値を [CUSTOM] に変更し、Save をクリックします。

      3. 表示されるダイアログボックスで、Execution Reason フィールドに理由を入力し、Save をクリックします。

    3. サーバー側 JAAS を設定します。

      • 方法 1:カスタム設定項目を追加して、サーバー側の JAAS を設定します。

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

        2. Add Configuration Item をクリックし、次の設定項目を追加して、OK をクリックします。

          パラメーター

          listener.name.sasl_plaintext.sasl.enabled.mechanisms

          SCRAM-SHA-512

          listener.name.sasl_plaintext.scram-sha-512.sasl.jaas.config

          org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret" ;

        3. 表示されるダイアログボックスで、Execution Reason フィールドに理由を入力し、[Save] をクリックします。

      • 方法 2:設定ファイルを使用して、JAAS を設定します。

        1. Kafka サービス設定ページで、次の設定項目を変更し、Save をクリックします。

          タブ

          パラメーター

          kafka_server_jaas.conf

          kafka.server.jaas.content

          KafkaServer {
          org.apache.kafka.common.security.scram.ScramLoginModule required
          username="admin"
          password="admin-secret";
          };

          server.properties

          kafka_opts

          -Djava.security.auth.login.config=/etc/taihao-apps/kafka-conf/kafka-conf/kafka_server_jaas.conf

        2. 表示されるダイアログボックスで、Execution Reason フィールドに理由を入力し、Confirm をクリックします。

    4. クライアント側 JAAS を設定します。

      クライアント側の JAAS は、kafka_client_jaas.conf 設定ファイルの kafka.client.jaas.content パラメーターを使用して設定します。Kafka Schema Registry および Kafka Rest Proxy コンポーネントは、起動時にこの設定を使用します。

      1. Kafka サービス設定ページで、次の設定項目を変更し、Save をクリックします。

        タブ

        パラメーター

        kafka_client_jaas.conf

        kafka.client.jaas.content

        KafkaClient {
        org.apache.kafka.common.security.scram.ScramLoginModule required
        username="admin"
        password="admin-secret";
        };

        schema-registry.properties

        schema_registry_opts

        -Djava.security.auth.login.config=/etc/taihao-apps/kafka-conf/kafka-conf/kafka_client_jaas.conf

        kafka-rest.properties

        kafkarest_opts

        -Djava.security.auth.login.config=/etc/taihao-apps/kafka-conf/kafka-conf/kafka_client_jaas.conf

      2. 表示されるダイアログボックスで、Execution Reason フィールドに理由を入力し、[Save] をクリックします。

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

    1. Kafka サービスの Configure ページで、More > 再起動 を選択します。

    2. 表示されたダイアログボックスで、実行理由を入力し、OK をクリックします。

    3. Confirm ダイアログボックスで、OK をクリックします。

ステップ 2:SASL を使用した Kafka への接続

次の例では、SCRAM-SHA-512 メカニズムと Kafka の組み込みプロデューサーとコンシューマーツールを使用して、クライアントが Kafka サービスに認証・接続する方法を示します。

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

  2. 管理者設定ファイルを作成します。

    1. 次のコマンドを実行して、sasl_admin.properties 設定ファイルを作成します。

      vim sasl_admin.properties
    2. ファイルに次の内容を追加します。

      security.protocol=SASL_PLAINTEXT
      sasl.mechanism=SCRAM-SHA-512
      sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret";
  3. 次のコマンドを実行して、一般ユーザーを作成します。

    kafka-configs.sh --bootstrap-server core-1-1:9092 --alter --add-config 'SCRAM-SHA-256=[password=<yourUserpassword>],SCRAM-SHA-512=[password=<yourUserpassword>]' --entity-type users --entity-name <yourUsername> --command-config /root/sasl_admin.properties

    コマンド内の <yourUsername><yourUserpassword> を、新しいユーザーのユーザー名とパスワードに置き換えてください。

  4. ユーザー設定ファイルを作成します。

    1. 次のコマンドを実行して、sasl_user.properties 設定ファイルを作成します。

      vim sasl_user.properties
    2. ファイルに次の内容を追加します。

      security.protocol=SASL_PLAINTEXT
      sasl.mechanism=SCRAM-SHA-512
      sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="<yourUsername>" password="<yourUserpassword>";
  5. 次のコマンドを実行して、トピックを作成します。

    kafka-topics.sh --partitions 10 --replication-factor 2 --bootstrap-server core-1-1:9092 --topic test --create --command-config /root/sasl_user.properties

    この例では、トピック名は test です。これを実際のトピック名に置き換えてください。

  6. 次のコマンドを実行して、SASL 設定ファイルを使用してデータを生成します。

    kafka-producer-perf-test.sh --topic test --num-records 123456 --throughput 10000 --record-size 1024 --producer-props bootstrap.servers=core-1-1:9092 --producer.config sasl_user.properties
  7. 次のコマンドを実行して、SASL 設定ファイルを使用してデータを消費します。

    kafka-consumer-perf-test.sh --broker-list core-1-1:9092 --messages 100000000 --topic test --consumer.config sasl_user.properties

関連トピック

クライアントとサーバー間のデータ送信を暗号化する方法については、「SSL を使用した Kafka 接続の暗号化」をご参照ください。