Puede configurar el cifrado en reposo para una implementación de MongoDB administrada por el operador de Kubernetes mediante el uso de un servidor KMIP.
Considerations
Antes de configurar el cifrado en reposo, considera lo siguiente:
Debes tener un servidor KMIP en funcionamiento.
No puedes cambiar tu implementación que utiliza cifrado en reposo basado en archivo de claves a cifrado en reposo basado en KMIP.
Si desea habilitar el cifrado KMIP en reposo para un recurso de MongoDB ya implementado, póngase en contacto con el soporte técnico de MongoDB.
Procedimiento
El siguiente procedimiento describe cómo configurar una configuración de KMIP de ejemplo para un conjunto de réplicas de MongoDB. Ajuste los nombres y rutas de los archivos, 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.
Cree 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.
Ejecuta el siguiente comando para crear un secreto que contenga el certificado de cliente concatenado y la clave privada para recuperar la clave maestra desde el servidor KMIP:
kubectl -n mongodb create secret generic mongodb-kmip-client-pem --from-file=cert.pem
Configure la implementación para que utilice el servidor KMIP.
Configure los ajustes additionalMongodConfig en la especificación de su recurso personalizado 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 ajuste spec.backup.encryption.kmip en su recurso, las claves API vinculadas con el valor de spec.credentials deben tener el rol Global Owner.