Descripción general de las claves de encriptación administradas por el cliente (CMEK)

De forma predeterminada, todos los datos en reposo en Google Cloud, incluidos los datos en Spanner está protegido con Encriptación predeterminada de Google. Google Cloud maneja y administra la encriptación por ti sin que debas realizar ninguna otra acción.

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) Spanner En lugar de que Google sea propietario y administrador de la encriptación que protegen tus datos, tu base de datos de Spanner está protegida con una clave simétrica que controlas y administras en Cloud Key Management Service (Cloud KMS). Puede tratarse de un software o hardware (Cloud HSM). clave o una externa (Cloud External Key Manager) clave.

Las CMEK no admiten configuraciones de instancias personalizadas.

En esta página, se describen CMEK para Spanner. Para obtener más información sobre CMEK en generales, incluidos cuándo y por qué habilitarlos, consulta la Documentación de Cloud KMS.

Funciones

  • Control de acceso a los datos: Los administradores pueden rotar, administrar el acceso y inhabilitar o destruir la clave que se usa para proteger los datos en reposo en Spanner.
  • Auditabilidad: si habilitar el registro de auditoría para la API de Cloud KMS en tu proyecto, incluidas las realizadas por Spanner, se registran y se pueden ver en Cloud Logging. Compatibilidad con claves de Cloud EKM Key Access Justifications, que agrega un de justificación a todas las solicitudes de claves. Con una administración de claves externa selecta socios, puedes aprobar o rechazar automáticamente estas solicitudes, justificación.
  • Rendimiento: No se aplican cambios en el rendimiento de Spanner ni en la Acuerdo de Nivel de Servicio.

Precios

Spanner factura las bases de datos habilitadas para CMEK como cualquier otra base de datos. ahí sin costos adicionales de Spanner. Para obtener más información, consulta Precios de Spanner.

Cloud KMS factura el costo de la clave y cualquier operaciones criptográficas en esa clave (cada vez que Spanner usa la clave para encriptación o desencriptación). Esperamos que esos costos sean mínimos según la cantidad esperada de operaciones criptográficas generadas por Spanner. Para Para obtener más información, consulta Precios de Cloud KMS.

Qué se protege con CMEK

En una base de datos habilitada para CMEK, Spanner usa tu clave de Cloud KMS para proteger los datos en reposo. Esto incluye datos de una base de datos que se almacena en un disco ni flash.

Se aplican algunas excepciones. Google protege los siguientes tipos de datos encriptación en reposo predeterminada y no por la clave CMEK:

  • Un subconjunto de claves de fila que marca los límites de rango
  • Depuración de datos, incluidos los volcados de memoria y los registros operativos
  • Datos en tránsito o en memoria
  • Metadatos de la base de datos

En Spanner, hay tres capas de encriptación. Los datos en reposo se dividen en fragmentos de subarchivos para su almacenamiento; cada fragmento se se encriptan a nivel de almacenamiento con una clave de encriptación individual. La clave utilizada para encriptar los datos de un fragmento se denomina clave de encriptación de datos (DEK). Debido a el alto volumen de claves en Google y la necesidad de baja latencia y alta disponibilidad, estas claves se almacenan cerca de los datos que encriptan. Las DEK se encriptan (o se “unen”) con una clave de encriptación de claves (KEK). Por último, cada La KEK se encripta con tu clave de encriptación administrada por el cliente.

Cuando rotar la clave CMEK, Spanner solo vuelve a encriptar a las KEK intermedias con la versión principal más reciente de la clave CMEK. Una vez que cuando finalice la reencriptación, lo que inhabilita o borra las versiones anteriores de la clave CMEK no inhabilitará el acceso a la base de datos. También puedes ver las versiones de claves que se usan para proteger una base de datos.

Con CMEK

Diagrama en el que se ilustra la encriptación con una clave de encriptación administrada por el cliente

Sin CMEK

Diagrama en el que se ilustra la encriptación con una clave de propiedad de Google y una administrada por Google

Habilitar CMEK

Para usar CMEK en bases de datos de Spanner, debes crear una nueva base de datos y especifica la clave de Cloud KMS en el momento la creación de bases de datos.

Spanner puede acceder a la clave en tu nombre después de que le otorgas Encriptador y desencriptador de CryptoKey de Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) a un rol administrado por Google Cuenta de servicio de Spanner.

Para obtener instrucciones detalladas, consulta Usa CMEK.

APIs de acceso a datos de Spanner como las que se usan para administrar sesiones y ejecutar transacciones en datos son exactamente iguales para las claves administradas por el cliente y las que son propiedad de Google y las administradas por Google. No es necesario que las aplicaciones especifiquen claves o configuraciones de encriptación cuando leen o la escritura de datos. Toda la encriptación la maneja el servicio.

Administrar claves

Las operaciones de administración de claves se realizan mediante Cloud KMS. Spanner no puede detectar ni actuar sobre ningún cambio clave hasta que se que propaga Cloud KMS. Algunas operaciones, como inhabilitar o y destruir una clave puede tardar hasta 3 horas en propagarse. y los cambios en los permisos suelen propagarse mucho más rápido.

Cuando se crea la base de datos, Spanner llama a Cloud KMS sobre cada 5 minutos para asegurarte de que la clave siga siendo válida.

Si Spanner detecta que se inhabilitó tu clave de Cloud KMS o destruida, comienza una operación que hace que tu base de datos sea inaccesible de inmediato. Cualquier llamada posterior a la base de datos, incluidas las sesiones, lecturas y escribe, se mostrará un error FAILED_PRECONDITION: KMS key required by the Spanner resource is not accessible.

Si las llamadas de Spanner a Cloud KMS detectan que un una clave inhabilitada, Cloud KMS restablece el acceso al Base de datos de Spanner automáticamente.

Cómo se controla un estado de clave no disponible

En situaciones poco frecuentes, como durante los períodos en que Cloud KMS se no disponible, es posible que Spanner no pueda recuperar el estado de tu clave. desde Cloud KMS.

Si la base de datos de Spanner está protegida por una clave habilitada en el hora a la que Spanner no puede comunicarse por primera vez Cloud KMS, Spanner sigue admitiendo bases de datos completas según el criterio del mejor esfuerzo durante un período de hasta 1 hora, para minimizar el impacto de cualquiera de esos incidentes en tu carga de trabajo.

Después de una hora, si Spanner sigue sin poder conectarse con Cloud KMS, Spanner comienza a tomar la base de datos fuera de línea como medida de protección. Los datos de la base de datos de Spanner permanecerá inaccesible hasta que tu base de datos pueda volver a conectarse con Cloud KMS y Cloud KMS responde que la clave está activa.

Por el contrario, si tu base de datos de Spanner está protegida por una clave que inhabilitado en el momento en que Spanner no puede comunicarse por primera vez con Cloud KMS, no se podrá acceder a tu base de datos hasta que vuelve a conectarte a Cloud KMS y volviste a habilitar tu clave.

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, Spanner continúa admitir operaciones completas de bases de datos usando una versión de la clave almacenada en caché, por hasta una hora.

Después de una hora, si Spanner está para conectarse con Cloud KMS, Spanner comienza a tomar la base de datos sin conexión como medida de protección. Las llamadas a la base de datos fallarán con un error FAILED_PRECONDITION: External key error: Could not find a key resource at the key URI.

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

Las copias de seguridad de Spanner, como las bases de datos, pueden protegida por CMEK o claves administradas por Google y propiedad de Google. De forma predeterminada, una copia de seguridad usa el misma configuración de encriptación como su base de datos, pero puedes anular este comportamiento especificando una dirección de encriptación cuando se crea la copia. Si la copia de seguridad es con CMEK habilitada, se encripta usando la versión principal de la clave KMS en de creación de la copia de seguridad. Una vez creada la copia de seguridad, su clave y su versión no se puede modificar, incluso si se rota la clave de KMS. Para obtener más información, consulta Crea una copia de seguridad de una base de datos.

Cuando restableces una base de datos desde una copia de seguridad, cuando predeterminada, la base de datos restablecida usará el mismo configuración de encriptación como copia de seguridad. Para anular este comportamiento, especifica un valor de encriptación cuando restableces la base de datos. Para restablecer una cuenta habilitada copia de seguridad, tanto la clave como la versión que se usó para encriptarla disponibles. Para obtener más información, consulta Restablece desde una copia de seguridad.

Logging

Puedes auditar las solicitudes que Spanner envía a Cloud KMS en tu nombre en Cloud Logging, si tienes registros de auditoría habilitados para la API de Cloud KMS en tu proyecto. Estos Las entradas de registro de Cloud KMS se pueden ver en Cloud Logging.

Exige o limita CMEK en tu organización

Puedes establecer políticas en toda la organización sobre el uso de CMEK en varios productos de Google Cloud, como Spanner Con estas políticas, puedes hacer lo siguiente:

  • Requiere el nuevo Spanner las bases de datos que creó tu organización usan protección con CMEK.

  • Limita cuáles de las claves de Cloud KMS de tu organización se disponible para la protección con CMEK.

Para obtener más información, consulta Políticas de la organización de CMEK