En esta guía, puede aprender a administrar sus claves de cifrado con un sistema de administració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
Sistemade gestión de claves (KMS)
Para obtener más información sobre claves y bóvedas 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 consulta que se utiliza para especificar las claves que se rotarán. Si ninguna clave de datos coincide con el filtro especificado, no se rota ninguna clave. Omita el filtro para rotar todas las claves de su colección de almacén de claves.
Un objeto que representa una nueva CMK. Omítalo para rotar las claves de datos usando sus CMK 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 compatibles
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
El uso de un sistema de administración de claves remoto para administrar su clave maestra de cliente tiene las siguientes ventajas sobre el uso de su sistema de archivos local para alojar 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 a 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: