Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes 演算子
/ /

X.509 による内部認証の保護

項目一覧

このガイドでは、次の設定方法について説明します。

  • マルチ Kubernetes クラスター MongoDB 配置内の各クラスターの MongoDB ノード間の X. 509内部認証

  • クライアントから MongoDB インスタンスへの X.509 認証。

TLS暗号化を使用して複数の Kubernetes クラスター MongoDB 配置を保護する前に、次のタスクを完了してください。

  • マルチクラスター クイック スタートの前提条件 の手順に従います。

  • TLS 暗号化されたマルチ Kubernetes クラスターを配置します。

  • Kubernetes Operator の認証情報を作成します。

プロジェクト レベルで X.509 認証を有効にすると、すべてのエージェントが MongoDB 配置で通信するときに X.509 クライアント認証を使用するように構成されます。

X.509 クライアント認証には次のいずれかが必要です。

  • Cloud Manager

  • Operator バージョンとMongoDB Ops Manager 互換性 のある バージョン。Kubernetes

1

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>
2

kubectlコマンドを実行して、内部クラスター の X.509 証明書を保存する新しいシークレットを作成します。 メンバー クラスターはMongoDBMultiClusterリソースで定義されます。

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \
--namespace=<metadata.namespace> \
create secret tls <prefix>-<metadata.name>-clusterfile \
--cert=<resource-clusterfile-tls-cert> \
--key=<resource-clusterfile-tls-key>
3

Kubernetes Operator MongoDB MultiCluster リソース仕様 のセキュリティ設定を使用し て MongoDB MultiCluster カスタム リソースを更新しますspec.authenticationの下にinternalCluster設定を追加し、それを"X509"に設定します。 結果の構成は、次の例のようになります。

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:
a: custom-ca
certsSecretPrefix: <prefix>
authentication:
enabled: true
modes: ["X509"]
agents:
mode: "X509"
internalCluster: "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.
4
  1. ノードクラスターの場合は、次のコマンドを実行して、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
  2. 中央クラスターで次のコマンドを実行し、 MongoDBMultiClusterリソースが実行状態であることを確認します。

    kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \
    --namespace mongodb \
    get mdbmc multi-replica-set -o yaml -w

すでに証明書を作成している場合は、次の手順で定期的に更新してください。

1

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 -
2

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 -
3

kubectlコマンドを実行して、 MongoDBMultiClusterリソースの内部ノードの X.509 証明書を保存する既存のシークレットを更新します。

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \
--namespace=<metadata.namespace> \
create secret tls <prefix>-<metadata.name>-clusterfile \
--cert=<resource-clusterfile-tls-cert> \
--key=<resource-clusterfile-tls-key> \
--dry-run=client \
-o yaml | kubectl apply -f -

戻る

X.509 による安全な配置