SCRAM の構成¶
SASL/SCRAM の概要¶
Salted Challenge Response Authentication Mechanism(SCRAM)つまり SASL/SCRAM は、PLAIN のようなユーザー名とパスワードの認証を実行する従来のメカニズムにおけるセキュリティ上の懸念に対応する SASL メカニズムのファミリです。Apache Kafka® では SCRAM-SHA-256
と SCRAM-SHA-512
をサポートします。次のすべての例では SCRAM-SHA-256
を使用しますが、必要に応じて SCRAM-SHA-512
の構成に置き換えることができます。
Kafka の SCRAM 実装では、ZooKeeper に SCRAM 認証情報を格納します。これは ZooKeeper がプライベートネットワークにある Kafka インストールで使用するのに適しています。このため、ZooKeeper で各ユーザーの SCRAM 認証情報を作成する必要があります。
bin/kafka-configs --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[iterations=8192,password=alice-secret],SCRAM-SHA-512=[password=alice-secret]' --entity-type users --entity-name alice
bin/kafka-configs --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin-secret],SCRAM-SHA-512=[password=admin-secret]' --entity-type users --entity-name admin
イテレーションが指定されていない場合、デフォルトのイテレーションは 4096 回です。ランダムのソルトが作成され、SCRAM の ID はソルト、イテレーション、StoredKey、ServerKey で構成され、ZooKeeper に格納されます。SCRAM の概要については、『RFC 5802 Abstract 』、また、SCRAM の ID と個別のフィールドの詳細情報については、『RFC 5802 』を参照してください。
SASL/SCRAM のセキュリティの考慮事項¶
- Kafka の SASL/SCRAM のデフォルト実装では、SCRAM の認証情報が ZooKeeper に格納されます。これは、ZooKeeper がセキュアで、プライベートネットワークにあるインストールにおける本稼働環境での使用に適しています。
- Kafka でサポートするのは、強力なハッシュ関数 SHA-256 と SHA-512(最低イテレーション 4096 回)だけです。強力なハッシュ関数を強力なパスワードおよび高いイテレーション回数と組み合わせると、ZooKeeper のセキュリティが侵害された場合に、総当たり攻撃に対して保護できます。
- SCRAM を使用できるのは、TLS 暗号化を使用して、SCRAM の相互通信の傍受を防ぐ場合だけです。これは ZooKeeper が侵害された場合に、辞書攻撃や総当たり攻撃、なりすましに対して保護します。
- デフォルトの SASL/SCRAM 認証情報ストアは、ZooKeeper がセキュアではないインストールで、カスタムコールバックハンドラーを使用して
sasl.server.callback.handler.class
を構成することにより、オーバーライドできます。 - セキュリティの考慮事項の詳細については、『RFC 5802 』を参照してください。
このページの残りの部分では、Confluent Platform の各コンポーネント用に SASL/SCRAM を構成する方法を示します。
ブローカー¶
Kafka クラスター内のすべてのブローカーを、クライアントからのセキュアな接続を受け付けるように構成します。ブローカーに構成の変更内容が反映されるためには、 ローリング再起動 が必要です。
次のセクションに示すとおり、Kafka ブローカーのセキュリティを有効にします。さらに、Confluent Control Center や Auto Data Balancer を使用している場合、次のコンポーネントに対してブローカーを構成します。
JAAS¶
注釈
個別の JAAS ファイルの使用がサポートされていますが、このアプローチは "推奨されていません"。以下の手順の代わりに、「構成」の手順 5 で指定されているリスナーの構成を使用します。
まず、各 Kafka ブローカーの構成ディレクトリでブローカーの JAAS の構成ファイルを作成します。この例では、
kafka_server_jaas.conf
という名前です。各ブローカーの JAAS ファイルで、
KafkaServer
セクションを構成します。この構成では、2 人のユーザー(admin
とkafkabroker1
)を定義します。プロパティusername
とpassword
は、他のブローカーへの接続を開始するために、ブローカーで使用されます。この例では、admin
はブローカー間通信をするユーザーです。KafkaServer { org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret"; };
構成¶
各ブローカーの
server.properties
ファイルで SASL/SCRAM メカニズムを有効にします。# List of enabled mechanisms, can be more than one sasl.enabled.mechanisms=SCRAM-SHA-256 # Specify one of of the SASL mechanisms sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
ブローカー間通信で、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
クライアントやブローカー間の
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
以下に該当する場合は、
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
JAAS を構成するために、個別の JAAS の構成ファイルを使用しない場合、次のとおり、Kafka ブローカーのリスナーに対して JAAS を構成します。
listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-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 パラメーターとして渡すことができるいくつかのオプション設定です。
zookeeper.sasl.client
ZooKeeper に対して SASL 認証を有効にするために使用します。
- 型: Boolean
- デフォルト: true
- 使用例: ブローカーを起動するとき、JVM パラメーターとしてパラメーターを渡すには、
-Dzookeeper.sasl.client=true
を指定します。
zookeeper.sasl.client.username
ZooKeeper に対する SASL 認証でユーザー名を変更する場合は、適切な名前を使用するようにシステムプロパティを設定します。
- 型: string
- デフォルト: zookeeper
- 使用例: ブローカーを起動するとき、JVM パラメーターとしてパラメーターを渡すには、
-Dzookeeper.sasl.clientconfig=ZkClient
を指定します。
zookeeper.sasl.clientconfig
JAAS のログインファイルでコンテキストキーを指定します。これは、ZooKeeper に対する SASL 認証でセクション名を変更するために使用します。
- 型: string
- デフォルト: Client
- 使用例: ブローカーを起動するとき、JVM パラメーターとしてパラメーターを渡すには、
-Dzookeeper.sasl.clientconfig=ZkClient
を指定します。
クライアント¶
新しいプロデューサーとコンシューマークライアントは、Kafka バージョン 0.9.0 以上でセキュリティをサポートします。
Kafka Streams API を使用している場合、同等の SSL パラメーターおよび SASL パラメーターを構成する方法を参照してください。
次のプロパティをクライアントのプロパティファイル
client.properties
で構成します。sasl.mechanism=SCRAM-SHA-256 # Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT security.protocol=SASL_SSL
プロデューサーやコンシューマーなどのクライアントが Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ
username
とpassword
は、クライアント接続のユーザーを構成するために、クライアントで使用されます。この例では、クライアントはブローカーにユーザーkafkaclient1
として接続します。sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="kafkaclient1" \ password="kafkaclient1-secret";
ZooKeeper¶
ZooKeeper では SASL/SCRAM 認証をサポートしません。ただし別のメカニズム SASL/DIGEST-MD5 をサポートします。
詳細については、次の ZooKeeper の SASL 認証を参照してください。
- クライアントとサーバー間の相互認証 : Kafka ブローカー(クライアント)と ZooKeeper (サーバー)間
- サーバー間の相互認証 : アンサンブル内の ZooKeeper ノード間
Kafka Connect¶
このセクションでは、Kafka Connect のセキュリティを有効にする方法について説明します。Kafka Connect をセキュアにするには、次の対象でセキュリティを構成する必要があります。
- Kafka Connect ワーカー : Kafka Connect API の一部で、ワーカーは実際には内部的に機能する高度なクライアントです。
- Kafka Connect コネクター: コネクターにはプロデューサーとコンシューマーを組み込むことができます。そのため、ソースコネクターで使用される Connect プロデューサーやシンクコネクターで使用される Connect コンシューマーのデフォルトの構成をオーバーライドする必要があります。
- Kafka Connect REST: Kafka Connect では、 追加のプロパティ を使って SSL を使用するように構成できる REST API が公開されています。
次のセクションに示すとおり、Kafka Connect のセキュリティを構成します。さらに、Confluent Control Center のストリームモニタリングを Kafka Connect に対して使用している場合、次の対象でセキュリティを構成します。
次のすべてのプロパティを connect-distributed.properties
で構成します。
SASL/SCRAM を使用するように Connect ワーカーを構成します。
sasl.mechanism=SCRAM-SHA-256 # Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT security.protocol=SASL_SSL
Connect のプロデューサーとコンシューマーが Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ
username
とpassword
は、接続のユーザーを構成するために、Connect で使用されます。この例では、Connect ワーカーはブローカーにユーザーconnect
として接続します。sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="connect" \ password="connect-secret";
セキュリティを活用するコネクターでは、ワーカーが使用するプロデューサーやコンシューマーのデフォルト構成をオーバーライドする必要もあります。ソースコネクターかシンクコネクターに応じて次のとおり実行します。
ソースコネクター: 同じプロパティに
producer
プレフィックスを追加して構成します。producer.sasl.mechanism=SCRAM-SHA-256 # 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.scram.ScramLoginModule required \ username="connect" \ password="connect-secret";
シンクコネクター: 同じプロパティに
consumer
プレフィックスを追加して構成します。consumer.sasl.mechanism=SCRAM-SHA-256 # 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.scram.ScramLoginModule 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/SCRAM を使用するには、次のプロパティを Replicator の JSON 構成ファイルに追加します。JAAS の構成のプロパティでは、接続のユーザーを構成するため、Replicator で使用する username
と password
を定義します。この例では、Replicator はブローカーにユーザー replicator
として接続します。
{
"name":"replicator",
"config":{
....
"src.kafka.security.protocol" : "SASL_SSL",
"src.kafka.sasl.mechanism" : "SCRAM-SHA-256",
"src.kafka.sasl.jaas.config" : "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"replicator\" password=\"replicator-secret\";",
....
}
}
}
参考
Confluent Replicator の構成例については、SASL のソース認証デモのスクリプト を参照してください。共通のセキュリティ構成のデモについては、Replicator のセキュリティデモ を参照してください。
SASL/SCRAM 認証を使用して送信先クラスター用に Confluent Replicator を構成するには、Replicator の JSON 構成を次の内容が含まれるように変更します。
{
"name":"replicator",
"config":{
....
"dest.kafka.security.protocol" : "SASL_SSL",
"dest.kafka.sasl.mechanism" : "SCRAM-SHA-256",
"dest.kafka.sasl.jaas.config" : "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"replicator\" password=\"replicator-secret\";",
....
}
}
}
さらに次のプロパティが Connect ワーカーに必要です。
sasl.mechanism=SCRAM-SHA-256
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="replicator" password="replicator-secret";
producer.sasl.mechanism=SCRAM-SHA-256
producer.security.protocol=SASL_SSL
producer.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule 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 アプリケーションのセキュリティを有効にします。さらに、以下のコンポーネントのセキュリティを構成します。
- Confluent Metrics Reporter: モニタリング対象の本稼働環境のクラスターで必須
- Confluent Monitoring Interceptor: Control Center のストリームモニタリングを使用している場合に必要
Control Center の SASL/SCRAM とセキュリティプロトコルを
etc/confluent-control-center/control-center.properties
ファイルで有効にします。confluent.controlcenter.streams.sasl.mechanism=SCRAM-SHA-256 # Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT confluent.controlcenter.streams.security.protocol=SASL_SSL
Control Center が Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ
username
とpassword
は、接続を構成するために、Control Center で使用されます。confluent.controlcenter.streams.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="confluent" \ password="confluent-secret";
Confluent Metrics Reporter¶
このセクションでは、Confluent Control Center と Auto Data Balancer で使用される Confluent Metrics Reporter の SASL/SCRAM を有効にする方法について説明します。
Confluent Metrics Reporter の SASL/SCRAM を構成するには、モニタリング対象となる本稼働環境のクラスター内にあるすべてのブローカーの server.properties
ファイルで、次のとおりに構成を変更します。
Confluent Metrics Reporter が有効であることを検証します。
metric.reporters=io.confluent.metrics.reporter.ConfluentMetricsReporter confluent.metrics.reporter.bootstrap.servers=kafka1:9093
Confluent Metrics Reporter で SASL/SCRAM メカニズムを有効にします。
confluent.metrics.reporter.sasl.mechanism=SCRAM-SHA-256 # 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 か所で有効にする方法について説明します。
- 一般クライアント
- Kafka Connect
- 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/SCRAM を構成する必要があります。
クライアントでインターセプターが構成されていることを検証します。
プロデューサーの場合
interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
コンシューマーの場合
interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
インターセプターに対して SASL のメカニズムとセキュリティプロトコルを構成します。
confluent.monitoring.interceptor.sasl.mechanism=SCRAM # Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT confluent.monitoring.interceptor.security.protocol=SASL_SSL
一意のユーザー名とパスワードを使用して、JAAS の構成のプロパティを構成します。
confluent.monitoring.interceptor.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="confluent" \ password="confluent-secret";
Kafka Connect 用のインターセプター¶
Kafka Connect で動作する Confluent Control Center のストリームモニタリングについては、Kafka Connect で Confluent Monitoring Interceptor の SASL/SCRAM を構成する必要があります。コネクターがソースかシンクかに応じて、次のプロパティを
connect-distributed.properties
に追加することで、Connect ワーカーを構成します。ソースコネクター:
producer
プレフィックスを使用して、Confluent Monitoring Interceptor の SASL メカニズムを構成します。producer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor producer.confluent.monitoring.interceptor.sasl.mechanism=SCRAM-SHA-256 # 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=SCRAM-SHA-256 # Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT consumer.confluent.monitoring.interceptor.security.protocol=SASL_SSL
ユーザー名とパスワードを使用して、JAAS の構成のプロパティを構成します。
ソースコネクター:
producer
プレフィックスを使用して、Confluent Monitoring Interceptor の JAAS 構成を構成します。producer.confluent.monitoring.interceptor.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="confluent" \ password="confluent-secret";
シンクコネクター:
consumer
プレフィックスを使用して、Confluent Monitoring Interceptor の JAAS 構成を指定します。consumer.confluent.monitoring.interceptor.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule 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": "SCRAM",
"src.consumer.confluent.monitoring.interceptor.security.protocol": "SASL_SSL",
"src.consumer.confluent.monitoring.interceptor.sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required \nusername=\"confluent\" \npassword=\"confluent-secret\";",
....
}
}
}
Schema Registry¶
重要
以下の設定を Schema Registry または REST Proxy に対して構成する場合、各パラメーターのプレフィックスとして confluent.license
を使用する必要があります。たとえば、sasl.mechanism
は confluent.license.sasl.mechanism
になります。
Schema Registry はスキーマを永続化するために Kafka を使用します。つまり、Kafka クラスターにデータを書き込むためのクライアントとして機能します。したがって、Kafka ブローカーでセキュリティが構成されている場合、Schema Registry もセキュリティを使用するように構成する必要があります。網羅的なリストについては、「Schema Registry の構成オプション」も参照してください。
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=SCRAM-SHA-256
Schema Registry が Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ
username
とpassword
は、接続のユーザーを構成するために Schema Registry で使用されます。この例では、Schema Registry はブローカーにユーザーschemaregistry
として接続します。kafkastore.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="schemaregistry" \ password="schemaregistry-secret";
REST Proxy¶
重要
以下の設定を Schema Registry または REST Proxy に対して構成する場合、各パラメーターのプレフィックスとして confluent.license
を使用する必要があります。たとえば、sasl.mechanism
は confluent.license.sasl.mechanism
になります。
Confluent REST Proxy を SASL でセキュアにするには、REST Proxy と Kafka クラスター間でセキュリティを構成する必要があります。
すべての構成オプションの網羅的なリストについては、「SASL の認証」を参照してください。
kafka-rest.properties
で SASL/SCRAM メカニズムを構成します。注釈
bootstrap.servers
の構成にSASL_PLAINTEXT://host:port
(またはSASL_SSL://host:port
)エンドポイントが設定されていることを確認してください。このように設定されていない場合、誤って非 SASL ポートへの SASL 接続を開いてしまいます。詳細については、「REST Proxy の構成オプション」の「bootstrap.servers
」を参照してください。bootstrap.servers=SASL_SSL://kafka1:9093 client.sasl.mechanism=SCRAM-SHA-256 # Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT client.security.protocol=SASL_SSL
REST Proxy が Kafka ブローカーに接続できる方法を記述するため、JAAS の構成プロパティを構成します。プロパティ
username
とpassword
は、接続のユーザーを構成するために、REST Proxy で使用されます。この例では、REST Proxy はブローカーにユーザーrestproxy
として接続します。client.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="restproxy" \ password="restproxy-secret";