You can configure encryption at rest for a MongoDB deployment managed by the Kubernetes Operator by using a KMIP server.
Considerations
保管時の暗号化を構成する前に、以下の点を考慮してください。
実行中のKMIPサーバーが必要です。
キーファイル ベースの保管時の暗号化を使用する配置をKMIPベースの保管時の暗号化に移行することはできません。
If you want to enable KMIP encryption at rest for an already deployed MongoDB resource, contact MongoDB Support.
手順
次の手順では、MongoDB レプリカセットのサンプルKMIP構成を構成する方法について説明します。 配置に必要なファイル名とパス、Kubernetes 名前空間、リソース名、MongoDB バージョンを調整します。
CA の ConfigMap を作成します。
KMIP サーバーの証明書に署名した CA を保持する ConfigMap を作成するには、次のコマンドを実行します。
kubectl -n mongodb create configmap mongodb-kmip-certificate-authority-pem --from-file=ca.pem
クライアント証明書と秘密キー PEM のシークレットを作成します。
以下のコマンドを実行して シークレット を作成します 、 KMIP サーバーからマスター キーをチェックアウトするために、連結されたクライアント証明書と秘密キーを保持します。
kubectl -n mongodb create secret generic mongodb-kmip-client-pem --from-file=cert.pem
KMIPサーバーを使用するように配置を構成します。
additionalMongodConfigKMIP サーバーを使用するために、 カスタム リソース の仕様で 設定を構成します。例:
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: kmip namespace: mongodb spec: type: ReplicaSet members: 3 backup: encryption: kmip: client: clientCertificatePrefix: "mdb" additionalMongodConfig: security: enableEncryption: true kmip: clientCertificateFile: /kmip/cert/cert.pem serverCAFile: /kmip/ca/ca.pem serverName: pykmip-server.pymongo port: 5696 featureCompatibilityVersion: '8.0' version: 8.0.0 opsManager: configMapRef: name: my-project credentials: my-credentials podSpec: podTemplate: spec: containers: - name: mongodb-enterprise-database volumeMounts: - name: mongodb-kmip-client-pem mountPath: /kmip/cert - name: mongodb-kmip-certificate-authority-pem mountPath: /kmip/ca volumes: - name: mongodb-kmip-client-pem secret: secretName: mongodb-kmip-client-pem - name: mongodb-kmip-certificate-authority-pem configMap: name: mongodb-kmip-certificate-authority-pem items: - key: ca.pem path: ca.pem
重要
If you set the spec.backup.encryption.kmip setting in your resource, the API keys linked with the value of spec.credentials must have the Global Owner role.