Puedes configurar Cifrado en reposo para una implementación de MongoDB administrada por el operador de Kubernetes mediante un servidor KMIP.
Considerations
Antes de configurar el cifrado en reposo, considera lo siguiente:
Debe tener un servidor de KMIP en ejecución.
No puedes cambiar tu implementación que utiliza cifrado en reposo basado en archivos de claves a cifrado en reposo basado en KMIP.
Si deseas habilitar el cifrado KMIP en reposo para un recurso MongoDB ya implementado, contacta con el soporte de MongoDB.
Procedimiento
El siguiente procedimiento describe cómo configurar una configuración de muestra KMIP para un set de réplicas de MongoDB. Ajusta los nombres de archivos y rutas, el namespace de Kubernetes, los nombres de recursos y la versión de MongoDB según sea necesario para tu implementación.
Crea el ConfigMap de la CA.
Ejecute el siguiente comando para crear un ConfigMap para albergar el CA que firmó el certificado del servidor KMIP:
kubectl -n mongodb create configmap mongodb-kmip-certificate-authority-pem --from-file=ca.pem
Cree el secreto para el certificado de cliente y la clave privada PEM.
Ejecuta el siguiente comando para crear un secreto que contenga el certificado de cliente concatenado y la llave privada para obtener la clave maestra del servidor KMIP:
kubectl -n mongodb create secret generic mongodb-kmip-client-pem --from-file=cert.pem
Configure la implementación para usar el servidor KMIP.
Configura el additionalMongodConfig ajustes en su recurso personalizado especificación para usar el servidor KMIP. Por ejemplo:
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
Importante
Si configura el Configuración spec.backup.encryption.kmip en su recurso, las claves de API vinculadas con el valor de spec.credentials deben tener el Global Owner rol.