4.9.2. TLS 暗号化

Kafka は、Kafka クライアントとの通信を暗号化するために TLS をサポートします。

TLS 暗号化およびサーバーの認証を使用するには、秘密鍵と公開鍵を含むキーストアを指定する必要があります。通常、これは Java Keystore(JKS)形式のファイルを使用して行われます。このファイルへのパスは、ssl.keystore.location プロパティーで設定されます。ssl.keystore.password プロパティーを使用して、キーストアを保護するパスワードを設定する必要があります。以下に例を示します。

ssl.keystore.location=/path/to/keystore/server-1.jks
ssl.keystore.password=123456

秘密鍵を保護するために、追加のパスワードが使用されることがあります。このようなパスワードは、ssl.key.password プロパティーを使用して設定できます。

Kafka は認証局によって署名されたキーと自己署名証明書を使用できます。認証局が署名した鍵の使用は、常に優先される方法である必要があります。クライアントが接続している Kafka ブローカーの ID を検証できるようにするには、証明書に、コモンネーム(CN)または Subject Alternative Names(SAN)としてアドバタイズされたホスト名が常に含まれている必要があります。

異なるリスナーに異なる SSL 設定を使用できます。ssl. で始まるすべてのオプションの前に listener.name.<NameOfTheListener>. を付けることができます。ここで、リスナーの名前は小文字の場合に常に必要になります。これにより、その特定のリスナーのデフォルトの SSL 設定が上書きされます。以下の例は、異なるリスナーに異なる SSL 設定を使用する方法を表しています。

listeners=INT1://:9092,INT2://:9093,REPLICATION://:9094
listener.security.protocol.map=INT1:SSL,INT2:SSL,REPLICATION:SSL

# Default configuration - will be used for listeners INT1 and INT2
ssl.keystore.location=/path/to/keystore/server-1.jks
ssl.keystore.password=123456

# Different configuration for listener REPLICATION
listener.name.replication.ssl.keystore.location=/path/to/keystore/server-1.jks
listener.name.replication.ssl.keystore.password=123456

追加の TLS 設定オプション

上記の主な TLS 設定オプションに加え、Kafka は TLS 設定を調整するための多くのオプションをサポートしています。たとえば、TLS / SSL プロトコルまたは暗号スイートを有効または無効にするには、次のコマンドを実行します。

ssl.cipher.suites
有効な暗号スイートの一覧。各暗号スイートは、TLS 接続に使用される認証、暗号化、MAC、鍵交換アルゴリズムの組み合わせです。デフォルトでは、利用可能なすべての暗号スイートが有効になります。
ssl.enabled.protocols
有効な TLS / SSL プロトコルの一覧。デフォルトは TLSv1.2,TLSv1.1,TLSv1 です。

サポートされる Kafka ブローカー設定オプションの完全リストは、付録A ブローカー設定パラメーター を参照してください。