Autorizzare gli account per il trasferimento dei dati
Questo documento fornisce una panoramica di come BigQuery Data Transfer Service interagisce con diversi tipi di account, i tipi di autorizzazione dell'account necessari per eseguire attività di trasferimento generali e i passaggi per la risoluzione dei problemi relativi agli errori di autorizzazione comuni.
Per iniziare a utilizzare BigQuery Data Transfer Service, assicurati che gli account associati al tuo progetto, sia gli account utente che i service account, siano autenticati e autorizzati con le autorizzazioni corrette per soddisfare le tue esigenze di trasferimento. Per informazioni sulle autorizzazioni specifiche per l'origine dati, consulta la guida al trasferimento per ciascuna origine dati.
Concetti fondamentali
BigQuery Data Transfer Service automatizza i trasferimenti di dati da varie origini dati a BigQuery. Il modello di autenticazione e autorizzazione opera in due fasi diverse, il control plane e il data plane, e per due tipi di utenti, un creatore o un proprietario del trasferimento.
Piano di controllo
Il control plane rappresenta la fase del processo di autorizzazione in cui un utente autenticato può controllare e gestire le configurazioni e le esecuzioni del trasferimento. Un utente nel control plane deve disporre delle autorizzazioni IAM (Identity and Access Management) appropriate per controllare e gestire le configurazioni e le esecuzioni del trasferimento:
- L'autorizzazione
bigquery.transfers.update, che consente agli utenti di svolgere le seguenti operazioni:- Configura le configurazioni di trasferimento di dati.
- Amministrare i trasferimenti esistenti, ad esempio aggiornando, disattivando o eliminando un trasferimento.
- L'autorizzazione
bigquery.transfers.get, che consente agli utenti di monitorare le esecuzioni del trasferimento, ad esempio controllare lo stato dell'esecuzione del trasferimento o visualizzare la cronologia e i log delle esecuzioni del trasferimento.
Se utilizzi la console Google Cloud o lo strumento a riga di comando bq per creare un
trasferimento, devi disporre anche dell'autorizzazione bigquery.transfers.get.
L'autorizzazione bigquery.transfers.update non è necessaria per configurare una query pianificata. Per maggiori informazioni, consulta le
autorizzazioni richieste
per le query pianificate.
Piano dati
Il piano dati rappresenta la fase al di fuori del controllo diretto di un utente. Nel piano dati, BigQuery Data Transfer Service è in grado di eseguire trasferimenti di dati in modalità offline e può attivare automaticamente le esecuzioni di trasferimento in base a una pianificazione specificata dall'utente. Nel piano dati, le credenziali del proprietario del trasferimento vengono utilizzate per accedere ai dati di origine e (a seconda dell'origine dati) vengono utilizzate le credenziali del proprietario del trasferimento o l'agente di servizio di BigQuery Data Transfer Service per avviare i job BigQuery e scrivere i dati nel set di dati di destinazione.
Per maggiori dettagli sulle autorizzazioni richieste, consulta le sezioni seguenti di questa guida:
- Autorizzazione di accesso in lettura per origini dati esterne
- Autorizzazione per avviare job BigQuery
- Autorizzazione per eseguire job BigQuery e scrivere dati nel set di dati di destinazione
Trasferimento del creator e trasferimento della proprietà
Un creatore del trasferimento si riferisce all'identità utente che ha creato e configurato la configurazione del trasferimento. Un utente e un creatore di trasferimenti di BigQuery Data Transfer Service possono essere un account utente o un service account.
Il proprietario del trasferimento si riferisce all'identità utente che BigQuery Data Transfer Service utilizza per autorizzare il trasferimento dei dati, in particolare per estrarre i dati di origine. Per le origini dati che supportano i service account, il proprietario del trasferimento può essere un account utente o un account di servizio. Per altre origini dati, il proprietario del trasferimento deve essere un account utente.
Il proprietario del trasferimento e il creatore del trasferimento possono avere la stessa identità utente, ma non è un requisito. Esistono diversi modi per impostare il proprietario del trasferimento in modo che sia un utente diverso dal creatore del trasferimento:
- Quando crei un trasferimento, puoi impostare il proprietario su un account di servizio se l'origine dati supporta i service account.
- Una volta creato un trasferimento, puoi trasferire la proprietà a un nuovo account utente (o a un account di servizio se l'origine dati supporta i service account)
che disponga delle autorizzazioni
bigquery.transfers.updateebigquery.transfers.get. Devi aver eseguito l'accesso al nuovo account quando aggiorni le credenziali.
Autorizzazione di accesso in lettura per origini dati esterne
Le autorizzazioni necessarie per leggere i dati di origine possono variare da un'origine dati all'altra. Ad esempio, l'accesso a Google Ads richiede le autorizzazioni di accesso in lettura all'ID cliente Google Ads. Analogamente, Google Play richiede l'accesso ai report in Google Play Console. Per ulteriori informazioni sulle autorizzazioni specifiche per un'origine dati, consulta le guide al trasferimento per ciascuna origine dati.
A seconda del tipo di identità del proprietario del trasferimento, è necessario un metodo di autorizzazione diverso per recuperare il token di accesso per accedere ai dati di origine.
Trasferire la proprietà come account di servizio
Quando un account di servizio viene utilizzato come proprietario del trasferimento, le autorizzazioni necessarie vengono concesse automaticamente quando l'API BigQuery Data Transfer Service è abilitata per il tuo progetto. BigQuery Data Transfer Service utilizza un service agent per ottenere il token di accesso per il account di servizio fornito dall'utente (proprietario del trasferimento).
Quando abiliti l'API BigQuery Data Transfer Service, viene creato un service agent
per il tuo progetto. Il sistema concede inoltre all'agente di servizio il
ruolo Agente BigQuery Data Transfer Service (roles/bigquerydatatransfer.serviceAgent),
che include l'autorizzazione iam.serviceAccounts.getAccessToken. Questa autorizzazione consente all'agente di servizio BigQuery Data Transfer Service di simulare l'identità dell'account di servizio proprietario del trasferimento per recuperare il token di accesso.
Per saperne di più sull'agente di servizio BigQuery Data Transfer Service, consulta Agente di servizio. Per ulteriori informazioni sull'utilizzo dei service account e sull'elenco aggiornato delle origini dati che supportano i account di servizio, consulta Utilizza i service account.
Trasferire la proprietà come account utente
Se il proprietario del trasferimento che crea la configurazione di trasferimento è un account utente (non un account di servizio), devi concedere manualmente l'autorizzazione a BigQuery Data Transfer Service per ottenere il token di accesso per l'account utente e accedere ai dati di origine per conto del proprietario del trasferimento. Puoi concedere l'approvazione manuale con l'interfaccia della finestra di dialogo OAuth.
Devi concedere l'autorizzazione a BigQuery Data Transfer Service solo la prima volta che crei un trasferimento per una determinata origine dati. Devi concedere di nuovo l'autorizzazione quando crei il primo trasferimento per una regione utilizzata di recente, anche se utilizzi la stessa origine dati. I trasferimenti di dati dai canali YouTube sono l'eccezione: devi concedere manualmente l'approvazione delle autorizzazioni ogni volta che crei un trasferimento di dati del canale YouTube.
La modifica del proprietario del trasferimento tramite l'aggiornamento delle credenziali richiede anche l'approvazione manuale se il nuovo proprietario non ha mai creato un trasferimento per l'origine dati in quella regione.
Lo screenshot seguente mostra l'interfaccia della finestra di dialogo OAuth quando crei un trasferimento Google Ads. La finestra di dialogo mostra le autorizzazioni specifiche dell'origine dati da concedere:
Per revocare le autorizzazioni concesse:
- Vai alla pagina dell'Account Google.
- Fai clic su BigQuery Data Transfer Service.
- Per revocare le autorizzazioni, fai clic su Rimuovi accesso.
Autorizzazione per avviare job BigQuery
Quando esegui la migrazione dalla maggior parte delle origini dati, tranne quando esegui la migrazione utilizzando query pianificate o copie dei set di dati, BigQuery Data Transfer Service si basa sugli agenti di servizio per avviare i job BigQuery per il tuo progetto. L'autorizzazione richiesta bigquery.job.create viene concessa automaticamente all'agente di servizio quando abiliti l'API BigQuery Data Transfer Service per il tuo progetto. Per ulteriori
informazioni, consulta Abilitare BigQuery Data Transfer Service.
Quando esegui la migrazione utilizzando le query pianificate o le copie dei set di dati, BigQuery Data Transfer Service utilizza le credenziali del proprietario del trasferimento per avviare i job BigQuery.
Autorizzazione per eseguire job BigQuery e scrivere dati nel set di dati di destinazione
Quando esegui la migrazione dalla maggior parte delle origini dati, tranne quando esegui la migrazione utilizzando query pianificate o copie del set di dati, BigQuery Data Transfer Service si basa sul service agent per scrivere i dati nel set di dati di destinazione BigQuery. L'autorizzazione richiesta, roles/bigquery.dataEditor, viene concessa al service agent da BigQuery Data Transfer Service quando crei il trasferimento. Per concedere correttamente l'autorizzazione, devi disporre dell'autorizzazione
bigquery.datasets.update sul set di dati di destinazione.
Quando esegui la migrazione utilizzando le query pianificate o le copie dei set di dati, BigQuery Data Transfer Service utilizza le credenziali del proprietario del trasferimento per eseguire i job BigQuery e scrivere i dati nel set di dati di destinazione BigQuery.
Risolvere i problemi relativi agli errori di autorizzazione
Se riscontri problemi relativi ad autorizzazioni o permessi per il tuo trasferimento, consulta la sezione Problemi di autorizzazione e permessi.