Claves de encriptación administradas por el cliente (CMEK)

De forma predeterminada, todos los datos en reposo en Firestore se encriptan Encriptación predeterminada de Google. Firestore controla y administra esta encriptación sin que debas realizar ninguna acción adicional.

Si tiene requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen tus datos, puedes usar claves de encriptación administradas por el cliente (CMEK) Firestore En lugar de que Google administre las claves de encriptación que protegen tus datos, tu base de datos de Firestore se protege con una clave que tú controlas y administras en Cloud Key Management Service (Cloud KMS).

En esta página, se describen CMEK para Firestore. Obtén más información sobre CMEK. en general, además de cuándo y por qué habilitarlo, consulta la siguiente documentación de Cloud KMS:

Para obtener instrucciones para realizar tareas relacionadas con CMEK con Firestore, consulta Usa CMEK.

Funciones

  • Control de datos: CMEK te permite administrar la clave de KMS. Puedes rotar, inhabilitar y destruir la clave que se usa para encriptar los datos en reposo en tu base de datos de Firestore.
  • Rendimiento: Las CMEK no afectan el ANS de Firestore.
  • Auditabilidad: Si habilitar registros de auditoría para Cloud KMS, Todas las operaciones de la clave se registran y se pueden ver en Cloud Logging.
  • Restricciones de las políticas de la organización: Restricciones de la política de la organización de CMEK para especificar requisitos de cumplimiento de encriptación para bases de datos de Firestore en tu organización.

Precios

Cloud KMS cobra por el costo de la clave y por todas las operaciones criptográficas realizadas con ella. Para obtener más información, consulta Precios de Cloud KMS.

Se te factura por los costos de operaciones cuando Firestore solicita a la clave de Cloud KMS realizar una operación de encriptación o desencriptación. La operación de encriptación o desencriptación con la clave administrada por el cliente se realiza cada 5 minutos y no se sincroniza con las solicitudes de la base de datos. Los costos suelen ser bajos, dada la cantidad esperada de operaciones criptográficas que genera Firestore. Los costos de los registros de auditoría de Cloud son un gasto adicional, pero, en general, se espera que sean bajos, dada la cantidad esperada de operaciones criptográficas.

No se aplican costos adicionales de Firestore por usar la base de datos protegida por CMEK, y se siguen aplicando los precios de Firestore.

Si revocas tu clave de una base de datos, se te cobrará el costo de almacenamiento según el tamaño del último día en que la clave estuvo disponible. Seguirás incurriendo en costos de almacenamiento con ese tamaño de base de datos hasta que se borre la base de datos o la clave vuelva a estar disponible.

Qué se protege con CMEK

Cuando creas una base de datos protegida con CMEK de Firestore, se usa tu clave de Cloud KMS para proteger los datos en reposo. Esto incluye datos que que almacenas en un disco o unidad de memoria flash, incluidos los índices y las copias de seguridad. Algunos se aplican excepciones. Los siguientes tipos de datos se encriptan con la encriptación predeterminada de Google y no con la clave de CMEK:

  • Datos en tránsito o en memoria
  • Metadatos de la base de datos

Cómo se controla un estado de clave no disponible

Las operaciones de encriptación y desencriptación no se emiten en cada solicitud de datos. En su lugar, el sistema de Firestore sondea Cloud KMS cada 5 minutos para verificar si la clave aún está disponible y, luego, realiza operaciones de encriptación y desencriptación si la clave está disponible.

Si el sistema detecta que la clave no está disponible, se ejecutará en un minutos de cualquier llamada posterior a la base de datos de Firestore, incluidas las lecturas, las escrituras y las consultas, mostrará un error FAILED_PRECONDITION con el 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 actividad (TTL) y si se superan los tiempos de vencimiento mientras la clave no está disponible, la eliminación de datos según el 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 claves se consideran no disponibles en cualquier situación que impida de forma intencional que Firestore acceda a ellas. Esto incluye lo siguiente:

Si se restablece la clave, la operación de sondeo detecta que está nuevamente disponible. El acceso se vuelve a habilitar, por lo general, en minutos, pero en algunos casos puede tardar hasta algunas horas. Ten en cuenta que algunas operaciones en las claves de Cloud KMS, como inhabilitar o destruir una clave, pueden tardar hasta 3 horas en propagarse. Firestore no detectar cualquier cambio hasta que entre en vigencia en Cloud KMS.

La reinstalación de una clave implica lo siguiente, según la situación:

  • Volver a habilitar una versión de clave inhabilitada
  • Restablecer una versión de clave destruida Antes de destruirse de forma permanente, se programa la destrucción de una versión de clave. Solo puedes restablecer una clave durante el período en el que una versión de clave está programada para su destrucción. No puedes restablecer una clave que ya se se destruye de forma permanente.
  • Volver a otorgar los permisos Permiso de agente de servicio de Firestore para acceder a la clave.

Consideraciones sobre la rotación de claves

Cuando rotas la clave CMEK, Firestore vuelve a encriptar la base de datos con la versión principal más reciente de la clave CMEK. Durante el proceso debes mantener disponibles la versión de clave anterior y la nueva. Una vez que finalice la nueva encriptación, inhabilitar o borrar las versiones anteriores de la clave de CMEK no inhabilitará el acceso a la base de datos, ya que está encriptada con la nueva versión de clave primaria.

También puedes ver las versiones de clave que se usan para proteger una base de datos. Para obtener más información, consulta Cómo ver la clave en uso.

Consideraciones de claves externas

Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave administrada de forma externa en el sistema de socios de administración de claves externas.

Si una clave administrada de forma externa no está disponible, Firestore continúa admitiendo hasta por una hora operaciones de base de datos completas mediante una versión de la clave almacenada en caché.

Después de una hora, si Firestore aún no puede conectarse con Cloud KMS, Firestore comienza a desconectar la base de datos como medida de protección. Las llamadas a la base de datos fallarán con un error FAILED_PRECONDITION que incluye detalles adicionales.

Consulta la documentación de Cloud External Key Manager para obtener más consideración cuando uses claves externas.

Copia de seguridad y restablecimiento

Una copia de seguridad usa el mismo mecanismo de encriptación que la base de datos desde la que lo creó. Cuando una base de datos de Firestore protegida por CMEK crea una copia de seguridad, la encripta con la versión de clave primaria usada al momento del la creación de copias de seguridad.

Firestore crea la primera copia de seguridad de una base de datos CMEK después de 24. pasan horas desde el momento en que habilitas los programas de copias de seguridad.

Para obtener más información sobre las copias de seguridad de Firestore, consulta Copias de seguridad y restablecer datos.

De forma predeterminada, una base de datos restablecida a partir de una copia de seguridad usa el mismo mecanismo de encriptación que la copia de seguridad. Cuando restableces una base de datos, puedes especificar un tipo de encriptación diferente de una de las siguientes maneras:

  • Restablece en una base de datos CMEK con una clave recién especificada.
  • Restablece la base de datos a una que no sea de CMEK y que use la encriptación predeterminada de Google.
  • Restablece en una base de datos que use la misma encriptación que la copia de seguridad.

Para obtener más información sobre cómo restablecer una base de datos de Firestore a partir de una copia de seguridad, consulta Cómo restablecer datos a partir de una copia de seguridad de una base de datos. Para ver más información sobre el restablecimiento de una base de datos de Firestore protegida con CMEK a partir de una copia de seguridad, consulta Restablece una base de datos protegida con CMEK.

Seguimiento de claves

Puedes usar el seguimiento de claves para ver los recursos, por ejemplo, las bases de datos de Firestore, que protege una clave. Para obtener más información sobre el seguimiento de claves, consulta Consulta el uso de la clave.

CMEK y disponibilidad de claves

Cuando las claves no estén disponibles o inhabilitadas, ten en cuenta los siguientes comportamientos que pueden ocurrir en las bases de datos habilitadas con CMEK:

  • Puedes cambiar la configuración de recuperación de un momento determinado (PITR) de Firestore en una base de datos habilitada para CMEK, incluso si la clave no está disponible porque la configuración de la PITR es metadatos de base de datos, que no están encriptados por CMEK.
  • Puedes borrar una base de datos de CMEK que tenga claves no disponibles.
  • Cuando creas una base de datos habilitada para CMEK, las claves inhabilitadas no se muestran en la lista de claves disponibles en la consola de Google Cloud. Si ingresas una clave inhabilitada de forma manual, el proceso de creación de la base de datos fallará con un error FAILED_PRECONDITION 400.

Limitaciones

  • No puedes cambiar una clave de una base de datos protegida por una CMEK. Puedes rotar, habilitar e inhabilitar las claves.
  • Compatibilidad con bases de datos protegidas por CMEK Key Visualizer solo para entidades y de documentos, no de índices.
  • No puedes habilitar CMEK en bases de datos existentes. Puedes habilitar CMEK solo en bases de datos nuevas y debes hacerlo cuando las creas. Para migrar de una base de datos existente que no es CMEK a una base de datos protegida con CMEK, exporta para importarlos a una nueva base de datos protegida con CMEK. Puedes También restablecerás datos de una base de datos que no sea CMEK a una base de datos CMEK.
  • Firestore admite una cantidad limitada de bases de datos protegidas por CMEK.

¿Qué sigue?