Autorizzare gli account per il trasferimento dei dati

Questo documento fornisce una panoramica dell'interazione di BigQuery Data Transfer Service diversi tipi di account, i tipi di autorizzazione dell'account che devi eseguire attività di trasferimento generali e passaggi di risoluzione dei problemi per le autorizzazioni più comuni errori.

Per iniziare a utilizzare BigQuery Data Transfer Service, assicurati che gli account associati al tuo progetto (account utente e account di servizio) autenticati e autorizzati con le autorizzazioni corrette per eseguire in caso di necessità di trasferimento. Per informazioni sulle autorizzazioni specifiche per origine dati, consulta guida al trasferimento per ogni origine dati.

Concetti fondamentali

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

Piano di controllo

Il piano di controllo rappresenta la fase del processo di autorizzazione in cui utente autenticato è in grado di controllare e gestire le configurazioni di trasferimento e viene eseguito. 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 dei trasferimenti:

  • L'autorizzazione bigquery.transfers.update, che consente agli utenti di svolgere le seguenti operazioni:
    • Configura le configurazioni di trasferimento dei dati.
    • Amministra i trasferimenti esistenti, ad esempio l'aggiornamento, la disattivazione o l'eliminazione un trasferimento.
  • L'autorizzazione bigquery.transfers.get, che consente agli utenti di monitorare le esecuzioni di trasferimento, ad esempio controllare lo stato dell'esecuzione del trasferimento o visualizzare la cronologia e i log delle esecuzioni di 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 ulteriori informazioni, vedi le autorizzazioni richieste per le query pianificate.

Piano dati

Il data plane rappresenta la fase al di fuori del controllo diretto di un utente. Nel piano di dati, BigQuery Data Transfer Service è in grado di eseguire i 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, la credenziale del proprietario del trasferimento utilizzato per accedere ai dati di origine e, a seconda dell'origine dati, trasferire le credenziali del proprietario o l'agente di servizio di BigQuery Data Transfer Service viene utilizzato per avviare i job BigQuery e scrivere dati set di dati di destinazione.

Per ulteriori dettagli sulle autorizzazioni necessarie, consulta le sezioni seguenti in in questa guida:

Confronto tra creator e proprietario trasferito

Un creatore del trasferimento si riferisce all'identità dell'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 account di servizio.

Un proprietario del trasferimento si riferisce all'identità utente utilizzata da BigQuery Data Transfer Service per autorizzare il trasferimento dei 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 altri dati di origine, 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 su un utente diverso da quello che ha creato il 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 utente (o a un account di servizio, se l'origine dati supporta gli account di servizio) con bigquery.transfers.update e bigquery.transfers.get autorizzazioni aggiuntive. 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, per accedere a Google Ads sono necessarie 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, a un'origine dati, consulta le guide al trasferimento per ogni origine dati.

A seconda del tipo di identità del proprietario del trasferimento, viene applicata per recuperare il token di accesso per accedere ai dati di origine.

Trasferisci il proprietario come account di servizio

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

Quando attivi 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 BigQuery Data Transfer Service Agent (roles/bigquerydatatransfer.serviceAgent), che include l'autorizzazione iam.serviceAccounts.getAccessToken. Questa permissione consente all'agente di servizio BigQuery Data Transfer Service di rubare 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 degli account di servizio e sull'elenco aggiornato delle origini dati che supportano gli account di servizio, consulta Utilizzare gli account di servizio.

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 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 manualmente con l'interfaccia della finestra di dialogo OAuth.

Devi solo autorizzare BigQuery Data Transfer Service per la prima volta durante la creazione di un trasferimento per una determinata origine dati. Devi assegnare di nuovo l'autorizzazione quando crei il primo trasferimento per una regione appena utilizzata, anche se utilizzi la stessa origine dati. Trasferimenti di dati dai canali YouTube fanno eccezione: devi concedere manualmente l'approvazione delle autorizzazioni ogni volta che un trasferimento di dati su un canale YouTube.

Anche la modifica del proprietario del trasferimento tramite l'aggiornamento delle credenziali richiede la modifica manuale l'approvazione se il nuovo proprietario non ha mai creato un trasferimento per l'origine dati in quella regione in precedenza.

Il seguente screenshot mostra l'interfaccia della finestra di dialogo OAuth quando crei una Trasferimento da Google Ads. La finestra di dialogo mostra le origini dati specifiche autorizzazioni da concedere:

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

Per revocare le autorizzazioni concesse, segui questi passaggi:

  1. Vai alla pagina del tuo 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, ad eccezione della migrazione utilizzando query pianificate o copie dei set di dati, BigQuery Data Transfer Service si basa su agent di servizio per avviare i job BigQuery per il tuo progetto. L'autorizzazione richiesta bigquery.job.create viene assegnata automaticamente all'agente di servizio quando attivi l'API BigQuery Data Transfer Service per il tuo progetto. Per maggiori informazioni 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, ad eccezione della migrazione utilizzando query pianificate o copie dei set di dati, BigQuery Data Transfer Service si basa sull'agente di servizio per scrivere i 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 concedere l'autorizzazione, devi disporre dell'autorizzazione bigquery.datasets.update per il set di dati di destinazione.

Quando esegui la migrazione utilizzando query programmate 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 i problemi relativi alle autorizzazioni

Se riscontri problemi relativi all'autorizzazione o alle autorizzazioni per il tuo trasferimento, consulta la sezione Problemi di autorizzazione e autorizzazione.