Claves de encriptado gestionadas por el cliente (CMEK)
De forma predeterminada, todos los datos en reposo de Firestore con compatibilidad con MongoDB se cifran mediante el cifrado predeterminado de Google. Firestore con compatibilidad con MongoDB gestiona este cifrado por ti sin que tengas que hacer nada más.
Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen tus datos, puedes usar claves de cifrado gestionadas por el cliente (CMEK) para Firestore con compatibilidad con MongoDB. En lugar de que Google gestione las claves de cifrado que protegen tus datos, tu base de datos de Firestore con compatibilidad con MongoDB se protege con una clave que tú controlas y gestionas en Cloud Key Management Service (Cloud KMS).
En esta página se describe CMEK para Firestore con compatibilidad con MongoDB. Para obtener más información sobre la CMEK en general, incluido cuándo y por qué habilitarla, consulta la siguiente documentación de Cloud KMS:
Para obtener instrucciones sobre cómo realizar tareas relacionadas con CMEK con Firestore con compatibilidad con MongoDB, consulta Usar CMEK.
Funciones
- Control de datos: las CMEK te permiten gestionar la clave de KMS. Puedes rotar, inhabilitar y eliminar la clave que se usa para cifrar los datos en reposo de tu base de datos de Firestore con compatibilidad con MongoDB.
- Rendimiento: CMEK no afecta al acuerdo de nivel de servicio de Firestore.
- Auditoría: si habilitas el registro de auditoría de Cloud KMS, todas las operaciones de la clave se registran y se pueden ver en Cloud Logging.
- Restricciones de políticas de organización: puedes usar restricciones de políticas de organización de CMEK para especificar los requisitos de cumplimiento del cifrado de las bases de datos de Firestore con compatibilidad con MongoDB de tu organización.
Precios
Cloud KMS cobra el coste de la clave y las operaciones criptográficas que se realicen con ella. Para obtener más información, consulta los precios de Cloud KMS.
Se te cobra por los costes de las operaciones cuando Firestore con compatibilidad con MongoDB pide a la clave de Cloud KMS que realice una operación de cifrado o descifrado. La operación de cifrado o descifrado con la clave gestionada por el cliente se produce cada 5 minutos y no se sincroniza con las solicitudes de la base de datos. Los costes suelen ser bajos, dado el número esperado de operaciones criptográficas generadas por Firestore con compatibilidad con MongoDB. Los costes de los registros de auditoría de Cloud son un gasto adicional, pero también se espera que sean generalmente bajos, dado el número previsto de operaciones criptográficas.
No hay costes adicionales de Firestore con compatibilidad con MongoDB por usar una base de datos protegida con CMEK y se sigue aplicando la tarifa de Firestore con compatibilidad con MongoDB.
Si revocas la clave de una base de datos, se te cobrará el coste de almacenamiento en función del tamaño del último día en que la clave estuvo disponible. Seguirás incurriendo en costes de almacenamiento con ese tamaño de base de datos hasta que se elimine o la clave vuelva a estar disponible.
Qué se protege con CMEK
Cuando creas una base de datos de Firestore con compatibilidad con MongoDB protegida con CMEK, tu clave de Cloud KMS se usa para proteger los datos en reposo. Esto incluye los datos que almacenas en un disco o en una unidad flash, como los índices y las copias de seguridad. Se aplican algunas excepciones. Los siguientes tipos de datos se cifran con el cifrado predeterminado de Google y no con la clave CMEK:
- Datos en tránsito o en memoria
- Metadatos de bases de datos
Cómo se gestiona un estado de clave no disponible
Las operaciones de cifrado y descifrado no se emiten en todas las solicitudes de datos. En su lugar, el sistema de compatibilidad de Firestore con MongoDB consulta Cloud KMS cada 5 minutos para comprobar si la clave sigue disponible y, a continuación, realiza operaciones de cifrado y descifrado si la clave está disponible.
Si el sistema detecta que la clave no está disponible, en un plazo de 10 minutos, las llamadas posteriores a la base de datos de Firestore con compatibilidad con MongoDB, incluidas las lecturas, las escrituras y las consultas, devolverán un error INVALID_ARGUMENT
con el siguiente mensaje:
The customer-managed encryption key required by the requested
resource is not accessible.
Si la base de datos tiene políticas de tiempo de vida (TTL) y se supera algún tiempo de vencimiento mientras la clave no está disponible, la eliminación de datos por TTL se retrasará hasta que se restablezca la clave. Si la base de datos tiene operaciones de larga duración en curso, se verán afectadas de la siguiente manera:
- Las operaciones de creación de índices y las operaciones que habilitan nuevas políticas de TTL dejarán de avanzar. Las operaciones detenidas se volverán a intentar si se restaura la clave.
Las claves se consideran no disponibles en cualquier situación en la que se impida intencionadamente que Firestore con compatibilidad con MongoDB acceda a la clave. Entre los datos que recoge se incluyen los siguientes:
- Inhabilitar o destruir la versión de la clave que se está usando. Ten cuidado al destruir una versión de una clave, ya que puede provocar la pérdida de datos irrecuperables.
- Eliminar el permiso para acceder a la clave de la cuenta de servicio de Firestore con compatibilidad con MongoDB.
Si se restaura la clave, la operación de sondeo detecta que la clave vuelve a estar disponible. El acceso se vuelve a habilitar, normalmente en unos minutos, pero en casos excepcionales puede tardar unas horas. Ten en cuenta que algunas operaciones con claves de Cloud KMS, como inhabilitar o destruir una clave, pueden tardar hasta 3 horas en propagarse. Firestore con compatibilidad con MongoDB no detecta ningún cambio hasta que se aplican en Cloud KMS.
La restauración de una clave implica lo siguiente, en función de la situación:
- Volver a habilitar una versión de clave inhabilitada.
- Restaurar una versión de clave eliminada. Antes de eliminarse de forma permanente, se programa la eliminación de una versión de clave. Solo puedes restaurar una clave durante el periodo en el que una versión de clave esté programada para eliminarse. No puedes restaurar una clave que ya se haya destruido permanentemente.
- Volver a conceder permiso al agente de servicio de Firestore para acceder a la clave.
Consideraciones sobre la rotación de claves
Cuando rotas la clave CMEK, Firestore con compatibilidad con MongoDB vuelve a cifrar la base de datos con la versión principal más reciente de la clave CMEK. Durante el proceso de recifrado, mantén disponibles tanto la versión anterior como la nueva de la clave. Una vez que finalice el reencriptado, si inhabilitas o eliminas las versiones anteriores de la clave de CMEK, no se inhabilitará el acceso a la base de datos, ya que está encriptada con la nueva versión de la clave principal.
También puedes ver las versiones de claves que se están usando para proteger una base de datos. Para obtener más información, consulta Ver la clave en uso.
Consideraciones sobre las claves externas
Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave gestionada externamente en el sistema del partner de gestión de claves externo.
Si una clave gestionada externamente no está disponible, Firestore con compatibilidad con MongoDB sigue admitiendo operaciones completas en la base de datos mediante una versión almacenada en caché de la clave durante un máximo de una hora.
Si, al cabo de una hora, Firestore con compatibilidad con MongoDB sigue sin poder conectarse a Cloud KMS, empezará a poner la base de datos sin conexión como medida de protección. Las llamadas a la base de datos fallarán y se mostrará un error INVALID_ARGUMENT
que incluye información adicional.
Consulta la documentación de Cloud External Key Manager para obtener más información sobre el uso de claves externas.
Copia de seguridad y restauración
Las copias de seguridad utilizan el mismo mecanismo de cifrado que la base de datos a partir de la que se crearon. Cuando una base de datos de Firestore protegida con CMEK y compatible con MongoDB crea una copia de seguridad, la cifra con la versión de la clave principal que se usó en el momento de la creación de la copia de seguridad.
Firestore con compatibilidad con MongoDB crea la primera copia de seguridad de una base de datos CMEK 24 horas después de habilitar las programaciones de copias de seguridad.
Para obtener más información sobre las copias de seguridad de Firestore con compatibilidad con MongoDB, consulta el artículo Crear copias de seguridad y restaurar datos.
Una base de datos restaurada a partir de una copia de seguridad utiliza el mismo mecanismo de cifrado que la copia de seguridad de forma predeterminada. Cuando restauras una base de datos, puedes especificar un tipo de cifrado diferente de una de las siguientes formas:
- Restaurar en una base de datos CMEK con una clave recién especificada.
- Restaurar una base de datos que no use CMEK y que utilice el cifrado predeterminado de Google.
- Restaurar una base de datos que use el mismo cifrado que la copia de seguridad.
Para obtener más información sobre cómo restaurar una base de datos de Firestore con compatibilidad con MongoDB a partir de una copia de seguridad, consulta Restaurar datos a partir de una copia de seguridad de una base de datos. Para obtener más información sobre cómo restaurar una base de datos de Firestore protegida con CMEK con compatibilidad con MongoDB a partir de una copia de seguridad, consulta Restaurar una base de datos protegida con CMEK.
Clonar
De forma predeterminada, una base de datos clonada de otra base de datos usa el mismo mecanismo de cifrado que la base de datos de origen. Cuando clonas una base de datos, puedes especificar un tipo de cifrado diferente de una de las siguientes formas:
- Clonar en una base de datos CMEK con una clave recién especificada.
- Clonar en una base de datos que no use CMEK y que utilice el cifrado predeterminado de Google.
- (Predeterminado) Clonar en una base de datos que use el mismo cifrado que la base de datos de origen.
Para obtener más información sobre cómo clonar una base de datos de Firestore con compatibilidad con MongoDB, consulta Clonar una base de datos. Para obtener más información sobre cómo clonar una base de datos de Firestore protegida con CMEK con compatibilidad con MongoDB, consulta Clonar una base de datos protegida con CMEK.
Seguimiento de teclas
Puedes usar el seguimiento de claves para ver los recursos que protege una clave, como las bases de datos de Firestore con compatibilidad con MongoDB. Para obtener más información sobre el seguimiento de claves, consulta Ver el uso de las claves.
CMEK y disponibilidad de claves
Cuando las claves no están disponibles o están inhabilitadas, ten en cuenta los siguientes comportamientos que pueden producirse en las bases de datos habilitadas para CMEK:
Puedes eliminar una base de datos de CMEK que tenga claves no disponibles.
Cuando creas una base de datos con CMEK habilitada, las claves inhabilitadas no se muestran en la lista de claves disponibles de la Google Cloud consola. Si introduces manualmente una clave inhabilitada, el proceso de creación de la base de datos fallará y se mostrará un
INVALID_ARGUMENT
error 400.
Limitaciones
No puedes cambiar la clave de una base de datos protegida con CMEK. Puedes rotar, habilitar e inhabilitar claves.
No puedes habilitar CMEK en bases de datos que ya tengas. Solo puedes habilitar CMEK en bases de datos nuevas, y debes hacerlo al crear la base de datos. Para migrar datos de una base de datos no protegida con CMEK a una protegida con CMEK, exporta los datos y, a continuación, impórtalos a una nueva base de datos protegida con CMEK. También puedes restaurar o clonar datos de una base de datos que no use CMEK en una que sí lo haga.
Firestore admite un número limitado de bases de datos protegidas con CMEK.