Puede configurar la cifrado en reposo para una implementación de MongoDB gestionada por el Operador de Kubernetes utilizando 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 deseas habilitar el cifrado en reposo de KMIP para un recurso de MongoDB ya implementado, comunícate 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.
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
Configura la implementación para que use el servidor KMIP.
Configure los 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 configuras el ajuste spec.backup.encryption.kmip en tu recurso, las claves de API vinculadas con el valor de spec.credentials deben tener el rol de Global Owner.