De forma predeterminada, Workflows cifra el contenido del cliente en reposo. Workflows 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 Workflows. 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. Cloud KMS también te permite monitorizar el uso de las claves, ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y el gestor de 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 acceso a tus recursos de Workflows 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).
Puedes proteger tu flujo de trabajo y los datos asociados en reposo con una clave de cifrado a la que solo tú puedes acceder y que puedes controlar y gestionar con Cloud KMS.
Qué se protege con CMEK
Cuando despliegues un flujo de trabajo, puedes especificar una clave de Cloud KMS. Esta clave se usa para cifrar el flujo de trabajo y sus ejecuciones:
Un flujo de trabajo requiere un archivo de origen que contenga una definición de flujo de trabajo válida. Este archivo de origen está cifrado con la clave.
Una ejecución de flujo de trabajo ejecuta la definición del flujo de trabajo actual (una revisión de flujo de trabajo específica). La clave asociada a la revisión del flujo de trabajo en el momento de su implementación se usa para cifrar el flujo de trabajo compilado, así como los datos de entrada, salida y de tiempo de ejecución almacenados. Esto incluye argumentos de ejecución, resultados, errores y excepciones, que se envían como eventos de Eventarc, así como retrollamadas y solicitudes y respuestas HTTP.
Antes de empezar
Antes de usar claves de cifrado gestionadas por el cliente en Workflows, sigue estos pasos:
Habilita las APIs.
Consola
-
Enable the Cloud KMS and Workflows APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Actualiza
gcloudcomponentes.gcloud components update
- Habilita las APIs Cloud KMS y Workflows en el proyecto que almacenará tus claves de cifrado.
gcloud services enable cloudkms.googleapis.com workflows.googleapis.com
Cloud KMS genera registros de auditoría de Cloud cuando se habilitan o inhabilitan claves, o cuando los recursos de Workflows las usan para encriptar y desencriptar datos. Comprueba que el registro está habilitado para la API Cloud KMS en tu proyecto y que has decidido qué permisos y roles específicos del registro se aplican a tu caso práctico. Para obtener más información, consulta el artículo sobre los registros de auditoría de Cloud KMS.
Crear un conjunto de claves y una clave de Cloud KMS
Puedes crear un nuevo llavero o usar uno que ya tengas. Dentro del conjunto de claves, puedes añadir una clave nueva o usar una que ya tengas.
Obtener el ID de recurso de una clave de Cloud KMS
Se necesita el ID de recurso de una clave de Cloud KMS para habilitar CMEK en un flujo de trabajo. En este documento, consulta la sección Habilitar las claves de cifrado gestionadas por el cliente en un flujo de trabajo.
Consola
En la Google Cloud consola, ve a la página Gestión de claves.
Haz clic en el conjunto de claves que contiene la clave.
En la clave cuyo ID de recurso quieras obtener, haz clic en more_vert Más.
Haga clic en Copiar nombre de recurso.
El ID del recurso de la clave se copia en el portapapeles. Su formato es similar al siguiente:
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Una clave contiene cero o más versiones de la clave. El ID de recurso de una versión de clave es el ID de la clave, una barra (
/) y el ID de la versión. Para enumerar todas las versiones de una clave, sigue estos pasos:- Haz clic en el nombre de la clave.
- En una versión concreta, haz clic en Más.
- Haga clic en Copiar nombre de recurso.
gcloud
Para mostrar todas las claves de un conjunto de claves determinado, haz lo siguiente:
gcloud kms keys list --keyring RING_NAME --location LOCATION
Haz los cambios siguientes:
RING_NAME: el nombre del conjunto de clavesLOCATION: la región del conjunto de claves
El resultado incluye el ID de recurso de cada clave. Por ejemplo:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
Una clave tiene cero o más versiones. El ID de recurso de una versión de clave es el ID de la clave, una barra (
/) y el ID de la versión. Mostrar todas las versiones de una clave:gcloud kms keys versions list --location LOCATION --keyring RING_NAME --key KEY_NAME
El resultado incluye el ID de recurso de cada versión de la clave. Por ejemplo:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME/2
Concede acceso a la clave al agente de servicio de Workflows
Debes conceder al agente de servicio de Workflows el rol de gestión de identidades y accesos (IAM) Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS para que pueda acceder a la clave de Cloud KMS:
Consola
Cuando habilitas las CMEK en un flujo de trabajo a través de la consola, se te pide que concedas el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS a la cuenta de servicio. Para obtener más información, consulta la sección Habilitar CMEK en un flujo de trabajo de este documento.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring RING_NAME \ --location
-