4.2. 仮想クラスターの設定


Kafka クラスターは、プロキシーによって仮想クラスターとして表されます。クライアントは実際のクラスターではなく仮想クラスターに接続します。Streams for Apache Kafka Proxy をデプロイすると、プロキシーに仮想クラスターを作成するための設定が含まれています。

仮想クラスターにはターゲットクラスターが 1 つだけありますが、複数の仮想クラスターが同じクラスターをターゲットにすることができます。各仮想クラスターはターゲットクラスター上の単一のリスナーをターゲットとするため、Kafka 側の複数のリスナーはプロキシーによって複数の仮想クラスターとして表されます。クライアントは、bootstrap_servers アドレスを使用して仮想クラスターに接続します。仮想クラスターには、ターゲットクラスター内の各ブローカーにマップされるブートストラップアドレスがあります。クライアントがプロキシーに接続すると、アドレスを書き換えることで通信がターゲットブローカーにプロキシーされます。クライアントへの応答は、仮想クラスターの適切なネットワークアドレスを反映するように書き換えられます。

クライアントからターゲットクラスターへの仮想クラスター接続を保護できます。

Streams for Apache Kafka Proxy では、PEM (Privacy Enhanced Mail)、PKCS #12 (Public-Key Cryptography Standards)、または JKS (Java KeyStore) キーストア形式の鍵と証明書を使用できます。

4.2.1. クライアントからの接続の保護

仮想クラスターへのクライアント接続を保護するには、次の手順を実行して仮想クラスターで TLS を設定します。

認証局から仮想クラスターの CA (証明局) 証明書を取得します。証明書を要求するときは、それが仮想クラスターのブートストラップとブローカーのアドレスの名前と一致していることを確認してください。これには、ワイルドカード証明書とサブジェクト別名 (SAN) が必要になる場合があります。

tls プロパティーを使用して、仮想クラスター設定で TLS 認証情報を指定します。

PKCS #12 設定の例

virtualClusters:
  my-cluster-proxy:
    tls:
      key:
        storeFile: <path>/server.p12  1
        storePassword:
          passwordFile: <path>/store.password 2
        keyPassword:
          passwordFile: <path>/key.password 3
        storeType: PKCS12 4
      # ...

1
仮想クラスターのパブリック CA 証明書用の PKCS #12 ストア。
2
PKCS #12 ストアを保護するためのパスワード。
3
(オプション) 鍵のパスワード。パスワードが指定されていない場合は、キーストアのパスワードも鍵の復号化に使用されます。
4
(オプション) キーストアのタイプ。キーストアのタイプが指定されていない場合は、デフォルトの JKS (Java Keystore) タイプが使用されます。
注記

実稼働設定では、Kafka クライアントと仮想クラスターで TLS が推奨されます。

PEM 設定の例

virtualClusters:
  my-cluster-proxy:
    tls:
      key:
        privateKeyFile: <path>/server.key   1
        certificateFile: <path>/server.crt 2
        keyPassword:
          passwordFile: <path>/key.password 3
# …

1
仮想クラスターの秘密鍵。
2
仮想クラスターのパブリック CA 証明書。
3
(オプション) 鍵のパスワード。

必要に応じて、insecure プロパティーを設定して信頼を無効にし、証明書の有効性に関係なく、Kafka クラスターとの安全でない接続を確立します。ただし、このオプションは実稼働環境での使用には推奨されません。

安全でない TLS を有効にする例

virtualClusters:
  demo:
    targetCluster:
      bootstrap_servers: myprivatecluster:9092
      tls:
        trust:
          insecure: true 1
      #...
# …

1
安全でない TLS を有効にします。

4.2.2. ターゲットクラスターへの接続のセキュリティー保護

ターゲットクラスターへの仮想クラスター接続を保護するには、仮想クラスターで TLS を設定します。ターゲットクラスターは、TLS を使用するようにすでに設定されている必要があります。

targetCluster.tls プロパティーを使用して仮想クラスター設定の TLS を指定します。

OpenShift プラットフォームから信頼を継承するには、空のオブジェクト ({}) を使用します。このオプションは、ターゲットクラスターがパブリック CA によって署名された TLS 証明書を使用している場合に適しています。

TLS のターゲットクラスター設定の例

virtualClusters:
  my-cluster-proxy:
    targetCluster:
      bootstrap_servers: my-cluster-kafka-bootstrap.kafka.svc.cluster.local:9093
      tls: {}
      #...

プライベート CA によって署名された TLS 証明書を使用している場合は、ターゲットクラスターのトラストストア設定を追加する必要があります。

ターゲットクラスターのトラストストア設定の例

virtualClusters:
  my-cluster-proxy:
    targetCluster:
      bootstrap_servers: my-cluster-kafka-bootstrap.kafka.svc.cluster.local:9093
      tls:
        trust:
          storeFile: <path>/trust.p12 1
          storePassword:
            passwordFile: <path>/store.password 2
          storeType: PKCS12 3
      #...

1
Kafka クラスターのパブリック CA 証明書用の PKCS #12 ストア。
2
パブリック Kafka クラスター CA 証明書にアクセスするためのパスワード。
3
(オプション) キーストアのタイプ。キーストアのタイプが指定されていない場合は、デフォルトの JKS (Java Keystore) タイプが使用されます。

mTLS の場合、仮想クラスターのキーストア設定も追加できます。

mTLS のキーストアとトラストストアの設定例

virtualClusters:
  my-cluster-proxy:
    targetCluster:
      bootstrap_servers: my-cluster-kafka-bootstrap.kafka.svc.cluster.local:9093:9092
      tls:
        key:
          privateKeyFile: <path>/client.key 1
          certificateFile: <path>/client.crt 2
        trust:
          storeFile: <path>/server.crt
          storeType: PEM
# ...

1
仮想クラスターの秘密鍵。
2
仮想クラスターのパブリック CA 証明書。

実稼働環境外でテストする目的で、insecure プロパティーを true に設定して TLS をオフにし、Streams for Apache Kafka Proxy が任意の Kafka クラスターに接続できるようにすることができます。

TLS をオフにする設定例

virtualClusters:
  my-cluster-proxy:
    targetCluster:
      bootstrap_servers: myprivatecluster:9092
      tls:
        trust:
          insecure: true
      #...

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.