PLAIN の構成

SASL/PLAIN の概要

PLAIN(SASL/PLAIN)は、ユーザー名とパスワードによるシンプルな認証メカニズムで、セキュアな認証を実装するために、一般には暗号化に TLS を併用します。Apache Kafka® では、 SASL/PLAIN のデフォルト実装(本稼働環境での使用に拡張可能) をサポートします。

ユーザー名は認証された principal として使用されます。これは、認可(ACL など)に使用されます。

注釈

PLAIN と PLAINTEXT の違い: SASL メカニズム PLAIN と SSL 暗号化を使用しない PLAINTEXT を混同しないでください。sasl.enabled.mechanismssasl.mechanism.inter.broker.protocol などの構成パラメーターは SASL メカニズム PLAIN を使用するように構成できる一方、security.inter.broker.protocollisteners は SSL 暗号化がない SASL_PLAINTEXT を使用するように構成できます。

SASL/PLAIN は、平文のパスワードが暗号化なしでネットワークを伝送されることがないように、トランスポート層に対する SSL を必ず併用する必要があります。

Kafka での SASL/PLAIN のデフォルト実装では、JAAS の構成ファイルにユーザー名とパスワードを指定します。構成オプション sasl.server.callback.handler.class および sasl.client.callback.handler.class を使用して、外部ソースからユーザー名とパスワードを取得する独自のコールバックハンドラーを構成することで、ディスクに平文のパスワードを格納することを回避できます。

本稼働環境のシステムで、外部の認証サーバーによるパスワード認証を実装できます。sasl.server.callback.handler.class を構成することで、パスワード検証に外部の認証サーバーを使用する、独自のコールバックハンドラーを導入できます。

このページの残りの部分では、Confluent Platform の各コンポーネントに SASL/PLAIN を構成する方法を示します。

ブローカー

Kafka クラスター内のすべてのブローカーを、クライアントからのセキュアな接続を受け付けるように構成します。ブローカーに構成の変更内容が反映されるためには、 ローリング再起動 が必要です。

次のセクションに示すとおり、Kafka ブローカーのセキュリティを有効にします。さらに、Confluent Control Center や Auto Data Balancer を使用している場合、次のコンポーネントに対してブローカーを構成します。

JAAS

注釈

個別の JAAS ファイルの使用がサポートされていますが、このアプローチは "推奨されていません"。ここで説明されている JAAS 構成の代わりに、「構成」の手順 5 を使用することを推奨します。

各 KafkaServer/Broker では、JAAS ファイルの KafkaServer セクションを使用して、ブローカーの SASL 構成オプションを指定します。この構成オプションには、ブローカー間通信用にブローカーで行われる SASL クライアント接続も含まれます。SASL を使用するように複数のリスナーを構成する場合、ピリオドが最後に付いた小文字のリスナー名をプレフィックスとしてセクション名に追加します(sasl_ssl.KafkaServer. など)。

Client セクションを使用して、ZooKeeper で SASL 接続を認証します。また、ZooKeeper ノードの SASL ACL をブローカーが設定できるようにします。これにより、ブローカーのみが変更できるようにノードがロックされます。すべてのブローカーで同じプリンシパル名を指定する必要があります。Client 以外のセクション名を使用する必要がある場合、適切な名前を zookeeper.sasl.clientconfig システムプロパティに指定します(-Dzookeeper.sasl.clientconfig=ZkClient など)。

デフォルトでは、ZooKeeper は "zookeeper" をサービス名として使用します。サービス名を変更する場合、適切な名前を zookeeper.sasl.client.username システムプロパティに指定します(-Dzookeeper.sasl.client.username=zk など)。

ブローカーでは、ブローカーの構成プロパティ sasl.jaas.config を使用して JAAS を構成することもできます。プロパティ名の先頭に、SASL メカニズムを含むリスナーのプレフィックスを付ける必要があります。つまり listener.name.{listenerName}.{saslMechanism}.sasl.jaas.config です。

構成値にはログインモジュールを 1 つだけ指定できます。リスナーで複数のメカニズムを構成するには、リスナーとメカニズムのプレフィックスを使用し、各メカニズムに対して構成を指定する必要があります。以下に例を示します。

1listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
2    username="admin" \
3    password="admin-secret";
4listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
5    username="admin" \
6    password="admin-secret" \
7    user_admin="admin-secret" \
8    user_alice="alice-secret";

個別の JAAS ファイルを使用する場合、各 Kafka ブローカーを起動するとき、次のとおり、JVM パラメーターとして JAAS ファイルの名前を渡します。

export KAFKA_OPTS=-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf
bin/kafka-server-start etc/kafka/server.properties

JVM パラメーターに渡すことができる他のオプションについては、「実行」を参照してください。

JAAS 構成が異なるレベルで定義される場合、次の優先順位が使用されます。

  1. ブローカーの構成プロパティ(listener.name.{listenerName}.{saslMechanism}.sasl.jaas.config
  2. 静的な JAAS 構成の {listenerName}.KafkaServer セクション
  3. 静的な JAAS 構成の KafkaServer セクション

ZooKeeper の JAAS を構成できるのは、静的な JAAS の構成を使用した場合だけであることに注意してください。

構成

  1. 各ブローカーの server.properties ファイルで SASL/PLAIN メカニズムを有効にします。

    # List of enabled mechanisms, can be more than one
    sasl.enabled.mechanisms=PLAIN
    
    # Specify one of of the SASL mechanisms
    sasl.mechanism.inter.broker.protocol=PLAIN
    
  1. ブローカー間通信で、SASL を有効にする場合は、次の行をブローカーのプロパティファイルに追加します(デフォルトは PLAINTEXT )。プロトコルを次のとおり設定します。

    • SASL_SSL: SSL 暗号化が有効な場合(SASL メカニズムが PLAIN である場合、SSL 暗号化の使用が必要)
    • SASL_PLAINTEXT: SSL 暗号化が有効ではない場合
    # Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
    security.inter.broker.protocol=SASL_SSL
    
  2. クライアントやブローカー間の SASL 接続をリッスンするポートを Kafka ブローカーに通知します。listeners を構成する必要があります。また、listeners と値が異なる場合は、必要に応じて advertised.listeners を構成する必要があります。リスナーを次のとおり設定します。

    • SASL_SSL: SSL 暗号化が有効な場合(SASL メカニズムが PLAIN である場合、SSL 暗号化の使用が必要)
    • SASL_PLAINTEXT: SSL 暗号化が有効ではない場合
    # With SSL encryption
    listeners=SASL_SSL://kafka1:9093
    advertised.listeners=SASL_SSL://localhost:9093
    
    # Without SSL encryption
    listeners=SASL_PLAINTEXT://kafka1:9093
    advertised.listeners=SASL_PLAINTEXT://localhost:9093
    
  3. 以下に該当する場合は、SASL_SSL ポートと PLAINTEXT ポートの両方を構成します。

    • SASL をブローカー間通信に対して有効にしない
    • クラスターに接続する一部のクライアントで SASL を使用しない

    SSL 暗号化を使う SASL リスナーと、PLAINTEXT リスナーが混在する例を次に示します。

    # With SSL encryption
    listeners=PLAINTEXT://kafka1:9092,SASL_SSL://kafka1:9093
    advertised.listeners=PLAINTEXT://localhost:9092,SASL_SSL://localhost:9093
    
    # Without SSL encryption
    listeners=PLAINTEXT://kafka1:9092,SASL_PLAINTEXT://kafka1:9093
    advertised.listeners=PLAINTEXT://localhost:9092,SASL_PLAINTEXT://localhost:9093
    
  4. JAAS を構成するために、個別の JAAS の構成ファイルを使用しない場合、次のとおり、Kafka ブローカーのリスナーに対して JAAS を構成します。

    # With SSL encryption
    listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
       username="admin" \
       password="admin-secret" \
       user_admin="admin-secret" \
       user_kafkabroker1="kafkabroker1-secret";
    
    # Without SSL encryption
    listener.name.sasl_plaintext.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
       username="admin" \
       password="admin-secret" \
       user_admin="admin-secret" \
       user_kafkabroker1="kafkabroker1-secret";
    

実行

次に示すのは、コマンドラインから各ブローカーを起動するとき、JVM パラメーターとして渡すことができるいくつかのオプション設定です。

zookeeper.sasl.client

ZooKeeper に対して SASL 認証を有効にするために使用します。

  • 型: Boolean
  • デフォルト: true
  • 使用例: ブローカーを起動するとき、JVM パラメーターとしてパラメーターを渡すには、-Dzookeeper.sasl.client=true を指定します。
zookeeper.sasl.client.username

ZooKeeper に対する SASL 認証でユーザー名を変更する場合は、適切な名前を使用するようにシステムプロパティを設定します。

  • 型: string
  • デフォルト: zookeeper
  • 使用例: ブローカーを起動するとき、JVM パラメーターとしてパラメーターを渡すには、-Dzookeeper.sasl.client.username=zk を指定します。
zookeeper.sasl.clientconfig

JAAS のログインファイルでコンテキストキーを指定します。これは、ZooKeeper に対する SASL 認証でセクション名を変更するために使用します。

  • 型: string
  • デフォルト: Client
  • 使用例: ブローカーを起動するとき、JVM パラメーターとしてパラメーターを渡すには、-Dzookeeper.sasl.clientconfig=ZkClient を指定します。

クライアント

重要

以下の設定を Schema Registry または REST Proxy に対して構成する場合、各パラメーターのプレフィックスとして confluent.license を使用する必要があります。たとえば、sasl.mechanismconfluent.license.sasl.mechanism になります。

新しいプロデューサーとコンシューマークライアントは、Kafka バージョン 0.9.0 以上でセキュリティをサポートします。

Kafka Streams API を使用している場合、同等の SSL パラメーターおよび SASL パラメーターを構成する方法を参照してください。

  1. 次のプロパティをクライアントのプロパティファイル client.properties で構成します。
sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
security.protocol=SASL_SSL
  1. プロデューサーやコンシューマーなどのクライアントが Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ usernamepassword は、クライアント接続のユーザーを構成するために、クライアントで使用されます。この例では、クライアントはブローカーにユーザー kafkaclient1 として接続します。
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="kafkaclient1" \
  password="kafkaclient1-secret";

ZooKeeper

ZooKeeper では SASL/PLAIN 認証をサポートしません。ただし別のメカニズム SASL/DIGEST-MD5 をサポートします。

詳細については、次の ZooKeeper の SASL 認証を参照してください。

  1. クライアントとサーバー間の相互認証 : Kafka ブローカー(クライアント)と ZooKeeper (サーバー)間
  2. サーバー間の相互認証 : アンサンブル内の ZooKeeper ノード間

Kafka Connect

このセクションでは、Kafka Connect のセキュリティを有効にする方法について説明します。Kafka Connect をセキュアにするには、次の対象でセキュリティを構成する必要があります。

  1. Kafka Connect ワーカー : Kafka Connect API の一部で、ワーカーは実際には内部的に機能する高度なクライアントです。
  2. Kafka Connect コネクター: コネクターにはプロデューサーとコンシューマーを組み込むことができます。そのため、ソースコネクターで使用される Connect プロデューサーやシンクコネクターで使用される Connect コンシューマーのデフォルトの構成をオーバーライドする必要があります。
  3. Kafka Connect REST: Kafka Connect では、 追加のプロパティ を使って SSL を使用するように構成できる REST API が公開されています。

次のセクションに示すとおり、Kafka Connect のセキュリティを構成します。さらに、Confluent Control Center のストリームモニタリングを Kafka Connect に対して使用している場合、次の対象でセキュリティを構成します。

次のすべてのプロパティを connect-distributed.properties で構成します。

  1. SASL/PLAIN を使用するように Connect ワーカーを構成します。
sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
security.protocol=SASL_SSL
  1. Connect のプロデューサーとコンシューマーが Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ usernamepassword は、接続のユーザーを構成するために、Connect で使用されます。この例では、Connect ワーカーはブローカーにユーザー connect として接続します。
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="connect" \
  password="connect-secret";
  1. セキュリティを活用するコネクターでは、ワーカーが使用するプロデューサーやコンシューマーのデフォルト構成をオーバーライドする必要もあります。ソースコネクターかシンクコネクターに応じて次のとおり実行します。
  • ソースコネクター: 同じプロパティに producer プレフィックスを追加して構成します。
producer.sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
producer.security.protocol=SASL_SSL
producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="connect" \
  password="connect-secret";
  • シンクコネクター: 同じプロパティに consumer プレフィックスを追加して構成します。
consumer.sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
consumer.security.protocol=SASL_SSL
consumer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="connect" \
  password="connect-secret";

Confluent Replicator

Confluent Replicator は、Kafka ソースコネクターの一種で、送信元 Kafka クラスターから送信先クラスターにデータを複製します。Replicator に組み込まれたコンシューマーは、送信元クラスターからデータを読み取り、Kafka Connect ワーカーに組み込まれたプロデューサーは送信先クラスターにデータを書き込みます。

Replicator バージョン 4.0 以下では、送信元および送信先の Kafka クラスターで ZooKeeper への接続が必要です。ZooKeeper で認証を有効にする場合、クライアントで ZooKeeper のセキュリティ認証情報を、Connect ワーカーのグローバル JAAS 構成設定 -Djava.security.auth.login.config に構成します。さらに送信元と送信先のクラスターで ZooKeeper のセキュリティ認証情報が一致する必要があります。

Confluent Replicator のセキュリティを構成するには、次に示すとおり Replicator コネクターを構成し、さらに次のコンポーネントを構成する必要があります。

Confluent Replicator を構成して、SASL/PLAIN を使用するには、次のプロパティを Replicator の JSON 構成ファイルに追加します。JAAS の構成のプロパティでは、接続のユーザーを構成するため、Replicator で使用する usernamepassword を定義します。この例では、Replicator はブローカーにユーザー replicator として接続します。

{
  "name":"replicator",
    "config":{
      ....
      "src.kafka.security.protocol" : "SASL_SSL",
      "src.kafka.sasl.mechanism" : "PLAIN",
      "src.kafka.sasl.jaas.config" : "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"replicator\" password=\"replicator-secret\";",
      ....
    }
  }
}

参考

Confluent Replicator の構成例については、SASL のソース認証デモのスクリプト を参照してください。共通のセキュリティ構成のデモについては、Replicator のセキュリティデモ を参照してください。

SASL/PLAIN 認証を使用して送信先クラスター用に Confluent Replicator を構成するには、Replicator の JSON 構成を次の内容が含まれるように変更します。

{
  "name":"replicator",
    "config":{
      ....
      "dest.kafka.security.protocol" : "SASL_SSL",
      "dest.kafka.sasl.mechanism" : "PLAIN",
      "dest.kafka.sasl.jaas.config" : "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"replicator\" password=\"replicator-secret\";",
      ....
    }
  }
}

さらに次のプロパティが Connect ワーカーに必要です。

sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="replicator" password="replicator-secret";
sasl.kerberos.service.name=kafka
producer.sasl.mechanism=GSSAPI
producer.security.protocol=SASL_SSL
producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="replicator" password="replicator-secret";

詳細については、こちら で Connect ワーカーの全般的なセキュリティ構成を確認してください。

参考

Confluent Replicator の構成例については、SASL の送信先認証デモのスクリプト を参照してください。共通のセキュリティ構成のデモについては、Replicator のセキュリティデモ を参照してください。

Confluent Control Center

Confluent Control Center は Kafka Streams をステートストアとして使用します。つまり Control Center が支援するクラスターにあるすべての Kafka ブローカーがセキュアである場合、Control Center アプリケーションもセキュアにする必要があります。

注釈

RBAC が有効である場合、Control Center を Kerberos とともに使用できません。Control Center では、OAUTHBEARER 以外の SASL メカニズムをサポートできないためです。

次のセクションに示すとおり、Control Center アプリケーションのセキュリティを有効にします。さらに、以下のコンポーネントのセキュリティを構成します。

  1. Control Center の SASL/PLAIN とセキュリティプロトコルを etc/confluent-control-center/control-center.properties ファイルで有効にします。

    confluent.controlcenter.streams.sasl.mechanism=PLAIN
    # Configure SASL_SSL if SSL encryption is enabled; otherwise configure SASL_PLAINTEXT
    confluent.controlcenter.streams.security.protocol=SASL_SSL
    
  1. Control Center が Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ usernamepassword は、接続を構成するために、Control Center で使用されます。

    confluent.controlcenter.streams.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
    username="confluent" \
    password="confluent-secret";
    

Confluent Metrics Reporter

このセクションでは、Confluent Control Center と Auto Data Balancer で使用される Confluent Metrics Reporter の SASL/PLAIN を有効にする方法について説明します。

Confluent Metrics Reporter の SASL/PLAIN を構成するには、モニタリング対象となる本稼働環境のクラスター内にあるすべてのブローカーの server.properties ファイルで、次のとおりに構成を変更します。

  1. Confluent Metrics Reporter が有効であることを検証します。
metric.reporters=io.confluent.metrics.reporter.ConfluentMetricsReporter
confluent.metrics.reporter.bootstrap.servers=kafka1:9093
  1. Confluent Metrics Reporter で SASL/PLAIN メカニズムを有効にします。
confluent.metrics.reporter.sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
confluent.metrics.reporter.security.protocol=SASL_SSL

Confluent モニタリングインターセプター

Confluent Monitoring Interceptor を Confluent Control Center のストリームモニタリングで使用します。このセクションでは、Confluent Monitoring Interceptor 向けのセキュリティを次の 3 か所で有効にする方法について説明します。

  1. 一般クライアント
  2. Kafka Connect
  3. Confluent Replicator

重要

Confluent Monitoring Interceptor の典型的なユースケースは、構成が一般に異なる、個別のモニタリングクラスターにモニタリングデータを渡すことです。インターセプターの構成では、モニタリングされているコンポーネントの構成を継承しません。モニタリングされているコンポーネントの構成を使用する場合は、適切なプレフィックスを追加する必要があります。たとえば、オプション confluent.monitoring.interceptor.security.protocol=SSL では、プロデューサーに使用する場合、producer. のプレフィックスを使用して producer.confluent.monitoring.interceptor.security.protocol=SSL とする必要があります。

一般クライアント用のインターセプター

Kafka クライアントで動作する Confluent Control Center のストリームモニタリングについては、各クライアントで Confluent Monitoring Interceptor の SASL/PLAIN を構成する必要があります。

  1. クライアントでインターセプターが構成されていることを検証します。
  • プロデューサーの場合
interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
  • コンシューマーの場合
interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
  1. インターセプターに対して SASL のメカニズムとセキュリティプロトコルを構成します。
confluent.monitoring.interceptor.sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
confluent.monitoring.interceptor.security.protocol=SASL_SSL
  1. 一意のユーザー名とパスワードを使用して、JAAS の構成のプロパティを構成します。
confluent.monitoring.interceptor.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="confluent" \
  password="confluent-secret";

Kafka Connect 用のインターセプター

  1. Kafka Connect で動作する Confluent Control Center のストリームモニタリングについては、Kafka Connect で Confluent Monitoring Interceptor の SASL/PLAIN を構成する必要があります。コネクターがソースかシンクかに応じて、次のプロパティを connect-distributed.properties に追加することで、Connect ワーカーを構成します。
  • ソースコネクター: producer プレフィックスを使用して、Confluent Monitoring Interceptor の SASL メカニズムを構成します。
producer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
producer.confluent.monitoring.interceptor.sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
producer.confluent.monitoring.interceptor.security.protocol=SASL_SSL
  • シンクコネクター: consumer プレフィックスを使用して、Confluent Monitoring Interceptor の SASL メカニズムを構成します。
consumer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
consumer.confluent.monitoring.interceptor.sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
consumer.confluent.monitoring.interceptor.security.protocol=SASL_SSL
  1. ユーザー名とパスワードを使用して、JAAS の構成のプロパティを構成します。
  • ソースコネクター: producer プレフィックスを使用して、Confluent Monitoring Interceptor の JAAS 構成を構成します。
producer.confluent.monitoring.interceptor.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="confluent" \
  password="confluent-secret";
  • シンクコネクター: consumer プレフィックスを使用して、Confluent Monitoring Interceptor の JAAS 構成を指定します。
consumer.confluent.monitoring.interceptor.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="confluent" \
  password="confluent-secret";

Replicator 用のインターセプター

Replicator で動作する Confluent Control Center のストリームモニタリングについては、Replicator の JSON 構成ファイルで Confluent Monitoring Interceptor の SASL を構成する必要があります。追加する構成プロパティのサブセットの一例を次に示します。

{
  "name":"replicator",
    "config":{
      ....
      "src.consumer.group.id": "replicator",
      "src.consumer.interceptor.classes": "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor",
      "src.consumer.confluent.monitoring.interceptor.sasl.mechanism": "PLAIN",
      "src.consumer.confluent.monitoring.interceptor.security.protocol": "SASL_SSL",
      "src.consumer.confluent.monitoring.interceptor.sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required \nusername=\"confluent\" \npassword=\"confluent-secret\";",
      ....
    }
  }
}

Schema Registry

Schema Registry はスキーマを永続化するために Kafka を使用します。つまり、Kafka クラスターにデータを書き込むためのクライアントとして機能します。したがって、Kafka ブローカーでセキュリティが構成されている場合、Schema Registry もセキュリティを使用するように構成する必要があります。網羅的なリストについては、「Schema Registry の構成オプション」も参照してください。

  1. SASL 認証用に追加する schema-registry.properties 構成パラメーターのサブセットの一例を次に示します。
kafkastore.bootstrap.servers=kafka1:9093
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
kafkastore.security.protocol=SASL_SSL
kafkastore.sasl.mechanism=PLAIN
  1. Schema Registry が Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ usernamepassword は、接続のユーザーを構成するために Schema Registry で使用されます。この例では、Schema Registry はブローカーにユーザー schemaregistry として接続します。
kafkastore.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="schemaregistry" \
  password="schemaregistry-secret";

REST Proxy

Confluent REST Proxy を SASL でセキュアにするには、REST Proxy と Kafka クラスター間でセキュリティを構成する必要があります。

すべての構成オプションの網羅的なリストについては、「SASL の認証」を参照してください。

  1. SASL/PLAIN 認証用に追加する kafka-rest.properties 構成パラメーターのサブセットの一例を次に示します。
client.bootstrap.servers=kafka1:9093
client.sasl.mechanism=PLAIN
# Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
client.security.protocol=SASL_SSL
  1. REST Proxy が Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ usernamepassword は、接続のユーザーを構成するために、REST Proxy で使用されます。この例では、REST Proxy はブローカーにユーザー restproxy として接続します。
client.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="restproxy" \
  password="restproxy-secret";