Autorizza gli account per il trasferimento di dati

Questo documento fornisce una panoramica su come BigQuery Data Transfer Service interagisce con i 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 più comuni.

Per iniziare a utilizzare BigQuery Data Transfer Service, assicurati che gli account associati al tuo progetto (sia account utente che account di servizio) siano autenticati e autorizzati con le autorizzazioni corrette per eseguire le tue esigenze di trasferimento. Per informazioni sulle autorizzazioni specifiche per origini dati, consulta la guida al trasferimento per ciascuna origine dati.

Concetti fondamentali

BigQuery Data Transfer Service automatizza i trasferimenti di dati da diverse origini dati a BigQuery. Il modello di autenticazione e autorizzazione opera in due fasi diverse: il piano di controllo e il piano dati e, per due tipi di utenti, un autore del trasferimento o un proprietario del trasferimento.

Piano di controllo

Il piano di controllo rappresenta la fase del processo di autorizzazione in cui un utente autenticato è in grado di controllare e gestire le configurazioni e le esecuzioni di trasferimento. Un utente nel piano di controllo deve disporre delle autorizzazioni IAM (Identity and Access Management) appropriate per controllare e gestire le configurazioni e le esecuzioni di trasferimento:

  • L'autorizzazione bigquery.transfers.update, che consente agli utenti di:
    • Impostazione delle configurazioni di Data Transfer.
    • Amministrare i trasferimenti esistenti, ad esempio l'aggiornamento, la disattivazione o l'eliminazione di un trasferimento.
  • L'autorizzazione bigquery.transfers.get, che consente agli utenti di monitorare le esecuzioni dei trasferimenti, ad esempio controllare lo stato delle esecuzioni dei trasferimenti o visualizzarne la cronologia e i log.

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 ulteriori 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 dei trasferimenti 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 BigQuery Data Transfer Service per avviare job BigQuery e scrivere dati nel set di dati di destinazione.

Per ulteriori dettagli sulle autorizzazioni richieste, fai riferimento alle sezioni seguenti di questa guida:

Trasferire l'autore e il proprietario trasferito

L'autore del trasferimento si riferisce all'identità dell'utente che ha creato e impostato la configurazione del trasferimento. Un utente e un autore del trasferimento di BigQuery Data Transfer Service può essere un account utente o un account di servizio.

Il proprietario del trasferimento fa riferimento all'identità dell'utente che BigQuery Data Transfer Service utilizza per autorizzare il trasferimento di dati, in particolare per estrarre i dati di origine. Per le origini dati che supportano gli account di servizio, 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 l'autore 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 dall'autore del trasferimento:

  • Quando crei un trasferimento, puoi impostare il proprietario su un account di servizio se l'origine dati supporta gli account di servizio.
  • 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 gli account di servizio) con le autorizzazioni bigquery.transfers.update e bigquery.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 potrebbero 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 di un'origine dati, consulta le guide al trasferimento.

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 il proprietario come account di servizio

Quando un account di servizio viene utilizzato come proprietario del trasferimento, le autorizzazioni necessarie vengono concesse automaticamente se l'API BigQuery Data Transfer Service è abilitata per il tuo progetto. BigQuery Data Transfer Service utilizza un agente di servizio per ottenere il token di accesso per l'account di servizio fornito dall'utente (proprietario del trasferimento).

Quando abiliti l'API BigQuery Data Transfer Service, viene creato un agente di servizio per il tuo progetto. Il sistema concede inoltre all'agente di servizio il ruolo Agente di servizio BigQuery Data Transfer (roles/bigquerydatatransfer.serviceAgent), che include l'autorizzazione iam.serviceAccounts.getAccessToken. L'autorizzazione consente all'agente di servizio BigQuery Data Transfer Service di impersonare l'account di servizio del proprietario del trasferimento per recuperare il token di accesso.

Per ulteriori informazioni sull'agente di servizio BigQuery Data Transfer Service, consulta Agente di servizio. Per ulteriori informazioni sull'utilizzo degli account di servizio e l'elenco aggiornato delle origini dati che supportano gli account di servizio, consulta Utilizzare gli account di servizio.

Trasferire il proprietario 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 utilizzando l'interfaccia di dialogo OAuth.

Devi concedere l'autorizzazione a BigQuery Data Transfer Service solo la prima volta quando crei un trasferimento per una determinata origine dati. Devi concedere di nuovo l'autorizzazione quando crei il primo trasferimento per una regione appena utilizzata, anche se utilizzi la stessa origine dati.

La modifica del proprietario del trasferimento mediante l'aggiornamento delle credenziali richiede anche l'approvazione manuale se il nuovo proprietario non ha mai creato prima un trasferimento per l'origine dati in quella regione.

Il seguente screenshot mostra l'interfaccia della finestra di dialogo OAuth durante la creazione di un trasferimento Google Ads. La finestra di dialogo mostra le autorizzazioni specifiche per l'origine dati:

Consenti a BigQuery Data Transfer Service di accedere a Google Ads.

Per revocare le autorizzazioni concesse, segui questi passaggi:

  1. Visita la pagina Account Google.
  2. Fai clic su BigQuery Data Transfer Service.
  3. Per revocare le autorizzazioni, fai clic su Rimuovi accesso. Rimuovi l'accesso che hai concesso a BigQuery Data Transfer Service.

Autorizzazione per avviare job BigQuery

Quando esegui la migrazione dalla maggior parte delle origini dati, tranne che 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 query pianificate o 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 utilizzi query pianificate o copie dei set di dati, BigQuery Data Transfer Service si basa sull'agente di servizio per scrivere dati nel set di dati di destinazione BigQuery. L'autorizzazione richiesta, roles/bigquery.dataEditor, viene concessa all'agente di servizio da BigQuery Data Transfer Service quando crei il trasferimento. Per concederla correttamente, devi disporre dell'autorizzazione bigquery.datasets.update sul set di dati di destinazione.

Quando esegui la migrazione utilizzando query pianificate o 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 gli errori relativi alle autorizzazioni

Se riscontri problemi relativi all'autorizzazione o alle autorizzazioni per il trasferimento, vedi Problemi di autorizzazione e autorizzazione.