En esta guía, puede aprender a administrar sus claves de cifrado con un sistema de administración de claves (KMS) en su aplicación.
Overview
Este procedimiento le muestra cómo rotar las claves de cifrado para el cifrado consultable mediante
mongoshLa rotación de DEKs consiste en reenvolverlas con una nueva Clave Maestra del Cliente, por lo que los términos "rotar" y "reenvolver" a veces se usan indistintamente.
Después de completar esta guía, debería poder rotar su clave maestra de cliente(CMK) en su sistema de administración de claves y luego volver a envolver las DEK existentes en su colección Key Vault con su nueva CMK.
Advertencia
Al rotar las claves, confirme que no se utilicen para cifrar ninguna clave ni dato antes de eliminarlas. Si elimina una DEK, todos los campos cifrados con ella quedarán permanentemente ilegibles. Si elimina una CMK, todos los campos cifrados con una DEK que la utilice quedarán permanentemente ilegibles.
Información relacionada
Para una explicación detallada de los conceptos incluidos en este procedimiento, consulta los temas a continuación.
Para obtener más información sobre claves y bóvedas de claves, consulte Claves y bóvedas de claves. Para ver una lista de proveedores de KMS compatibles, consulte la página Proveedores de KMS.
Para obtener tutoriales que detallan cómo configurar una aplicación habilitada para cifrado consultable con cada uno de los proveedores de KMS compatibles, consulte las siguientes páginas:
Procedimiento
Rota tu clave maestra de cliente en tu sistema de gestión de claves
El proceso para rotar su CMK depende de su proveedor de KMS. Para más información, consulte la documentación de su proveedor de claves:
Azure: Configurar la rotación automática de claves criptográficas en Azure Key Vault
GCP: Rotar una clave
Una vez que se rota la llave maestra de cliente, MongoDB la utiliza para proteger todas las nuevas DEK. Para volver a envolver las DEK existentes, continúa con los siguientes pasos.
Gire sus claves de cifrado de datos utilizando KeyVault.rewrapManyDataKey()
El método descifra KeyVault.rewrapManyDataKey() automáticamente varias claves de cifrado de datos y las vuelve a cifrar utilizando la CMK especificada. A continuación, actualiza las claves en la colección Key Vault.
El método tiene la siguiente sintaxis:
let keyVault = db.getMongo().getKeyVault() keyVault.rewrapManyDataKey( { "<Query filter document>" }, { provider: "<KMS provider>", masterKey: { "<dataKeyOpts Key>" : "<dataKeyOpts Value>" } } )
Especifica un documento de filtro de query para seleccionar las claves a rotar, u omite el argumento para rotar todas las claves en la Colección de Bóvedas de Llaves
Si especifica un documento de filtro de consulta, pero no coincide ninguna clave, entonces no se rota ninguna clave.
Especifique el proveedor de KMS
Especifique
masterKeyutilizando la nueva CMK u omita el argumento para rotar claves utilizando su CMK existente
Sus DEK se mantienen intactas tras reempaquetarlas con la nueva CMK. El proceso de rotación de claves es fluido y no interrumpe su aplicación.