En esta página, se describen las claves de encriptación administradas por el cliente (CMEK) para AlloyDB para PostgreSQL.
Para obtener más información sobre las CMEK en general, incluso cuándo y por qué habilitar esta función, consulta la documentación de Cloud KMS.
Para obtener una guía paso a paso sobre el uso de CMEK con AlloyDB, consulta Usa CMEK.
Una alternativa de administración propia a la encriptación administrada por Google
De forma predeterminada, todos los datos en reposo en Google Cloud, incluidos los datos de AlloyDB, se protegen con la encriptación predeterminada administrada por Google. Google Cloud controla y administra esta encriptación predeterminada por ti sin que realices ninguna acción adicional.
Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes usar CMEK. Con CMEK, tu clúster de AlloyDB se protege con una clave que tú controlas y administras en Cloud Key Management Service (KMS). Tu clave CMEK puede ser una clave simétrica o una clave de Cloud HSM.
Funciones
- Control de acceso a los datos: Los administradores pueden rotar, administrar el acceso e inhabilitar o destruir la clave que se usa para proteger los datos en reposo en AlloyDB.
- Auditabilidad: 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 AlloyDB, se registran y se pueden ver en Cloud Logging.
- Rendimiento: El uso de CMEK no introduce cambios en el rendimiento de AlloyDB.
Precios
AlloyDB factura un clúster habilitado con CMEK como cualquier otro clúster. No hay costos adicionales de AlloyDB. Para obtener más información, consulta los precios de AlloyDB para PostgreSQL.
Cloud KMS te factura el costo de la clave y las operaciones de encriptación y desencriptación cuando AlloyDB usa la clave. Para obtener más información, consulta los precios de Cloud Key Management Service.
Qué se protege con CMEK
AlloyDB usa tu clave de Cloud KMS para proteger los datos en reposo de las siguientes maneras:
- Si habilitas las CMEK en un clúster, AlloyDB usará tu clave para encriptar todos los datos del clúster en el almacenamiento.
- Si especificas una configuración de CMEK cuando creas una copia de seguridad a pedido, AlloyDB usa tu clave para encriptarla.
- Si habilitas la CMEK con la configuración de copia de seguridad continua o automática de tu clúster, AlloyDB usa tu clave para encriptar las copias de seguridad en curso.
Ya sea que uses una Google-owned and Google-managed encryption keys o una CMEK, AlloyDB tiene tres capas de encriptación:
AlloyDB divide los datos en reposo en fragmentos para el almacenamiento y encripta cada fragmento con una clave de encriptación individual. La clave que 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 posee Google y a la necesidad de bajar la latencia y aumentar la disponibilidad, AlloyDB almacena cada DEK cerca de los datos que encripta.
AlloyDB encripta cada DEK con una clave de encriptación de claves (KEK) que mantiene el clúster.
Por último, AlloyDB encripta la KEK con la clave de encriptación basada en Cloud Key Management Service de tu clúster, que es una clave Google-owned and Google-managed encryption keyo una CMEK.
También puedes ver las versiones de claves que se usan para proteger un clúster.
Habilita CMEK
Para permitir que un clúster de AlloyDB use CMEK, debes especificar la clave de Cloud KMS en el momento de la creación del clúster.
AlloyDB puede acceder a la clave en tu nombre después de que otorgues el rol de encriptador/desencriptador de CryptoKey de Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter
) a un agente de servicio de AlloyDB.
Para obtener instrucciones detalladas, consulta Usa CMEK.
Administrar claves
Usa Cloud KMS para todas las operaciones de administración de claves. AlloyDB no puede detectar ni realizar cambios en cualquier cambio de clave hasta que Cloud KMS los propague. Algunas operaciones, como inhabilitar o destruir una clave, pueden tardar hasta tres horas en propagarse. Los cambios en los permisos suelen propagarse mucho más rápido.
Después de crear el clúster, AlloyDB llama a Cloud KMS aproximadamente cada cinco minutos para asegurarse de que la clave siga siendo válida.
Si AlloyDB detecta que tu clave de Cloud KMS se inhabilitó o destruyó, una operación comienza de inmediato para hacer que los datos de tu clúster sean inaccesibles. Si las llamadas de AlloyDB a Cloud KMS detectan que se volvió a habilitar una clave que estaba inhabilitada, restablece el acceso automáticamente.
Usa y administra claves externas
Como alternativa al uso de claves que residen en Cloud KMS, puedes usar claves que residen con un socio de administración de claves externo compatible. Para ello, usa Cloud External Key Manager (Cloud EKM) para crear y administrar claves externas, que son punteros a claves que residen fuera de Google Cloud. Para obtener más información, consulta Cloud External Key Manager.
Después de crear una clave externa con Cloud EKM, puedes aplicarla a un clúster de AlloyDB nuevo. Para ello, proporciona el ID de esa clave cuando crees el clúster. Este procedimiento es el mismo que aplicar una clave de Cloud KMS a un clúster nuevo.
Puedes usar Key Access Justifications (KAJ) como parte de Cloud EKM. Key Access Justifications te permite ver el motivo de cada solicitud de Cloud EKM. Además, según la justificación proporcionada, puedes aprobar o rechazar una solicitud de forma automática. Para obtener más información, consulta la Descripción general.
Google carece de control sobre la disponibilidad de las claves en un sistema externo de administración de claves.
No disponibilidad de claves
Si inhabilitas la clave de Cloud KMS que se usa para encriptar un clúster de AlloyDB, las instancias de AlloyDB que pertenecen a ese clúster experimentarán un tiempo de inactividad en un plazo de 30 minutos. Si vuelves a habilitar la clave, se volverán a activar las instancias.
En casos poco frecuentes, como durante períodos en los que Cloud KMS no está disponible, es posible que AlloyDB no pueda recuperar el estado de tu clave de Cloud KMS. En esta situación, AlloyDB sigue admitiendo operaciones de clúster completas de la mejor manera posible durante un período de hasta 30 minutos para minimizar el impacto de las interrupciones temporales en tu carga de trabajo.
Después de 30 minutos, si AlloyDB aún no puede conectarse con Cloud KMS, AlloyDB comenzará a desconectar el clúster como medida de protección. Los datos en tu clúster de AlloyDB permanecerán inaccesibles hasta que el clúster pueda volver a conectarse con Cloud KMS y Cloud KMS responda que la clave está activa.
Copias de seguridad y restablecimiento
AlloyDB también protege las copias de seguridad con CMEK o la encriptación predeterminada administrada por Google. Si una copia de seguridad está habilitada para CMEK, se encripta con la versión principal de la clave de KMS en el momento de su creación. Una vez creada una 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 un clúster.
Cuando restableces un clúster desde una copia de seguridad, este usa de forma predeterminada la encriptación administrada por Google, pero puedes especificar una clave de CMEK para usar en su lugar. Para restablecer una copia de seguridad habilitada para CMEK, la clave y la versión de clave que se usó para encriptarla deben estar disponibles.
Logging
Puedes auditar las solicitudes que AlloyDB envía a Cloud KMS en tu nombre en Cloud Logging 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. Para obtener más información, consulta Visualiza los registros de auditoría de una clave de Cloud KMS.