kafkaメッセージ暗号化(SASL/PLAIN)
2967 ワード
kafkaメッセージ暗号化(SASL/PLAIN)
具体的な配置方式の公式サイトはすでにはっきり言って(できるだけ公式サイトに行って见ます)公式サイトの配置は以下のいくつかのステップに分けます1、confファイルディレクトリの下にファイルkafkaを追加するserver_jaas.conf(ファイルディレクトリファイル名随意)内容は以下の である.
最初の行は、なぜ2行目のクライアントが接続するときにこのユーザー名adminを使用できるのか分からない.最後の2行は、adminパスワードを使用してadmin-secretを使用してaliceパスワードを使用してalice-secretを使用することを意味している.どのように拡張するかは知っているはずだ.2、プロファイルの変更 一般起動コマンドの後に、プロファイルがserverであることが指定されます.propertiesは、次の構成を例に追加するためにカスタマイズすることもできます.
ここでは元のlistenersを上のように変更し、プロトコルを一致させなければならない. 3、起動ファイル の変更
winの下とliunixは少し違いますが、修正したファイルのファイル名は同じkafka-run-classで一番下を見つけました(私のはwinです)
追加
上の3ステップでkafkaサービスを処理したら起動できます
Javaクライアント構成
ここでやるべきことは少ないですが、プロファイルに次のような構成を加えればいいです.
上記の構成について簡単に説明しますgroup-idこれは機密を有効にした後に構成しなければなりませんさもなくば@KafkaListener annotationを間違えます;a group.id is required when group management is used. これはサーバーがこの消費者を識別するのではないかと思います.idでsecurityを識別します.protocol: SASL_PLAINTEXT sasl.mechanism:PLAINの上の2つはサーバ側で使用するものと一致しなければならない最後のこの構成sasl.jaas.configの後の値は必ずセミコロンで終わります.また、この値はファイルに保存することもできますkafka.client.conf
次にjvmパラメータ-Djavaを使用する.security.auth.login.config=…/kafka.client.confも可能です
また、同じユーザー名とパスワードが複数のjavaクライアントで使用できます.
具体的な配置方式の公式サイトはすでにはっきり言って(できるだけ公式サイトに行って见ます)公式サイトの配置は以下のいくつかのステップに分けます
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret"
user_alice="alice-secret";
};
最初の行は、なぜ2行目のクライアントが接続するときにこのユーザー名adminを使用できるのか分からない.最後の2行は、adminパスワードを使用してadmin-secretを使用してaliceパスワードを使用してalice-secretを使用することを意味している.どのように拡張するかは知っているはずだ.
listeners=SASL_SSL(SASL_PLAINTEXT)://host.name:port
security.inter.broker.protocol=SASL_SSL(SASL_PLAINTEXT)
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
ここでは元のlistenersを上のように変更し、プロトコルを一致させなければならない.
winの下とliunixは少し違いますが、修正したファイルのファイル名は同じkafka-run-classで一番下を見つけました(私のはwinです)
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*
rem echo.
rem echo %COMMAND%
rem echo.
%COMMAND%
追加
set KAFKA_SASL_OPTS=-Djava.security.auth.login.config=D:/myprogram/kafka/config/kafka_server_jaas.conf
set
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% %KAFKA_SASL_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*
COMMAND KAFKA_SASL_OPTS -cp
上の3ステップでkafkaサービスを処理したら起動できます
Javaクライアント構成
ここでやるべきことは少ないですが、プロファイルに次のような構成を加えればいいです.
spring:
kafka:
bootstrap-servers: 127.0.0.1:9092
consumer:
group-id: tst-1
auto-offset-reset: earliest
properties:
security.protocol: SASL_PLAINTEXT
sasl.mechanism: PLAIN
#sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="alice-secret";
上記の構成について簡単に説明しますgroup-idこれは機密を有効にした後に構成しなければなりませんさもなくば@KafkaListener annotationを間違えます;a group.id is required when group management is used. これはサーバーがこの消費者を識別するのではないかと思います.idでsecurityを識別します.protocol: SASL_PLAINTEXT sasl.mechanism:PLAINの上の2つはサーバ側で使用するものと一致しなければならない最後のこの構成sasl.jaas.configの後の値は必ずセミコロンで終わります.また、この値はファイルに保存することもできますkafka.client.conf
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/kafka_client.keytab"
principal="[email protected]";
};
次にjvmパラメータ-Djavaを使用する.security.auth.login.config=…/kafka.client.confも可能です
また、同じユーザー名とパスワードが複数のjavaクライアントで使用できます.