2.4.8. Kafka MirrorMaker 2.0 デプロイメントの保護
この手順は、MirrorMaker2.0 のデプロイメントを保護するために必要な設定の概要を説明しています。
ソース Kafka クラスターとターゲット Kafka クラスターには別々の設定が必要です。また、MirrorMaker がソースおよびターゲットの Kafka クラスターに接続するために必要な認証情報を提供するために、個別のユーザー設定が必要です。
Kafka クラスターの場合、OpenShift クラスター内のセキュア接続用の内部リスナーと、OpenShift クラスター外の接続用の外部リスナーを指定します。
認証および許可メカニズムを設定できます。ソースおよびターゲットの Kafka クラスターに実装されているセキュリティーオプションは、MirrorMaker 2.0 に実装されているセキュリティーオプションと互換性がある必要があります。
クラスターとユーザー認証情報を作成したら、セキュアな接続のために MirrorMaker 設定でそれらを指定します。
この手順では、Cluster Operator によって生成された証明書が使用されますが、独自の証明書をインストール してそれらを置き換えることができます。外部認証局によって管理される Kafka リスナー証明書を使用するようにリスナーを設定 することもできます。
作業を開始する前の注意事項
この手順を開始する前に、AMQ Streams が提供する 設定ファイルの例 を確認してください。TLS または SCRAM-SHA-512 認証を使用して MirrorMaker 2.0 のデプロイメントを保護する場合の例が含まれています。例では、OpenShift クラスター内で接続するための内部リスナーを指定しています。
例には、ソースおよびターゲットの Kafka クラスターでの操作を可能にするために MirrorMaker 2.0 が必要とする ACL も示されています。
前提条件
- AMQ Streams が実行されている
- ソースクラスターとターゲットクラスターの namespace が分離されている
この手順では、ソースとターゲットの Kafka クラスターが別々の namespace にインストールされていることを前提としています。Topic Operator を使用する場合は、これを行う必要があります。Topoic Operator は、指定された namespace 内の単一クラスターのみをモニタリングします。
クラスターを namespace に分割することにより、クラスターシークレットをコピーして、namespace の外部からアクセスできるようにする必要があります。MirrorMaker 設定でシークレットを参照する必要があります。
手順
2 つの
Kafka
リソースを設定します。1 つはソース Kafka クラスターを保護するためのもので、もう 1 つはターゲット Kafka クラスターを保護するためのものです。認証用のリスナー設定を追加し、認可を有効にすることができます。
この例の場合、内部リスナーは TLS 暗号化と認証を使用して Kafka クラスター用に設定されています。Kafka の
simple
認証が有効になっています。TLS 認証を使用したソース Kafka クラスターの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 認証を使用したターゲット Kafka クラスターの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 別の namespace で
Kafka
リソースを作成または更新します。oc apply -f <kafka_configuration_file> -n <namespace>
oc apply -f <kafka_configuration_file> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Operator はリスナーを作成し、クラスターおよびクライアント認証局 (CA) 証明書を設定して Kafka クラスター内で認証を有効にします。
証明書は、シークレット
<cluster_name>-cluster-ca-cert
に作成されます。2 つの
KafkaUser
リソースを設定します。1 つはソース Kafka クラスターのユーザー用で、もう 1 つはターゲット Kafka クラスターのユーザー用です。-
対応するソースおよびターゲットの Kafka クラスターと同じ認証および認可タイプを設定します。たとえば、ソース Kafka クラスターの
Kafka
設定でtls
認証とsimple
認可タイプを使用した場合は、KafkaUser
設定でも同じものを使用します。 ソースおよびターゲットの Kafka クラスターでの操作を可能にするために MirrorMaker 2.0 が必要とする ACL を設定します。
ACL は、内部 MirrorMaker コネクター、および基盤となる Kafka Connect フレームワークによって使用されます。
TLS クライアント認証のソースユーザーの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS クライアント認証のターゲットユーザーの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記type
をtls-external
に設定することにより、User Operator の外部で発行された証明書を使用できます。詳細については、User authentication を参照してください。-
対応するソースおよびターゲットの Kafka クラスターと同じ認証および認可タイプを設定します。たとえば、ソース Kafka クラスターの
ソースおよびターゲットの Kafka クラスター用に作成した各 namespace で、
KafkaUser
リソースを作成または更新します。oc apply -f <kafka_user_configuration_file> -n <namespace>
oc apply -f <kafka_user_configuration_file> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow User Operator はクライアント (MirrorMaker) に対応するユーザーを作成すると共に、選択した認証タイプに基づいて、クライアント認証に使用されるセキュリティークレデンシャルを作成します。
User Operator は、
KafkaUser
リソースと同じ名前の新しいシークレットを作成します。シークレットには、TLS クライアント認証の秘密鍵と公開鍵が含まれます。公開鍵は、クライアント認証局 (CA) によって署名されたユーザー証明書に含まれます。ソースおよびターゲットの Kafka クラスターに接続するための認証の詳細を使用して
KafkaMirrorMaker2
リソースを設定します。TLS 認証を使用した MirrorMaker 2.0 の設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ソース Kafka クラスターの TLS 証明書。それらが別の namespace にある場合は、Kafka クラスターの namespace からクラスターシークレットをコピーします。
- 2
- TLS mechanism を使用してソース Kafka クラスターにアクセスするためのユーザー認証。
- 3
- ターゲット Kafka クラスターの TLS 証明書。
- 4
- ターゲット Kafka クラスターにアクセスするためのユーザー認証。
ターゲット Kafka クラスターと同じ namespace で
KafkaMirrorMaker2
リソースを作成または更新します。oc apply -f <mirrormaker2_configuration_file> -n <namespace_of_target_cluster>
oc apply -f <mirrormaker2_configuration_file> -n <namespace_of_target_cluster>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow