En esta página, se describe cómo crear, configurar y aplicar claves de encriptación administradas por el cliente (CMEK) para AlloyDB para PostgreSQL.
Para obtener más información sobre CMEK, consulta Acerca de CMEK.
Crea y autoriza una clave de CMEK para AlloyDB
Crea una clave en Cloud Key Management Service (Cloud KMS). AlloyDB admite los siguientes tipos de claves:
La clave debe estar en la misma ubicación que tu clúster de AlloyDB. Por ejemplo, un clúster de AlloyDB ubicado en
us-west1solo puede usar claves enus-west1.Si ya tienes una clave de Cloud KMS en la ubicación correcta, puedes omitir este paso.
Otorga acceso a AlloyDB a la clave.
- Con Google Cloud CLI, crea y muestra el agente de servicio, o muéstralo si la cuenta ya existe:
gcloud beta services identity create --service=alloydb.googleapis.com \ --project=PROJECTEl comando gcloud services identity crea o obtiene el agente de servicio que AlloyDB puede usar para acceder a la clave de Cloud KMS en tu nombre.
El ID de la cuenta de servicio se parece a una dirección de correo electrónico:
Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com- Otorga la función
cloudkms.cryptoKeyEncrypterDecryptera la cuenta de servicio:
gcloud kms keys add-iam-policy-binding KEY \ --location REGION \ --keyring KEYRING \ --project=PROJECT \ --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterReemplaza lo siguiente:
- KEY: Es el ID de Cloud KMS de la clave.
- REGION: Es la región de la clave, por ejemplo,
us-central1. - PROJECT: Es el ID del proyecto de la clave.
- KEYRING: Es el ID del llavero de claves de Cloud KMS de la clave.
Esta función otorga permiso a la cuenta de servicio para encriptar y desencriptar con la clave de Cloud KMS. Para obtener más información, consulta Permisos y funciones de Cloud KMS.
Crea un clúster encriptado con CMEK
Cuando creas un clúster nuevo, puedes elegir si encriptarlo con la encriptación predeterminada administrada por Google o usar una clave de CMEK. Para obtener más información, consulta Crea un clúster y su instancia principal.
Visualiza el método de encriptación y la clave de CMEK de un clúster
Console
La columna Encryption de la página Clusters muestra si cada clúster de tu proyecto usa la encriptación administrada por Google o CMEK.
Para ver los detalles de la clave de un clúster con CMEK, haz clic en su nombre en la columna Resource name. El campo Encryption key de la página de detalles resultante contiene una descripción de la clave, incluido un vínculo a su propia página de detalles de Cloud KMS.
gcloud
Llama al comando gcloud alloydb clusters
describe:
gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGIONReemplaza lo siguiente:
- CLUSTER: Es el ID del clúster que se describirá.
- PROJECT: Es el ID del proyecto del clúster.
- REGION: Es la región del clúster, por ejemplo,
us-central1.
El resultado incluye un campo encryptionInfo con un resumen de la encriptación del clúster.
Aplica CMEK a las copias de seguridad
Cuando creas una copia de seguridad nueva, puedes elegir si encriptarla con la encriptación predeterminada administrada por Google o una clave de CMEK. Para obtener más información, consulta Crea una copia de seguridad bajo demanda o Programa copias de seguridad automáticas.
También tienes la opción de aplicar una clave de CMEK al clúster creado cuando se restablece desde una copia de seguridad, independientemente del método de encriptación de esa copia de seguridad. Para obtener más información, consulta Restablece un clúster.
Rota claves con la encriptación de CMEK
Es importante comprender las implicaciones de rotar las claves de encriptación administradas por el cliente (CMEK) en Cloud Key Management Service (Cloud KMS) cuando se usan con clústeres de AlloyDB.
Cuando rotas una clave de CMEK, sucede lo siguiente con tus datos existentes de AlloyDB:
El acceso inmediato continúa: Los datos permanecen encriptados con su versión original de la clave de encriptación de datos (DEK), siempre que la versión anterior de la clave aún esté disponible en KMS, no esté inhabilitada ni borrada.
La nueva encriptación completa de los datos es manual: Para obtener todos tus datos de AlloyDB en la versión de clave primaria más reciente, debes volver a encriptarlos.
Para volver a encriptar tu clúster existente con una versión de clave de CMEK nueva, debes realizar una operación de copia de seguridad y restablecimiento:
Crea una copia de seguridad de tu clúster existente.
Restablece la copia de seguridad en un clúster nuevo y especifica la nueva versión de clave primaria de CMEK durante el proceso de restablecimiento.
Para obtener más información, consulta Restablecimiento de clústeres.
La rotación frecuente de claves de CMEK con AlloyDB requiere una sobrecarga operativa significativa. Debido a que los datos existentes no se vuelven a encriptar automáticamente y a que la nueva encriptación manual implica una copia de seguridad completa y un restablecimiento en un clúster nuevo, las rotaciones frecuentes pueden ser engorrosas y pueden afectar la disponibilidad o la complejidad de la administración.
Puedes borrar de forma segura las versiones de claves de CMEK antiguas en Cloud KMS solo después de confirmar que todos los datos relevantes de AlloyDB se vuelven a encriptar de forma manual y que los datos usan una versión de clave más reciente.
Visualiza el método de encriptación y la clave de CMEK de una copia de seguridad
Console
La columna Encryption de la página Backups muestra si cada clúster de tu proyecto usa la encriptación administrada por Google o CMEK.
Ir a la página de copias de seguridad
Para ver los detalles de la clave de una copia de seguridad con CMEK, haz clic en Restore. El campo Encryption key del panel de detalles posterior contiene una descripción de la clave, incluido un vínculo a su propia página de detalles de Cloud KMS.
gcloud
Llama al gcloud alloydb backups describe comando:
gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGIONReemplaza lo siguiente:
- CLUSTER: Es el ID de la copia de seguridad que se describirá.
- PROJECT: Es el ID del proyecto de la copia de seguridad.
- REGION: Es la región de la copia de seguridad, por ejemplo,
us-central1.
El resultado incluye un campo encryptionInfo con un resumen de la encriptación de la copia de seguridad.
Inhabilita una clave
Si inhabilitas la clave de CMEK de un clúster, los datos de ese clúster se vuelven inaccesibles hasta que vuelvas a habilitar la clave.
Sin embargo, inhabilitar una clave puede tardar hasta tres horas en propagarse a tu clúster de AlloyDB. Para inhabilitar una clave y evitar el acceso a tus datos de inmediato, sigue estos pasos:
Borra la instancia principal de tu clúster. Esto no afecta los datos del clúster. Puedes crear una instancia principal nueva después de volver a habilitar la clave, como se describe en la siguiente sección.
Habilita una clave
Para habilitar una clave, sigue estos pasos:
Si borraste la instancia principal de tu clúster antes de inhabilitar la clave, crea una instancia principal nueva.
Habilitar una clave puede tardar hasta tres horas en propagarse a tu clúster. Los datos del clúster se vuelven accesibles en cuanto se produce esta propagación.
Visualiza los registros de auditoría de una clave de Cloud KMS
Para ver los registros de auditoría asociados con una clave de CMEK en particular, sigue estos pasos:
Asegúrate de que el registro esté habilitado para la API de Cloud KMS en tu proyecto.
Ve al Explorador de registros en la Google Cloud consola.
Agrega las siguientes líneas al compilador de consultas para limitar las entradas de registro a tu clave de Cloud KMS:
resource.type="cloudkms_cryptokey" resource.labels.location="REGION" resource.labels.key_ring_id="KEYRING" resource.labels.crypto_key_id="KEY"Reemplaza lo siguiente:
- REGION: Es la región de la clave, por ejemplo,
us-central1. - KEYRING: Es el ID del llavero de claves de Cloud KMS de la clave.
- KEY: Es el ID de Cloud KMS de la clave.
- REGION: Es la región de la clave, por ejemplo,
En operaciones normales, las operaciones de encriptación y desencriptación se registran con gravedad
INFO. Estas entradas se registran cuando las instancias de tu clúster de AlloyDB validan la clave de Cloud KMS, lo que ocurre cada cinco minutos.Si AlloyDB no puede acceder a la clave, las operaciones se registran como
ERROR.
Visualiza las justificaciones de acceso para una clave de Cloud EKM
Si usas una clave de Cloud EKM, puedes usar Key Access Justifications para 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 Visualiza las justificaciones y toma medidas en función de ellas .