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

De forma predeterminada, todos los datos en reposo en Firestore en el modo Datastore se encriptan con la encriptación predeterminada de Google. Datastore del modo Datastore administra esta encriptación por ti sin que debas realizar ninguna acción adicional.

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

En esta página, se describen las CMEK para el modo Datastore. 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 sobre cómo realizar tareas relacionadas con CMEK con el modo Datastore, 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 del modo Datastore.
  • 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 en modo Datastore 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 los precios de Cloud KMS.

Se te factura por los costos de operaciones cuando el modo Datastore 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 el modo de Datastore. Los costos de los Registros de auditoría de Cloud son un gasto adicional, pero también se espera que sea baja, dada la cantidad esperada de solicitudes las operaciones.

No se aplican costos adicionales del modo Datastore por usar una base de datos protegida con CMEK y se seguirán aplicando los precios del modo Datastore.

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

Qué se protege con CMEK

Cuando creas una base de datos protegida con CMEK en modo Datastore, tu La clave de Cloud KMS se usa para proteger los datos en reposo. Esto incluye los datos que almacenas en un disco o una 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. Más bien, el sistema de Firestore sondea Cloud KMS cada 5 minutos para verificar si siga estando disponible y, luego, realice operaciones de encriptación y desencriptación si está disponible.

Si el sistema detecta que la clave no está disponible, en un plazo de 10 minutos, cualquier llamada posterior a la base de datos de Firestore, incluidas las operaciones de lectura, escritura y consulta, 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 esta vuelve a estar disponible. El acceso se vuelve a habilitar, por lo general, en unos minutos, pero puede demorar hasta unas horas, en casos excepcionales. Ten en cuenta que algunas operaciones en Cloud KMS de servicio, como inhabilitar o destruir una clave, puede demorar hasta 3 hours para 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 destruyó permanentemente.
  • 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, el modo Datastore 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, el modo Datastore continúa admitiendo operaciones de base de datos completas con una versión de la clave almacenada en caché durante una hora.

Después de una hora, si el modo Datastore aún no puede conectarse con Cloud KMS, comenzará 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 información. importantes cuando se usan 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 en modo Datastore 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.

El modo Datastore crea la primera copia de seguridad de una base de datos CMEK después del 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 en modo Datastore, consulta Copias de seguridad y restablecer datos.

Una base de datos restablecida a partir de una copia de seguridad usa el mismo mecanismo de encriptación que de forma predeterminada. 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 en una base de datos que no sea CMEK y que use la encriptación predeterminada de Google.
  • Restablece la copia de seguridad 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 en modo Datastore desde una consulta Restablece datos a partir de una copia de seguridad de una base de datos. Para obtener más información sobre cómo restablecer una base de datos del modo de Datastore protegida por CMEK desde una copia de seguridad, consulta Cómo restablecer una base de datos protegida por CMEK.

Seguimiento de teclas

Puedes usar el seguimiento de claves para ver recursos, por ejemplo, el modo Datastore bases de datos, que una clave protege. 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) del modo Datastore 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 la clave de una base de datos protegida por 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 las CMEK en bases de datos existentes. Puedes habilitar CMEK solo en bases de datos nuevas y debes hacerlo cuando las creas. Para migrar datos de una base de datos existente que no usa CMEK a una base de datos protegida por CMEK, exporta tus datos y, luego, impórtalos a una base de datos nueva protegida por 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?