6.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 ブローカーのアイデンティティーを検証できるようにするには、証明書に Common Name (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/replication.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
です。
6.2.1. TLS 暗号化の有効化
この手順では、Kafka ブローカーで暗号化を有効にする方法を説明します。
前提条件
- Streams for Apache Kafka が 各ホストにインストールされており、設定ファイルが使用可能である。
手順
- クラスター内のすべての Kafka ブローカーの TLS 証明書を生成します。証明書には、Common Name または Subject Alternative Name にアドバタイズされたアドレスおよびブートストラップアドレスが必要です。
すべてのクラスターノードの Kafka 設定プロパティーファイルを次のように編集します。
-
listener.security.protocol.map
フィールドを変更して、TLS 暗号化を使用するリスナーにSSL
プロトコルを指定します。 -
ssl.keystore.location
オプションを、ブローカー証明書を持つ JKS キーストアへのパスに設定します。 ssl.keystore.password
オプションを、キーストアの保護に使用したパスワードに設定します。以下に例を示します。
listeners=UNENCRYPTED://:9092,ENCRYPTED://:9093,REPLICATION://:9094 listener.security.protocol.map=UNENCRYPTED:PLAINTEXT,ENCRYPTED:SSL,REPLICATION:PLAINTEXT ssl.keystore.location=/path/to/keystore/server-1.jks ssl.keystore.password=123456
-
- Kafka ブローカーを (再) 起動します。