En esta página se describen las claves de cifrado gestionadas por el cliente (CMEK) de AlloyDB para PostgreSQL.
Para obtener más información sobre la clave CMEK en general, incluido cuándo y por qué habilitar esta función, consulta la documentación de Cloud KMS.
De forma predeterminada, AlloyDB para PostgreSQL cifra el contenido del cliente en reposo. AlloyDB se encarga del cifrado sin que tengas que hacer nada más. Esta opción se llama Cifrado predeterminado de Google.
Si quieres controlar tus claves de cifrado, puedes usar claves de cifrado gestionadas por el cliente (CMEKs) en Cloud KMS con servicios integrados con CMEKs, como AlloyDB. Si usas claves de Cloud KMS, tendrás control sobre su nivel de protección, ubicación, calendario de rotación, permisos de uso y acceso, y límites criptográficos. Además, Cloud KMS te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y gestione las claves de cifrado de claves (KEKs) simétricas que protegen tus datos, tú controlas y gestionas estas claves en Cloud KMS.
Una vez que hayas configurado tus recursos con CMEKs, la experiencia de acceder a tus recursos de AlloyDB será similar a la de usar el cifrado predeterminado de Google. Para obtener más información sobre las opciones de encriptado, consulta Claves de encriptado gestionadas por el cliente (CMEK).
Para saber cómo usar las CMEKs creadas manualmente para proteger tus recursos de AlloyDB, consulta Usar CMEK.
CMEK con Autokey de Cloud KMS
Puedes crear CMEKs manualmente para proteger tus recursos de AlloyDB o usar Autokey de Cloud KMS. Con Autokey, los conjuntos de claves y las claves se generan a petición como parte de la creación de recursos en AlloyDB. Los agentes de servicio que usan las claves para las operaciones de cifrado y descifrado se crean si aún no existen y se les asignan los roles de gestión de identidades y accesos (IAM) necesarios. Para obtener más información, consulta la descripción general de Autokey.
AlloyDB solo es compatible con Autokey de Cloud KMS cuando se crean recursos con Terraform o la API REST.
Una alternativa autogestionada al cifrado gestionado por Google
De forma predeterminada, todos los datos en reposo de Google Cloud, incluidos los datos de AlloyDB, están protegidos mediante el cifrado predeterminado gestionado por Google. Google Cloudse encarga de gestionar este cifrado predeterminado sin que tengas que hacer nada.
Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen tus datos, puedes usar CMEK. Con las CMEK, tu clúster de AlloyDB está protegido con una clave que controlas y gestionas en Cloud Key Management Service (KMS). Tu clave de CMEK puede ser una clave simétrica o una clave de Cloud HSM.
Funciones
Control de acceso a los datos: los administradores pueden rotar, gestionar el acceso y inhabilitar o destruir la clave que has usado para proteger los datos en reposo en AlloyDB.
La gestión de claves se realiza mediante Cloud KMS. Los clústeres no se vuelven a cifrar automáticamente con la versión de clave más reciente después de la rotación. Los clústeres se cifran con la versión principal de la CMEK en el momento de la creación del clúster. Para rotar el cifrado del clúster, crea una copia de seguridad y restaura el clúster con una versión de clave más reciente. Para obtener más información, consulta el artículo Introducción a la copia de seguridad y la recuperación de datos.
Auditoría: si habilitas el registro de auditoría de la API Cloud KMS en tu proyecto, todas las acciones que se realicen en la clave, incluidas las que lleve a cabo AlloyDB, se registrarán y se podrán ver en Cloud Logging.
Rendimiento: el uso de CMEK no introduce ningún cambio en el rendimiento de AlloyDB.
Precios
AlloyDB factura los clústeres con CMEK habilitado igual que cualquier otro clúster. No hay costes adicionales de AlloyDB. Para obtener más información, consulta los precios de AlloyDB para PostgreSQL.
Cloud KMS te factura el coste de la clave y las operaciones de cifrado y descifrado 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 formas:
- Si habilitas la CMEK en un clúster, AlloyDB usará tu clave para cifrar todos los datos del clúster en el almacenamiento.
- Si especificas una configuración de CMEK al crear una copia de seguridad bajo demanda, AlloyDB usará tu clave para cifrar esa copia de seguridad.
Si habilitas la CMEK en la configuración de copias de seguridad continuas o automáticas de tu clúster, AlloyDB usará tu clave para cifrar las copias de seguridad en curso.
Tanto si usas una Google-owned and Google-managed encryption keys como una CMEK, AlloyDB tiene tres capas de cifrado:
AlloyDB divide los datos en reposo en fragmentos para almacenarlos y cifra cada fragmento con una clave de cifrado individual. La clave que usa para cifrar los datos de un fragmento se denomina clave de cifrado de datos (DEK).
Debido al gran volumen de claves que tiene Google y a la necesidad de contar con una latencia baja y una disponibilidad alta, AlloyDB almacena cada DEK cerca de los datos que cifra.
AlloyDB cifra cada DEK con una clave de cifrado de claves (KEK) que tiene el clúster.
Por último, AlloyDB cifra la KEK con la clave de cifrado basada en Cloud Key Management Service de tu clúster, que puede ser una Google-owned and Google-managed encryption key o una clave CMEK.
También puedes ver las versiones de la clave que se están usando para proteger un clúster.
Habilitar CMEK
Para permitir que un clúster de AlloyDB use una CMEK, debes especificar la clave de Cloud KMS en el momento de crear el clúster.
AlloyDB puede acceder a la clave en tu nombre después de que asignes el rol Encargado de encriptar o desencriptar claves criptográficas de Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter
) a un agente de servicio de AlloyDB.
Para obtener instrucciones detalladas, consulta Usar CMEK.
Gestionar llaves
Usa Cloud KMS para todas las operaciones de gestión de claves. AlloyDB no puede detectar ni actuar ante ningún 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.
Una vez creado el clúster, AlloyDB llama a Cloud KMS cada cinco minutos para asegurarse de que la clave sigue siendo válida.
Si AlloyDB detecta que tu clave de Cloud KMS se ha inhabilitado o destruido, se iniciará inmediatamente una operación para que no se pueda acceder a los datos de tu clúster. Si las llamadas de AlloyDB a Cloud KMS detectan que se ha vuelto a habilitar una clave que antes estaba inhabilitada, se restaura el acceso automáticamente.
Usar y gestionar claves externas
Como alternativa a las claves que residen en Cloud KMS, puedes usar claves que residan en un partner de gestión de claves externo admitido. Para ello, usa Cloud External Key Manager (Cloud EKM) para crear y gestionar claves externas, que son punteros a claves que se encuentran 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 al crear el clúster. Este procedimiento es el mismo que el que se sigue para aplicar una clave de Cloud KMS a un clúster nuevo.
Puedes usar Justificaciones de Acceso a Claves como parte de Cloud EKM. Justificaciones de Acceso a Claves te permite ver el motivo de cada solicitud de Cloud EKM. Además, en función de la justificación proporcionada, puedes aprobar o denegar una solicitud automáticamente. Para obtener más información, consulta la descripción general.
Google no tiene control sobre la disponibilidad de las claves en un sistema de gestión de claves externo de un partner.
Clave no disponible
Si inhabilitas la clave de Cloud KMS que se usa para cifrar un clúster de AlloyDB, las instancias de AlloyDB que pertenezcan a ese clúster sufrirán un tiempo de inactividad en un plazo de 30 minutos. Si vuelves a habilitar la clave, las instancias se restaurarán.
En casos poco frecuentes, como durante los periodos en los que Cloud KMS no está disponible, es posible que AlloyDB no pueda obtener el estado de tu clave de Cloud KMS. En este caso, AlloyDB sigue admitiendo operaciones de clúster completas de la mejor forma posible durante un periodo de hasta 30 minutos para minimizar el impacto de cualquier interrupción temporal en tu carga de trabajo.
Si, transcurridos 30 minutos, AlloyDB sigue sin poder conectarse a Cloud KMS, AlloyDB empezará a desconectar el clúster como medida de protección. Los datos de tu clúster de AlloyDB seguirán siendo 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 restauración
AlloyDB también protege las copias de seguridad con CMEK o con el cifrado predeterminado gestionado por Google. Si una copia de seguridad tiene habilitado CMEK, se cifra con la versión principal de la clave de KMS en el momento de la creación de la copia de seguridad. Una vez creada una copia de seguridad, no se pueden modificar su clave ni su versión, aunque se rote la clave de KMS. Para obtener más información, consulta Crear una copia de seguridad de un clúster.
Cuando restauras un clúster a partir de una copia de seguridad, el clúster restaurado usa de forma predeterminada el cifrado gestionado por Google, pero puedes especificar una clave CMEK para usarla en su lugar. Para restaurar una copia de seguridad con CMEK habilitada, deben estar disponibles tanto la clave como la versión de la clave que se usaron para cifrar la copia de seguridad.
Almacenamiento de registros
Puedes auditar las solicitudes que AlloyDB envía a Cloud KMS en tu nombre en Cloud Logging si has habilitado el registro de auditoría de la API 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 Ver registros de auditoría de una clave de Cloud KMS.