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

De forma predeterminada, todos los datos en reposo en Google Cloud, incluidos los datos en Cloud Spanner, están protegidos con la encriptación predeterminada administrada por Google. Google Cloud controla y administra esta encriptación predeterminada 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 Cloud Spanner. En lugar de que Google administre las claves de encriptación que protegen tus datos, tu base de datos de Cloud Spanner se protege mediante una clave que puedes controlar y administrar en Cloud Key Management Service (KMS). Puede ser una clave simétrica, una clave de Cloud HSM o una clave de Cloud External Key Manager.

En esta página, se describen CMEK para Cloud Spanner. Para obtener más información sobre las CMEK en general, incluso cuándo y por qué habilitarlas, consulta la documentación de Cloud KMS.

Funciones

  • Control de acceso a los datos: los administradores pueden rotar, administrar el acceso a la clave que se usó para proteger los datos en reposo en Cloud Spanner, o inhabilitar el acceso a ella.
  • Auditoría: Si habilitas el registro de auditoría para la API de Cloud KMS en tu proyecto, todas las acciones en la clave, incluidas las que realiza Cloud Spanner, se registran y pueden visualizarse en Cloud Logging. Las claves de Cloud EKM admiten Justificación de acceso a claves, que agrega un campo de justificación a todas las solicitudes de clave. Con determinados socios de administración de claves externas, puedes aprobar o rechazar estas solicitudes de manera automática, según la justificación.
  • Rendimiento: no hay cambios en el rendimiento de Cloud Spanner o en el Acuerdo de Nivel de Servicio.

Precios

Cloud Spanner factura las bases de datos habilitadas para CMEK al igual que cualquier otra base de datos. no hay costos adicionales de Cloud Spanner. Para obtener más información, consulta los precios de Cloud Spanner.

Cloud KMS se factura por el costo de la clave y cualquier operación criptográfica en esa clave (siempre que Cloud Spanner use la clave para la encriptación y la desencriptación). Esperamos que esos costos sean mínimos, según la cantidad esperada de operaciones criptográficas generadas por Cloud Spanner. Para obtener más información, consulta los precios de Cloud KMS.

Qué se protege con CMEK

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

Se aplican algunas excepciones. Los siguientes tipos de datos están protegidos por la encriptación predeterminada de Google en reposo y no por la clave CMEK:

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

En Cloud Spanner, hay tres capas de encriptación. Los datos en reposo se dividen en fragmentos de subarchivos para almacenar; y cada fragmento se encripta a nivel de almacenamiento con una clave de encriptación individual. La clave que se usa para encriptar los datos de un fragmento se denomina clave de encriptación de datos (DEK). Debido a la gran cantidad de claves que se usan en Google y a la necesidad de contar con latencia baja y disponibilidad alta, estas claves se almacenan cerca de los datos que encriptan. Las DEK se encriptan con (o "están unidas" por) una clave de encriptación de claves (KEK). Finalmente, cada KEK se encripta con tu clave de encriptación administrada por el cliente.

Cuando rotes la clave CMEK, Cloud Spanner vuelve a encriptar solo las KEK intermedias con la última versión primaria de la clave CMEK. Una vez que finalice la encriptación, inhabilitar o borrar las versiones anteriores de la clave CMEK no inhabilitará el acceso a la base de datos. También puedes ver las versiones de clave que se usan para proteger una base de datos.

Con CMEK

"Diagrama de una encriptación con una clave de encriptación administrada por el cliente"

Sin CMEK

"Diagrama de ilustración de encriptación con una clave de encriptación administrada por Google"

Habilita CMEK

A fin de usar CMEK en las bases de datos de Cloud Spanner, debes crear una base de datos nueva y especificar la clave de Cloud KMS al momento de la creación de la base de datos.

Cloud Spanner puede acceder a la clave en tu nombre después de otorgar elEncriptador y desencriptador de CryptoKey de Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter ) a una función administrada por Google.Cuenta de servicio de Cloud Spanner las rutas "a GCP".

Para obtener instrucciones detalladas, consulta Usa CMEK.

Las API de acceso a los datos de Cloud Spanner, como las que se usan para administrar sesiones y ejecutar transacciones en los datos, son exactamente las mismas para las bases de datos habilitadas para CMEK y las administradas por Google. Las aplicaciones no necesitan especificar claves ni configuraciones de encriptación cuando se leen o escriben datos. El servicio controla toda la encriptación.

Administración de claves

Las operaciones de administración de claves se realizan con Cloud KMS. Cloud Spanner no puede detectar ni realizar cambios a los cambios clave hasta que los propague Cloud KMS. Algunas operaciones, como inhabilitar o destruir una clave, pueden tardar hasta 3 horas en propagarse. Los cambios en los permisos suelen propagarse mucho más rápido.

Una vez que se crea la base de datos, Cloud Spanner llama a Cloud KMS aproximadamente cada 5 minutos para asegurarse de que la clave siga siendo válida.

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

Si las llamadas de Cloud Spanner a Cloud KMS detectan que se volvió a habilitar una clave anterior, Cloud KMS restablece el acceso a la base de datos de Cloud Spanner de forma automática.

Cómo se controla el estado de una clave no disponible

En situaciones poco frecuentes, como durante períodos cuando Cloud KMS no está disponible, es posible que Cloud Spanner no pueda recuperar el estado de tu clave de Cloud KMS.

Si tu base de datos de Cloud Spanner está protegida por una clave que está habilitada en el momento en que Cloud Spanner no puede comunicarse por primera vez con Cloud KMS, Cloud Spanner continúa admitiendo operaciones completas de base de datos en el mejor de los base durante un período de hasta 1 hora, a fin de minimizar el impacto de dicho incidente en tu carga de trabajo.

Después de una hora, si Cloud Spanner aún no puede conectarse con Cloud KMS, Cloud Spanner comenzará a dejar de usar la base de datos sin conexión como medida de protección. Los datos de tu base de datos de Cloud Spanner permanecen inaccesibles hasta que tu base de datos pueda volver a conectarse con Cloud KMS y Cloud KMS responda que la clave está activa.

Por el contrario, si tu base de datos de Cloud Spanner está protegida por una clave que está inhabilitada en el momento en el que Cloud Spanner no puede comunicarse con Cloud KMS por primera vez, tu base de datos permanecerá inaccesible hasta que se pueda volver a conectar. a Cloud KMS y volvió a habilitar su clave.

Consideraciones de clave 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 administración de claves externas.

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

Después de una hora, si Cloud Spanner aún no puede conectarse con Cloud KMS, Cloud Spanner comenzará a dejar de usar 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 consideraciones cuando uses claves externas.

copia de seguridad y restauración

Las copias de seguridad de Cloud Spanner, como las bases de datos, se pueden proteger con CMEK o la encriptación administrada por Google. De forma predeterminada, una copia de seguridad usa la misma configuración de encriptación que su base de datos, pero puedes anular este comportamiento si especificas una configuración de encriptación diferente cuando creas la copia de seguridad. Si la copia de seguridad está habilitada, se encripta con la versión primaria de la clave de KMS en el momento de la creación de la copia de seguridad. Una vez que se crea la copia de seguridad, su clave y versión de clave no se pueden modificar, incluso si se rota la clave de KMS. Para obtener más información, consulta Cómo crear una copia de seguridad de una base de datos.

Cuando restableces una base de datos desde una copia de seguridad, según la configuración predeterminada, esta usa la misma configuración de encriptación que esta. Puedes anular este comportamiento si especificas una configuración de encriptación diferente cuando restableces la base de datos. A fin de restablecer una copia de seguridad habilitada para CMEK, la clave y la versión de clave que se usó para encriptar la copia de seguridad deben estar disponibles. Para obtener más información, consulta Restablece desde una copia de seguridad.

Registro

Puedes auditar las solicitudes que Cloud Spanner envía a Cloud KMS en tu nombre, si habilitaste el registro de auditoría para la API de Cloud KMS en tu proyecto. Estas entradas de registro de Cloud KMS se pueden ver en Cloud Logging.