X.509 による安全な配置
項目一覧
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 -