Puede configurar el 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, considere lo siguiente:
Debe tener un servidor 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 desea habilitar el cifrado KMIP en reposo para un recurso MongoDB ya implementado, comuníquese con el soporte de MongoDB.
Procedimiento
El siguiente procedimiento describe cómo configurar un ejemplo de KMIP para un conjunto de réplicas de MongoDB. Ajuste los nombres y rutas de archivo, el espacio de nombres de Kubernetes, los nombres de los recursos y la versión de MongoDB según sea necesario para su implementación.
Crea el ConfigMap de la CA.
Ejecute el siguiente comando para crear un ConfigMap que contenga la 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.
Ejecute el siguiente comando para crear un secreto que contenga el certificado de cliente concatenado y la clave privada para extraer 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 utilizar el servidor KMIP.
Configurar el additionalMongodConfig Configuración en la especificación de recursos personalizados 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 la configuración en spec.backup.encryption.kmip su recurso, las claves API vinculadas con el valor de deben spec.credentials Global Owner tener el rol.