X. 509証明書を使用して、Kubernetes クラスター MongoDB のマルチ配置でクライアント アプリケーションを認証するように Kubernetes Operator を構成できます。
X. 509証明書を使用して複数の Kubernetes クラスター MongoDB の配置を保護するには、すべてのアクションを中央クラスターで実行します。 Kubernetes Operator は X. 509構成を各ノード クラスターに伝達し、各ノード クラスターの Kubernetes Operator 構成を更新します。
前提条件
TLS暗号化を使用して複数の Kubernetes クラスター MongoDB 配置を保護する前に、次のタスクを完了してください。
プロジェクト レベルで X.509 認証を有効にすると、すべてのエージェントが MongoDB 配置で通信するときに X.509 クライアント認証を使用するように構成されます。
X.509 クライアント認証には次のいずれかが必要です。
MongoDB MultiCluster リソースの X.509 認証の有効化
エージェントの X.509 証明書MongoDBMultiCluster
( リソースのシークレットを作成します。
kubectl
コマンドを実行して、エージェントの X.509 証明書を保存する新しいシークレットを作成します。
kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \ create secret tls <prefix>-<metadata.name>-agent-certs \ --cert=<agent-tls-cert> \ --key=<agent-tls-key>
リソースを更新して MongoDBMultiCluster
X 509認証を有効にします。
Kubernetes Operator MongoDB MultiCluster リソース仕様 のセキュリティ設定を使用し て MongoDB MultiCluster カスタム リソースを更新します 。結果の構成は、次の例のようになります。
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 6.0.0-ent type: ReplicaSet persistent: false duplicateServiceObjects: true credentials: my-credentials opsManager: configMapRef: name: my-project security: tls: ca: custom-ca certsSecretPrefix: <prefix> authentication: enabled: true modes: ["X509"] agents: mode: "X509" clusterSpecList: - clusterName: ${MDB_CLUSTER_1_FULL_NAME} members: 3 - clusterName: ${MDB_CLUSTER_2_FULL_NAME} members: 2 - clusterName: ${MDB_CLUSTER_3_FULL_NAME} members: 3 The |k8s-op-short| copies the ConfigMap with the |certauth| created in the central cluster to each member cluster, generates a concatenated |pem| secret, and distributes it to the member clusters.
MongoDBMultiCluster
リソースがを実行中していることを確認します。
ノードクラスターの場合は、次のコマンドを実行して、MongoDB ポッドが実行状態であることを確認します。
kubectl get pods \ --context=$MDB_CLUSTER_1_FULL_NAME \ --namespace mongodb kubectl get pods \ --context=$MDB_CLUSTER_2_FULL_NAME \ --namespace mongodb kubectl get pods \ --context=$MDB_CLUSTER_3_FULL_NAME \ --namespace mongodb 中央クラスターで次のコマンドを実行し、
MongoDBMultiCluster
リソースが実行状態であることを確認します。kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace mongodb \ get mdbmc multi-replica-set -o yaml -w
MongoDB マルチクラスター リソースの X.509 証明書の更新
すでに X.509 証明書を作成している場合は、次の手順を使用して定期的に更新してください。
MongoDBMultiCluster
リソースのシークレットを更新します。
kubectl
既存のMongoDBMultiCluster
シークレット を更新するには、この コマンドを実行します リソースの証明書を保存する:
kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \ create secret tls <prefix>-<metadata.name>-cert \ --cert=<resource-tls-cert> \ --key=<resource-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -
エージェントの X.509 証明書のシークレットを更新します。
MongoDBMultiCluster
リソースエージェント証明書を保存する既存のシークレットを更新するには、 kubectl
コマンドを実行します。
kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \ create secret tls <prefix>-<metadata.name>-agent-certs \ --cert=<agent-tls-cert> \ --key=<agent-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -