En esta guía puedes aprender cómo gestionar tus claves de cifrado con un Sistema de Gestión de Claves (KMS) en tu aplicación con Queryable Encryption habilitado.
Componentes de cifrado
MongoDB utiliza los siguientes componentes para realizar Queryable Encryption:
Llaves de cifrado de datos (DEK)
Llaves maestras de cliente (CMK)
Colecciones de Bóvedas de Llaves
Sistema de gestión de claves (KMS)
Para obtener más información sobre las claves y los almacenes de claves, consulte Claves y almacenes de claves.
Rotar llaves de cifrado usando mongosh
Se pueden rotar llaves de cifrado utilizando el
KeyVault.rewrapManyDataKey() método. El método rewrapManyDataKey descifra automáticamente varias claves de datos y las vuelve a cifrar utilizando una llave maestra de cliente especificada. Luego actualiza las claves rotadas en la Colección de Bóvedas de Llaves. Este método te permite rotar las claves de cifrado en función de dos argumentos opcionales:
Un documento de filtro de query utilizado para especificar qué claves rotar. Si ninguna clave de datos coincide con el filtro dado, no se rota ninguna clave. Omite el filtro para rotar todas las claves en tu Colección de Bóvedas de Llaves.
Un objeto que representa una nueva llave maestra de cliente. Omitir este objeto para rotar las claves de datos usando sus CMKs actuales.
El método rewrapManyDataKey tiene la siguiente sintaxis:
let keyVault = db.getMongo().getKeyVault() keyVault.rewrapManyDataKey( { "<Your custom filter>" }, { provider: "<KMS provider>", masterKey: { "<dataKeyOpts Key>" : "<dataKeyOpts Value>" } } )
Servicios de gestión de claves admitidos
La Queryable Encryption admite los siguientes proveedores de sistemas de gestión de claves:
Amazon Web Services KMS
Azure Key Vault
Google Cloud KMS
Cualquier sistema de gestión de claves compatible con KMIP.
Proveedor de clave local (solo para pruebas)
Para aprender más sobre estos proveedores, incluidos diagramas que muestran cómo tu aplicación los utiliza para realizar el Queryable Encryption, consulta Proveedores KMS.
Motivos para usar un KMS remoto
Usar un sistema remoto de gestión de claves para administrar tu Clave maestra de cliente (CMK) tiene las siguientes ventajas sobre el uso de tu sistema de archivos local para host la CMK:
Almacenamiento seguro de la clave con auditoría de acceso
Reducción del riesgo de problemas de permisos de acceso
Disponibilidad y distribución de la clave para clientes remotos
Copia de seguridad y recuperación automatizadas de claves
Gestión centralizada del ciclo de vida de las claves de cifrado
Además, para los siguientes proveedores de KMS, tu KMS cifra y descifra de forma remota tu clave de cifrado de datos, lo que garantiza que tu clave maestra de cliente nunca se exponga a tu aplicación habilitada para Queryable Encryption:
Amazon Web Services KMS
Azure Key Vault
Google Cloud KMS
Obtén más información
Para guías que detallen cómo configurar una aplicación habilitada para Encriptación Consultable con cada uno de los proveedores de KMS admitidos, consulta las siguientes páginas: