Sicurezza e autorizzazioni di Dataflow

Le pipeline Dataflow possono essere eseguite localmente (per eseguire test su piccoli set di dati) o su risorse Google Cloud gestite utilizzando il servizio gestito Dataflow. Che sia in esecuzione in locale o nel cloud, la tua pipeline e i suoi worker utilizzano un sistema di autorizzazioni per mantenere l'accesso sicuro ai file e alle risorse della pipeline. Le autorizzazioni Dataflow vengono assegnate in base al ruolo utilizzato per accedere alle risorse della pipeline. Questo documento illustra i seguenti concetti:

  • Upgrade delle VM Dataflow.
  • Ruoli e autorizzazioni richiesti per l'esecuzione di pipeline locali e Google Cloud.
  • Ruoli e autorizzazioni richiesti per accedere alle risorse della pipeline tra progetti.
  • Tipi di dati utilizzati in un servizio Dataflow e nella sicurezza dei dati.

Prima di iniziare

Per saperne di più sugli identificatori di progetto Google Cloud, consulta la Panoramica della piattaforma. Questi identificatori includono il nome, l'ID e il numero del progetto.

Esegui l'upgrade e applica le patch alle VM Dataflow

Dataflow utilizza Container-Optimized OS. Di conseguenza, i processi di sicurezza di Container-Optimized OS si applicano anche a Dataflow.

Le pipeline in modalità batch sono vincolate al tempo e non richiedono manutenzione. Quando viene avviata una nuova pipeline batch, viene utilizzata l'immagine Dataflow più recente.

Per le pipeline in modalità flusso, se è richiesta immediatamente una patch di sicurezza, Google Cloud ti avvisa utilizzando i bollettini sulla sicurezza. Per le pipeline in modalità flusso, consigliamo di utilizzare l'opzione --update per riavviare il job con l'immagine Dataflow più recente.

Le immagini container di Dataflow sono disponibili nella console Google Cloud.

Sicurezza e autorizzazioni per le pipeline locali

Quando viene eseguita a livello locale, la pipeline Apache Beam viene eseguita come l'account Google Cloud che hai configurato con l'eseguibile Google Cloud CLI. Quindi, esegui le operazioni dell'SDK Apache Beam in locale e il tuo account Google Cloud avrà accesso agli stessi file e alle stesse risorse.

Per elencare l'account Google Cloud selezionato come predefinito, esegui il comando gcloud config list.

Sicurezza e autorizzazioni per le pipeline su Google Cloud

Quando esegui la pipeline, Dataflow utilizza due account di servizio per gestire la sicurezza e le autorizzazioni:

  • L'account di servizio Dataflow. Il servizio Dataflow utilizza l'account di servizio Dataflow nell'ambito della richiesta di creazione del job, ad esempio per controllare la quota di progetto e creare istanze worker per tuo conto. Inoltre, durante l'esecuzione del job, Dataflow utilizza l'account di servizio per gestirlo. Questo account è anche noto come agente di servizio Dataflow.

  • L'account di servizio worker. Le istanze worker utilizzano l'account di servizio worker per accedere alle risorse di input e di output dopo che hai inviato il job. Per impostazione predefinita, i worker utilizzano l'account di servizio predefinito di Compute Engine associato al tuo progetto come account di servizio worker. Affinché l'account di servizio worker sia in grado di creare, eseguire ed esaminare un job, deve avere i ruoli seguenti:

    • roles/dataflow.admin
    • roles/dataflow.worker

Inoltre, quando le pipeline Apache Beam accedono alle risorse Google Cloud, devi concedere i ruoli richiesti all'account di servizio worker del progetto Dataflow. L'account di servizio worker deve essere in grado di accedere alle risorse durante l'esecuzione del job Dataflow. Ad esempio, se il job scrive in BigQuery, anche il tuo account di servizio deve avere almeno il ruolo roles/bigquery.dataEditor. Esempi di risorse includono:

Infine, per rappresentare l'account di servizio, l'account utente deve avere il seguente ruolo: iam.serviceAccounts.actAs. A seconda di altre autorizzazioni del progetto, al tuo account utente potrebbe essere necessario anche il ruolo roles/dataflow.developer.

Per aggiungere i ruoli richiesti nel tuo progetto, segui questi passaggi.

Console

  1. Nella console Google Cloud, vai alla pagina IAM.

    Vai a IAM

  2. Seleziona il progetto.

  3. Nella riga contenente il tuo account utente, fai clic su Modifica entità e poi su Aggiungi un altro ruolo.

  4. Nell'elenco a discesa, seleziona il ruolo Utente account di servizio.

  5. Nella riga contenente l'account di servizio predefinito di Compute Engine, fai clic su Modifica entità, quindi su Aggiungi un altro ruolo.

  6. Nell'elenco a discesa, seleziona il ruolo Worker Dataflow.

  7. Ripeti l'operazione per Amministratore Dataflow e per tutti i ruoli richiesti dalle risorse utilizzate nel job, quindi fai clic su Salva.

    Per ulteriori informazioni sulla concessione dei ruoli, consulta Concedere un ruolo IAM utilizzando la console.

Interfaccia a riga di comando gcloud

  1. Concedi il ruolo roles/iam.serviceAccountUser al tuo account utente. Esegui questo comando:

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS --role=roles/iam.serviceAccountUser
    
    • Sostituisci PROJECT_ID con l'ID progetto.
    • Sostituisci EMAIL_ADDRESS con l'indirizzo email dell'account utente.
  2. Concedi ruoli al tuo account di servizio predefinito di Compute Engine. Esegui il comando seguente una volta per ognuno dei seguenti ruoli IAM: roles/dataflow.admin, roles/dataflow.worker e tutti i ruoli richiesti dalle risorse utilizzate nel job.

    gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" --role=SERVICE_ACCOUNT_ROLE
    
    • Sostituisci PROJECT_ID con l'ID progetto.
    • Sostituisci PROJECT_NUMBER con il numero del progetto. Per trovare il numero del progetto, consulta Identifica i progetti o utilizza il comando gcloud projects describe.
    • Sostituisci SERVICE_ACCOUNT_ROLE con ogni singolo ruolo.

Account di servizio Dataflow

Tutti i progetti che hanno utilizzato la risorsa Dataflow Job hanno un account di servizio Dataflow, noto anche come agente di servizio Dataflow, che ha il seguente indirizzo email:

service-PROJECT_NUMBER@dataflow-service-producer-prod.iam.gserviceaccount.com

Questo account di servizio viene creato e gestito da Google e assegnato automaticamente al tuo progetto al primo utilizzo della risorsa Dataflow Job.

Nell'ambito dell'esecuzione della pipeline Dataflow, il servizio Dataflow manipola le risorse per tuo conto. Ad esempio, crea VM aggiuntive. Quando esegui la pipeline sul servizio Dataflow, il servizio utilizza questo account di servizio.

A questo account viene assegnato il ruolo Agente di servizio Dataflow nel progetto. Dispone delle autorizzazioni necessarie per eseguire un job Dataflow nel progetto, compreso l'avvio dei worker di Compute Engine. Questo account viene utilizzato esclusivamente dal servizio Dataflow ed è specifico per il tuo progetto.

Puoi esaminare le autorizzazioni dell'account di servizio Dataflow nella console Google Cloud o in Google Cloud CLI.

Console

  1. Vai alla pagina Ruoli.

    Vai a Ruoli

  2. Se applicabile, seleziona il tuo progetto.

  3. Nell'elenco, fai clic sul titolo Agente di servizio Cloud Dataflow. Si apre una pagina in cui sono elencate le autorizzazioni assegnate all'account di servizio Dataflow.

Interfaccia a riga di comando gcloud

Visualizza le autorizzazioni dell'account di servizio Dataflow:

gcloud iam roles describe roles/dataflow.serviceAgent

Poiché i servizi Google Cloud prevedono l'accesso in lettura e scrittura al progetto e alle sue risorse, si consiglia di non modificare le autorizzazioni predefinite stabilite automaticamente per il progetto. Se un account di servizio Dataflow perde le autorizzazioni a un progetto, Dataflow non può avviare VM o eseguire altre attività di gestione.

Se rimuovi le autorizzazioni per l'account di servizio dal criterio Identity and Access Management (IAM), l'account rimane presente perché è di proprietà del servizio Dataflow.

Account di servizio worker

Le istanze di Compute Engine eseguono le operazioni dell'SDK Apache Beam nella cloud. Questi worker utilizzano l'account di servizio worker del tuo progetto per accedere ai file e ad altre risorse associate alla pipeline. L'account di servizio worker viene utilizzato come identità per tutte le VM worker e tutte le richieste provenienti dalla VM utilizzano l'account di servizio worker. Questo account di servizio viene utilizzato anche per interagire con risorse come i bucket Cloud Storage e gli argomenti Pub/Sub.

Affinché l'account di servizio worker sia in grado di creare, eseguire ed esaminare un job, deve avere i ruoli seguenti:

  • roles/dataflow.admin
  • roles/dataflow.worker

Account di servizio worker predefinito

Per impostazione predefinita, i worker utilizzano l'account di servizio predefinito di Compute Engine del progetto come account di servizio worker. Questo account di servizio ha il seguente indirizzo email:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Questo account di servizio viene creato automaticamente quando abiliti l'API Compute Engine per il tuo progetto dalla libreria API nella console Google Cloud.

L'account di servizio predefinito di Compute Engine ha accesso ampio alle risorse del tuo progetto, il che ti aiuta a iniziare a utilizzare Dataflow. Tuttavia, per i carichi di lavoro di produzione, ti consigliamo di creare un nuovo account di servizio con solo i ruoli e le autorizzazioni di cui hai bisogno.

Specifica un account di servizio worker gestito dall'utente

Per creare e utilizzare le risorse con un controllo dell'accesso granulare, puoi creare un account di servizio gestito dall'utente. Utilizza questo account come account di servizio worker.

  1. Se non hai un account di servizio gestito dall'utente, creane uno.

  2. Imposta i ruoli IAM richiesti per il tuo account di servizio.

    • Affinché l'account di servizio sia in grado di creare, eseguire ed esaminare un job, deve avere i ruoli roles/dataflow.admin e roles/dataflow.worker o un ruolo IAM personalizzato con le autorizzazioni richieste per questi ruoli. Per un elenco delle autorizzazioni richieste, consulta Ruoli.
    • Il tuo account di servizio potrebbe anche richiedere ruoli aggiuntivi per utilizzare le risorse Google Cloud come richiesto dal tuo job, ad esempio BigQuery, Pub/Sub o Cloud Storage. Ad esempio, se il job legge da BigQuery, anche il tuo account di servizio deve avere almeno il ruolo roles/bigquery.dataViewer.
    • Assicurati che l'account di servizio gestito dall'utente disponga dell'accesso in lettura e scrittura alle località temporanee e di gestione temporanea specificate nel job Dataflow.
    • Per impersonare l'account di servizio, il tuo account utente deve avere l'autorizzazione iam.serviceAccounts.actAs.
  3. Concedi i ruoli seguenti all'account di servizio Dataflow (service-PROJECT_NUMBER@dataflow-service-producer-prod.iam.gserviceaccount.com) e all'agente di servizio Compute Engine (service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com). Entrambi questi account sono account di servizio gestiti da Google sull'account di servizio gestito dall'utente. Questi account si trovano nello stesso progetto dell'account di servizio gestito dall'utente, anche se il job Dataflow viene eseguito in un progetto diverso.

    Per istruzioni che mostrano come concedere ruoli agli account di servizio, consulta la sezione Concedi un singolo ruolo nella pagina Gestire l'accesso agli account di servizio.

  4. Quando esegui il job di pipeline, specifica il tuo account di servizio.

    Java

    Utilizza l'opzione --serviceAccount e specifica il tuo account di servizio quando esegui il job di pipeline dalla riga di comando: --serviceAccount=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

    Utilizza l'opzione --service-account-email e specifica il tuo account di servizio quando esegui il job di pipeline come modello flessibile: --service-account-email=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

    Python

    Utilizza l'opzione --service_account_email e specifica il tuo account di servizio quando esegui il job di pipeline: --service_account_email=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

    Go

    Utilizza l'opzione --service_account_email e specifica il tuo account di servizio quando esegui il job di pipeline: --service_account_email=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Puoi ottenere un elenco degli account di servizio associati al tuo progetto nella pagina Autorizzazioni della console Google Cloud.

L'account di servizio gestito dall'utente può trovarsi nello stesso progetto del job o in un progetto diverso. Se l'account di servizio e il job si trovano in progetti diversi, devi configurare l'account di servizio prima di eseguire il job.

Accesso alle risorse Google Cloud

Le pipeline Apache Beam possono accedere alle risorse Google Cloud nello stesso progetto Google Cloud o in altri progetti. Le risorse includono:

Per garantire che la pipeline Apache Beam possa accedere a queste risorse, devi utilizzare i rispettivi meccanismi di controllo dell'accesso delle risorse per concedere esplicitamente l'accesso all'account di servizio worker del progetto Dataflow.

Se utilizzi le funzionalità di Assured Workloads con Dataflow, ad esempio regioni e assistenza nell'UE con controlli di sovranità, tutti i connettori di Cloud Storage, BigQuery, Pub/Sub, I/O e altre risorse a cui accede la tua pipeline devono trovarsi nel progetto o nella cartella Assured Workloads della tua organizzazione.

Se utilizzi un account di servizio worker gestito dall'utente o accedi alle risorse in altri progetti, potrebbe essere necessaria un'ulteriore azione. Gli esempi riportati di seguito presuppongono che venga utilizzato l'account di servizio predefinito di Compute Engine, ma puoi anche utilizzare un account di servizio worker gestito dall'utente.

Accedere ai repository Artifact Registry

Quando utilizzi container personalizzati con Dataflow, potresti caricare gli artefatti in un repository Artifact Registry.

Per utilizzare Artifact Registry con Dataflow, devi concedere almeno l'accesso come Writer Artifact Registry (role/artifactregistry.writer) all'account di servizio worker che esegue il job Dataflow.

Tutti i contenuti del repository sono criptati mediante chiavi di crittografia gestite da Google o dal cliente. Artifact Registry utilizza chiavi di crittografia gestite da Google per impostazione predefinita e per questa opzione non è richiesta alcuna configurazione.

Accedi ai bucket Cloud Storage

Per concedere al tuo progetto Dataflow l'accesso a un bucket Cloud Storage, rendi il bucket accessibile all'account di servizio worker del progetto Dataflow. Come minimo, il tuo account di servizio deve disporre delle autorizzazioni di lettura e scrittura sia per il bucket sia per i relativi contenuti. Puoi utilizzare le autorizzazioni IAM per Cloud Storage per concedere l'accesso richiesto.

Per concedere al tuo account di servizio worker le autorizzazioni necessarie per leggere e scrivere in un bucket, utilizza il comando gcloud storage buckets add-iam-policy-binding. Questo comando aggiunge l'account di servizio del progetto Dataflow a un criterio a livello di bucket.

gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" --role=SERVICE_ACCOUNT_ROLE

Sostituisci quanto segue:

Se il tuo account di servizio deve avere il controllo completo sugli oggetti di archiviazione, inclusi l'elenco, la creazione, la visualizzazione e l'eliminazione di oggetti e cartelle gestite, concedi al tuo account di servizio il ruolo Amministratore oggetti Storage (roles/storage.objectAdmin).

Per recuperare un elenco dei bucket Cloud Storage in un progetto Google Cloud, utilizza il comando gcloud storage buckets list:

gcloud storage buckets list --project= PROJECT_ID

Sostituisci PROJECT_ID con l'ID del progetto.

A meno che tu non sia limitato da criteri dell'organizzazione che limitano la condivisione delle risorse, puoi accedere a un bucket che si trova in un progetto diverso da quello della pipeline Dataflow. Per saperne di più sulle limitazioni dei domini, consulta Limitazione delle identità per dominio.

Se non hai un bucket, creane uno nuovo. Quindi, concedi all'account di servizio worker le autorizzazioni necessarie per leggere e scrivere nel bucket.

Puoi anche impostare le autorizzazioni del bucket dalla console Google Cloud. Per saperne di più, consulta Impostare le autorizzazioni per i bucket.

Cloud Storage offre due sistemi per concedere agli utenti l'accesso ai tuoi bucket e ai tuoi oggetti: IAM ed elenchi di controllo dell'accesso (ACL). Nella maggior parte dei casi, IAM è il metodo consigliato per controllare l'accesso alle risorse.

  • IAM controlla le autorizzazioni in tutto Google Cloud e ti consente di concedere autorizzazioni a livello di bucket e di progetto. Per un elenco dei ruoli IAM associati a Cloud Storage e le autorizzazioni contenute in ogni ruolo, consulta Ruoli IAM per Cloud Storage. Se hai bisogno di un maggiore controllo sulle autorizzazioni, crea un ruolo personalizzato.

  • Se utilizzi ACL per controllare l'accesso, assicurati che le autorizzazioni dell'account di servizio worker siano coerenti con le impostazioni IAM. A causa dell'incoerenza tra i criteri IAM e ACL, il bucket Cloud Storage potrebbe diventare inaccessibile ai job Dataflow quando viene eseguita la migrazione del bucket Cloud Storage dall'accesso granulare a un accesso uniforme a livello di bucket. Per ulteriori informazioni, consulta le indicazioni sugli errori comuni.

Accedi ai set di dati BigQuery

Puoi utilizzare l'API BigQueryIO per accedere ai set di dati BigQuery, nello stesso progetto in cui utilizzi Dataflow o in un altro progetto. Affinché l'origine e il sink BigQuery funzionino correttamente, i due account seguenti devono avere accesso a tutti i set di dati BigQuery da cui il job Dataflow legge o in cui scrive:

Potresti dover configurare BigQuery per concedere esplicitamente l'accesso a questi account. Consulta Controllo degli accessi a BigQuery per ulteriori informazioni su come concedere l'accesso ai set di dati BigQuery utilizzando la pagina BigQuery o l'API BigQuery.

Tra le autorizzazioni BigQuery richieste, la pipeline richiede l'autorizzazione IAM bigquery.datasets.get per accedere a un set di dati BigQuery. In genere, la maggior parte dei ruoli IAM di BigQuery include l'autorizzazione bigquery.datasets.get, ma il ruolo roles/bigquery.jobUser è un'eccezione.

Ad esempio, se il tuo account Google Cloud è cloudysanfrancisco@gmail.com e il numero del progetto in cui esegui il job Dataflow è 123456789, ai seguenti account deve essere concesso l'accesso ai set di dati BigQuery utilizzati: cloudysanfrancisco@gmail.com e 123456789-compute@developer.gserviceaccount.com.

Accedere ad argomenti e sottoscrizioni Pub/Sub

Per accedere a un argomento o a un abbonamento Pub/Sub, utilizza le funzionalità di Identity and Access Management di Pub/Sub per configurare le autorizzazioni per l'account di servizio worker.

Le autorizzazioni dei seguenti ruoli Pub/Sub sono pertinenti:

  • roles/pubsub.subscriber è obbligatorio per utilizzare i dati.
  • roles/pubsub.editor è obbligatorio per creare una sottoscrizione Pub/Sub.
  • roles/pubsub.viewer è consigliato, per consentire a Dataflow di eseguire query sulle configurazioni di argomenti e sottoscrizioni. Questa configurazione offre due vantaggi:
    • Dataflow può verificare la presenza di impostazioni non supportate nelle sottoscrizioni che potrebbero non funzionare come previsto.
    • Se l'abbonamento non utilizza la scadenza di ACK predefinita di 10 secondi, le prestazioni migliorano. Dataflow estende ripetutamente la scadenza di ACK di un messaggio durante l'elaborazione da parte della pipeline. Senza le autorizzazioni pubsub.viewer, Dataflow non è in grado di eseguire query sulla scadenza di conferma, perciò deve assumere una scadenza predefinita. Questa configurazione fa sì che Dataflow emetta più richieste modifyAckDeadline del necessario.
    • Se i Controlli di servizio VPC sono abilitati nel progetto proprietario della sottoscrizione o dell'argomento, le regole in entrata basate su indirizzi IP non consentono a Dataflow di eseguire query sulle configurazioni. In questo caso, è richiesta una regola in entrata basata sull'account di servizio worker.

Per maggiori informazioni e alcuni esempi di codice che dimostrano come utilizzare le funzionalità di Identity and Access Management di Pub/Sub, consulta Caso d'uso di esempio: comunicazione tra progetti.

Accedi a Firestore

Per accedere a un database Firestore (in modalità Native o in modalità Datastore), aggiungi il tuo account di servizio worker Dataflow (ad esempio PROJECT_NUMBER-compute@developer.gserviceaccount.com) come editor del progetto proprietario del database oppure utilizza un ruolo Datastore più restrittivo come roles/datastore.viewer. Inoltre, abilita l'API Firestore in entrambi i progetti dalla libreria API nella console Google Cloud.

Accedi alle immagini per i progetti con un criteri per l'utilizzo di immagini attendibili

Se hai configurato un criterio relativo alle immagini attendibili per il tuo progetto e l'immagine di avvio si trova in un altro progetto, assicurati che il criteri per l'utilizzo di immagini attendibili sia configurato in modo da avere accesso all'immagine. Ad esempio, se esegui un job Dataflow basato su modelli, assicurati che il file dei criteri includa l'accesso al progetto dataflow-service-producer-prod. Questo progetto Google Cloud contiene le immagini per i job modello.

Accesso ai dati e sicurezza

Il servizio Dataflow funziona con due tipi di dati:

  • Dati dell'utente finale. Questi dati vengono elaborati da una pipeline Dataflow. Una pipeline tipica legge i dati da una o più origini, implementa le trasformazioni dei dati e scrive i risultati in uno o più sink. Tutte le origini e i sink sono servizi di archiviazione non gestiti direttamente da Dataflow.

  • Dati operativi. Questi dati includono tutti i metadati necessari per gestire una pipeline Dataflow. Questi dati includono sia metadati forniti dall'utente, come il nome di un job o le opzioni della pipeline, sia metadati generati dal sistema come un ID job.

Il servizio Dataflow utilizza diversi meccanismi di sicurezza per mantenere i dati protetti e privati. Questi meccanismi si applicano ai seguenti scenari:

  • Invio di una pipeline al servizio
  • Valutare una pipeline
  • Richiedere l'accesso alla telemetria e alle metriche durante e dopo l'esecuzione di una pipeline
  • Utilizzo di un servizio Dataflow come shuffling o Streaming Engine

Località dei dati

Tutte le operazioni di elaborazione dei dati di base per il servizio Dataflow avvengono nella regione specificata nel codice della pipeline. Se non viene specificata una regione, viene utilizzata la regione predefinita us-central1. Se specifichi questa opzione nel codice della pipeline, il job di pipeline può facoltativamente leggere e scrivere da origini e sink in altre regioni. Tuttavia, l'elaborazione effettiva dei dati avviene solo nella regione specificata per l'esecuzione delle VM Dataflow.

La logica della pipeline viene valutata su singole istanze VM worker. Puoi specificare la zona in cui si trovano queste istanze e la rete privata su cui comunicano. I calcoli accessori per la piattaforma dipendono da metadati come località di Cloud Storage o dimensioni dei file.

Dataflow è un servizio a livello di regione. Per ulteriori informazioni sulla località dei dati e sulle regioni, consulta Regioni di Dataflow.

Dati nell'invio di una pipeline

Le autorizzazioni IAM per il controllo dell'accesso al servizio Dataflow per il controllo del progetto Google Cloud. Qualsiasi entità a cui sono stati assegnati i diritti di editor o proprietario per il progetto può inviare pipeline al servizio. Per inviare le pipeline, devi eseguire l'autenticazione utilizzando Google Cloud CLI. Dopo l'autenticazione, le pipeline vengono inviate utilizzando il protocollo HTTPS. Per istruzioni su come eseguire l'autenticazione con le credenziali del tuo account Google Cloud, consulta la quickstart per la lingua che stai utilizzando.

Dati in una valutazione della pipeline

Nell'ambito della valutazione di una pipeline, i dati temporanei potrebbero essere generati e archiviati localmente nelle istanze VM worker o in Cloud Storage. I dati temporanei vengono criptati at-rest e non vengono mantenuti al termine della valutazione della pipeline. Questi dati possono anche essere archiviati nel servizio shuffling o nel servizio Streaming Engine (se hai scelto il servizio) nella stessa regione specificata nella pipeline Dataflow.

Java

Per impostazione predefinita, le VM di Compute Engine vengono eliminate al completamento del job di Dataflow, indipendentemente dal fatto che abbia esito positivo o negativo. Di conseguenza, il disco permanente associato e tutti i dati intermedi che potrebbero essere archiviati al suo interno vengono eliminati. I dati intermedi archiviati in Cloud Storage sono disponibili in località secondarie del percorso di Cloud Storage che fornisci come --stagingLocation o --tempLocation. Se scrivi l'output in un file Cloud Storage, è possibile che nel percorso di output vengano creati file temporanei prima che l'operazione di scrittura sia finalizzata.

Python

Per impostazione predefinita, le VM di Compute Engine vengono eliminate al completamento del job di Dataflow, indipendentemente dal fatto che abbia esito positivo o negativo. Di conseguenza, il disco permanente associato e tutti i dati intermedi che potrebbero essere archiviati al suo interno vengono eliminati. I dati intermedi archiviati in Cloud Storage sono disponibili in località secondarie del percorso di Cloud Storage che fornisci come --staging_location o --temp_location. Se scrivi l'output in un file Cloud Storage, è possibile che nel percorso di output vengano creati file temporanei prima che l'operazione di scrittura sia finalizzata.

Go

Per impostazione predefinita, le VM di Compute Engine vengono eliminate al completamento del job di Dataflow, indipendentemente dal fatto che abbia esito positivo o negativo. Di conseguenza, il disco permanente associato e tutti i dati intermedi che potrebbero essere archiviati al suo interno vengono eliminati. I dati intermedi archiviati in Cloud Storage sono disponibili in località secondarie del percorso di Cloud Storage che fornisci come --staging_location o --temp_location. Se scrivi l'output in un file Cloud Storage, è possibile che nel percorso di output vengano creati file temporanei prima che l'operazione di scrittura sia finalizzata.

Dati nei log e nella telemetria della pipeline

Le informazioni archiviate in Cloud Logging sono generate principalmente dal codice nel programma Dataflow. Il servizio Dataflow potrebbe anche generare dati di avviso ed errore in Cloud Logging, ma questi dati sono gli unici dati intermedi che il servizio aggiunge ai log. Cloud Logging è un servizio globale.

I dati di telemetria e le metriche associate sono criptati at-rest e l'accesso a questi dati è controllato dalle autorizzazioni di lettura del progetto Google Cloud.

Dati nei servizi Dataflow

Se utilizzi Dataflow Shuffle o Dataflow Streaming per la tua pipeline, non specificare le opzioni della pipeline di zona. Specifica invece la regione e imposta il valore su una delle regioni in cui è disponibile shuffling o streaming. Dataflow seleziona automaticamente la zona all'interno della regione da te specificata. I dati degli utenti finali in transito rimangono all'interno delle VM worker e nella stessa zona. Questi job Dataflow possono comunque leggere e scrivere in origini e sink che si trovano all'esterno della zona VM. I dati in transito possono essere inviati anche ai servizi Dataflow Shuffle o Dataflow Streaming, ma i dati rimangono sempre nella regione specificata nel codice della pipeline.

Ti consigliamo di utilizzare i meccanismi di sicurezza disponibili nelle risorse cloud sottostanti della tua pipeline. Questi meccanismi includono le funzionalità di sicurezza dei dati di origini dati e sink come BigQuery e Cloud Storage. È inoltre preferibile non mescolare diversi livelli di attendibilità in un singolo progetto.