De forma predeterminada, Cloud Data Fusion cifra el contenido de los clientes en reposo. Cloud Data Fusion 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 Cloud Data Fusion. 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 acceder a tus recursos de Cloud Data Fusion 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).
Cloud Data Fusion admite el seguimiento del uso de claves de Cloud KMS para el recurso Instance
.
Las CMEK te permiten controlar los datos que se escriben en los recursos internos de Google en proyectos de inquilino y los datos que escriben los flujos de procesamiento de Cloud Data Fusion, incluidos los siguientes:
- Registros y metadatos de la canalización
- Metadatos de clústeres de Dataproc
- Varios sumideros, acciones y fuentes de datos de Cloud Storage, BigQuery, Pub/Sub y Spanner
Recursos de Cloud Data Fusion
Para ver una lista de los complementos de Cloud Data Fusion que admiten la CMEK, consulta los complementos compatibles.
Cloud Data Fusion admite la función de claves de cifrado gestionadas por el cliente (CMEK) en clústeres de Dataproc. Cloud Data Fusion crea un clúster de Dataproc temporal para usarlo en el flujo de procesamiento y, a continuación, elimina el clúster cuando se completa el flujo de procesamiento. La CMEK protege los metadatos del clúster escritos en lo siguiente:
- Discos persistentes (PD) conectados a máquinas virtuales de clúster
- Salida del controlador de trabajos y otros metadatos escritos en el contenedor de almacenamiento provisional de Dataproc creado automáticamente o por el usuario
Configurar CMEK
Crear una clave de Cloud KMS
Crea una clave de Cloud KMS en el Google Cloud proyecto que contiene la instancia de Cloud Data Fusion o en un proyecto de usuario independiente. La ubicación del conjunto de claves de Cloud KMS debe coincidir con la región en la que crees la instancia. No se permite una clave de región multirregional o global a nivel de instancia porque Cloud Data Fusion siempre está asociado a una región concreta.
Obtener el nombre de recurso de la clave
API REST
Obtén el nombre del recurso de la clave que has creado con el siguiente comando:
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Haz los cambios siguientes:
- PROJECT_ID: el proyecto del cliente que aloja la instancia de Cloud Data Fusion
- REGION: una región de Google Cloud
cercana a tu ubicación. Por ejemplo,
us-east1
- KEY_RING_NAME: el nombre del conjunto de claves que agrupa las claves criptográficas
- KEY_NAME: el nombre de la clave de Cloud KMS
Consola
Ve a la página Gestión de claves.
Junto a tu llave, haz clic en Más
.Selecciona Copiar nombre de recurso para copiar el nombre del recurso en el portapapeles.
Actualiza las cuentas de servicio de tu proyecto para usar la clave
Para configurar las cuentas de servicio de tu proyecto de forma que usen tu clave, sigue estos pasos:
Obligatorio: asigna el rol Encargado del encriptado y desencriptado de claves de CryptoKey de Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) al agente de servicio de Cloud Data Fusion (consulta Asignar roles a una cuenta de servicio para recursos específicos). Esta cuenta tiene el siguiente formato:service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com
Si asignas el rol Encargado de cifrar o descifrar CryptoKey de Cloud KMS al agente de servicio de Cloud Data Fusion, este podrá usar las CMEK para cifrar los datos de los clientes almacenados en proyectos de inquilinos.
Obligatorio: asigna el rol Encargado del encriptado y desencriptado de claves de CryptoKey de Cloud KMS al agente de servicio de Compute Engine (consulta el artículo sobre cómo asignar una clave de Cloud KMS a una cuenta de servicio de Cloud Storage). Esta cuenta, a la que se le asigna de forma predeterminada el rol Agente de servicio de Compute Engine, tiene el siguiente formato:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
Si asignas el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS al agente de servicio de Compute Engine, Cloud Data Fusion podrá usar CMEK para encriptar los metadatos de los discos persistentes escritos por el clúster de Dataproc que se ejecuta en tu canalización.
Obligatorio: asigna el rol Encargado del encriptado y desencriptado de claves de CryptoKey de Cloud KMS al agente de servicio de Cloud Storage (consulta Asignar una clave de Cloud KMS a un agente de servicio de Cloud Storage). Este agente de servicio tiene el siguiente formato:
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
Si asignas este rol al agente de servicio de Cloud Storage, Cloud Data Fusion podrá usar CMEK para cifrar el segmento de Cloud Storage que almacena y guarda en caché la información y los datos del flujo de procesamiento escritos en el segmento de almacenamiento temporal del clúster de Dataproc y en cualquier otro segmento de Cloud Storage de tu proyecto que use tu flujo de procesamiento.
Obligatorio: Asigna el rol Encargado del encriptado y desencriptado de claves de CryptoKey de Cloud KMS al agente de servicio de Google Cloud Dataproc. Este agente de servicio tiene el siguiente formato:
service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com
Opcional: Si tu canalización usa recursos de BigQuery, otorga el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS a la cuenta de servicio de BigQuery (consulta Conceder permiso de encriptado y desencriptado). Esta cuenta tiene el siguiente formato:
bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com
Opcional: Si tu canalización usa recursos de Pub/Sub, concede el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS a la cuenta de servicio de Pub/Sub (consulta Usar claves de cifrado gestionadas por el cliente). Esta cuenta tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
Opcional: Si tu canalización usa recursos de Spanner, otorga el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS a la cuenta de servicio de Spanner. Esta cuenta tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com
Crear una instancia de Cloud Data Fusion con CMEK
Las CMEK están disponibles en todas las ediciones de Cloud Data Fusion 6.5.0 y versiones posteriores.
API REST
Para crear una instancia con una clave de cifrado gestionada por el cliente, define las siguientes variables de entorno:
export PROJECT=PROJECT_ID export LOCATION=REGION export INSTANCE=INSTANCE_ID export DATA_FUSION_API_NAME=datafusion.googleapis.com export KEY=KEY_NAME
Haz los cambios siguientes:
- PROJECT_ID: el proyecto del cliente que aloja la instancia de Cloud Data Fusion
- REGION: una región Google Cloud cercana a tu ubicación, como
us-east1
- INSTANCE_ID: el nombre de la instancia de Cloud Data Fusion
- KEY_NAME: el nombre completo del recurso de la clave CMEK
Ejecuta el siguiente comando para crear una instancia de Cloud Data Fusion:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE -X POST -d '{"description": "CMEK-enabled CDF instance created through REST.", "type": "BASIC", "cryptoKeyConfig": {"key_reference": "$KEY"} }'
Consola
Ve a la página de Cloud Data Fusion.
Haz clic en Instancias y, a continuación, en Crear una instancia.
En Opciones avanzadas, selecciona Usar una clave de cifrado gestionada por el cliente (CMEK).
En el campo Seleccionar una clave gestionada por el cliente, selecciona el nombre del recurso de la clave.
Una vez que hayas introducido todos los detalles de la instancia, haz clic en Crear. Cuando la instancia esté lista para usarse, aparecerá en la página Instancias.
Comprobar si CMEK está habilitado en una instancia
Consola
Consulta los detalles de la instancia:
En la Google Cloud consola, ve a la página de Cloud Data Fusion.
Haz clic en Instancias y, a continuación, en el nombre de la instancia para ir a la página Detalles de la instancia.
Si CMEK está habilitada, el campo Clave de cifrado se muestra como Disponible.
Si las claves de cifrado gestionadas por el cliente están inhabilitadas, el campo Clave de cifrado se muestra como No disponible.
Usar CMEK con complementos compatibles
Cuando definas el nombre de la clave de cifrado, utiliza el siguiente formato:
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
En la siguiente tabla se describe el comportamiento de la clave en los complementos de Cloud Data Fusion que admiten CMEK.
Complementos compatibles | Comportamiento de la tecla |
---|---|
Receptores de Cloud Data Fusion | |
Cloud Storage | Cifra los datos escritos en cualquier segmento creado por el complemento. Si el segmento ya existe, este valor se ignora. |
Multiarchivo de Cloud Storage | Cifra los datos escritos en cualquier segmento creado por el complemento. |
BigQuery | Cifra los datos escritos en cualquier contenedor, conjunto de datos o tabla creados por el complemento. |
Multitabla de BigQuery | Cifra los datos escritos en cualquier contenedor, conjunto de datos o tabla creados por el complemento. |
Pub/Sub | Encripta los datos escritos en cualquier tema creado por el complemento. Si el tema ya existe, se ignora este valor. |
Spanner | Encripta los datos escritos en cualquier base de datos creada por el complemento. Si la base de datos ya existe, este valor se ignora. |
Acciones de Cloud Data Fusion | |
Creación en Cloud Storage Copia en Cloud Storage Movimiento en Cloud Storage Marcador de archivo listo en Cloud Storage |
Cifra los datos escritos en cualquier segmento creado por el complemento. Si el segmento ya existe, este valor se ignora. |
Ejecución de BigQuery | Cifra los datos escritos en el conjunto de datos o en la tabla que crea el complemento para almacenar los resultados de la consulta. Solo se aplica si almacenas los resultados de la consulta en una tabla de BigQuery. |
Fuentes de Cloud Data Fusion | |
Fuente de BigQuery | Cifra los datos escritos en cualquier segmento creado por el complemento. Si el segmento ya existe, este valor se ignora. |
Motor SQL de Cloud Data Fusion | |
Motor de pushdown de BigQuery | Cifra los datos escritos en cualquier contenedor, conjunto de datos o tabla creados por el complemento. |
Usar CMEK con metadatos de clústeres de Dataproc
Los perfiles de computación creados previamente usan la clave CMEK proporcionada durante la creación de la instancia para cifrar el disco persistente y los metadatos del segmento de almacenamiento provisional que escribe el clúster de Dataproc que se ejecuta en tu canalización. Para usar otra tecla, puedes hacer lo siguiente:
- Recomendación: Crea un perfil de computación de Dataproc (solo en la edición Enterprise).
- Edita un perfil de cálculo de Dataproc (ediciones Developer, Basic o Enterprise).
Consola
Abre la instancia de Cloud Data Fusion:
En la Google Cloud consola, ve a la página de Cloud Data Fusion.
Para abrir la instancia en Cloud Data Fusion Studio, haga clic en Instancias y, a continuación, en Ver instancia.
Haz clic en Administración del sistema > Configuración.
Haz clic en el desplegable Perfiles de cálculo del sistema.
Haz clic en Crear perfil y selecciona Dataproc.
Escribe una etiqueta de perfil, un nombre de perfil y una descripción.
De forma predeterminada, Dataproc crea segmentos de almacenamiento provisional y temporales cada vez que Cloud Data Fusion crea un clúster efímero. Cloud Data Fusion permite transferir el segmento de almacenamiento provisional de Dataproc como argumento en el perfil de computación. Para cifrar el segmento de almacenamiento provisional, crea un segmento con CMEK habilitado y pásalo como argumento a Dataproc en el perfil de cálculo.
De forma predeterminada, Cloud Data Fusion crea automáticamente un segmento de Cloud Storage para organizar las dependencias que usa Dataproc. Si prefieres usar un segmento de Cloud Storage que ya exista en tu proyecto, sigue estos pasos:
En la sección General Settings (Configuración general), introduce tu segmento de Cloud Storage en el campo Cloud Storage Bucket (Segmento de Cloud Storage).
Obtén el ID de recurso de tu clave de Cloud KMS. En la sección Configuración general, introduce el ID de recurso en el campo Nombre de la clave de cifrado.
Haz clic en Crear.
Si hay más de un perfil en la sección Perfiles de computación del sistema de la pestaña Configuración, haz que el nuevo perfil de Dataproc sea el predeterminado. Para ello, coloca el puntero sobre el campo del nombre del perfil y haz clic en la estrella que aparece.
Usar CMEK con otros recursos
La clave CMEK proporcionada se define como preferencia del sistema durante la creación de la instancia de Cloud Data Fusion. Se usa para cifrar los datos escritos en recursos recién creados por sumideros de flujos de procesamiento, como los sumideros de Cloud Storage, BigQuery, Pub/Sub o Spanner.
Esta clave solo se aplica a los recursos recién creados. Si el recurso ya existe antes de ejecutar el flujo de procesamiento, debes aplicar manualmente la clave CMEK a esos recursos.
Para cambiar la clave de CMEK, puede hacer lo siguiente:
- Usar un argumento de tiempo de ejecución.
- Definir una preferencia del sistema de Cloud Data Fusion.
Argumento de tiempo de ejecución
- En la página Pipeline Studio de Cloud Data Fusion, haz clic en la flecha desplegable situada a la derecha del botón Ejecutar.
- En el campo Name (Nombre), introduce
gcp.cmek.key.name
. - En el campo Valor, introduce el ID de recurso de tu clave.
Haz clic en Guardar.
El argumento de tiempo de ejecución que definas aquí solo se aplicará a las ejecuciones de la canalización actual.
Preferencia
- En la interfaz de usuario de Cloud Data Fusion, haga clic en ADMINISTRADOR DEL SISTEMA.
- Haz clic en la pestaña Configuration (Configuración).
- Haz clic en el desplegable Preferencias del Sistema.
- Haz clic en Editar Preferencias del Sistema.
- En el campo Key (Clave), introduce
gcp.cmek.key.name
. - En el campo Valor, introduce el ID de recurso de tu clave.
- Haz clic en Save & Close (Guardar y cerrar).