Utilizzare i service account con BigQuery Data Transfer Service
Alcune origini dati supportano l'autenticazione del trasferimento di dati utilizzando un service account
tramite la Cloud de Confiance console, l'API o la bq riga di comando. Un service
account è un Account Google associato al tuo Cloud de Confiance progetto. Un service account può eseguire job, come query programmate o pipeline di elaborazione batch, eseguendo l'autenticazione con le credenziali account di servizio anziché con le credenziali di un utente.
Puoi aggiornare un trasferimento di dati esistente con le credenziali di un service account. Per saperne di più, vedi Aggiornare le credenziali di trasferimento dei dati.
Le seguenti situazioni richiedono l'aggiornamento delle credenziali:
Il trasferimento non è riuscito ad autorizzare l'accesso dell'utente all'origine dati:
Error code 401 : Request is missing required authentication credential. UNAUTHENTICATEDQuando tenti di eseguire il trasferimento, ricevi un errore INVALID_USER:
Error code 5 : Authentication failure: User Id not found. Error code: INVALID_USERID
Per saperne di più sull'autenticazione con i service account, consulta Introduzione all'autenticazione.
Origini dati con supporto per i account di servizio
BigQuery Data Transfer Service può utilizzare le credenziali del account di servizio per i trasferimenti con le seguenti origini dati:
Prima di iniziare
- Verifica di aver completato tutte le azioni richieste in Attivare BigQuery Data Transfer Service.
- Concedi i ruoli Identity and Access Management (IAM) che forniscono agli utenti le autorizzazioni necessarie per eseguire ogni attività descritta in questo documento.
Autorizzazioni obbligatorie
Per aggiornare un trasferimento di dati in modo che utilizzi un account di servizio, devi disporre delle seguenti autorizzazioni:
L'autorizzazione
bigquery.transfers.updateper modificare il trasferimento.Il ruolo IAM predefinito
roles/bigquery.admininclude questa autorizzazione.Accesso al account di servizio. Per saperne di più sulla concessione agli utenti del ruolo del service account, consulta Ruolo Utente account di servizio.
Assicurati che il account di servizio scelto per eseguire il trasferimento disponga delle seguenti autorizzazioni:
Le autorizzazioni
bigquery.datasets.getebigquery.datasets.updatesul set di dati di destinazione. Se la tabella utilizza il controllo dell'accesso a livello di colonna, il account di servizio deve disporre anche dell'autorizzazionebigquery.tables.setCategory.Il ruolo IAM predefinito
bigquery.admininclude tutte queste autorizzazioni. Per saperne di più sui ruoli IAM in BigQuery Data Transfer Service, consulta Introduzione a IAM.Accesso all'origine dati di trasferimento configurata. Per saperne di più sulle autorizzazioni richieste per le diverse origini dati, consulta Origini dati con account di servizio account.
Per i trasferimenti di Google Ads, al account di servizio deve essere concessa l'autorità a livello di dominio. Per saperne di più, consulta la guida ai service account dell'API Google Ads.
Aggiornare le credenziali di trasferimento dei dati
Console
La seguente procedura aggiorna una configurazione del trasferimento di dati per eseguire l'autenticazione come account di servizio anziché come account utente individuale.
Nella Cloud de Confiance console, vai alla pagina Trasferimenti di dati.
Fai clic sul trasferimento in ingresso nell'elenco dei trasferimenti di dati.
Fai clic su MODIFICA per aggiornare la configurazione del trasferimento.

Nel campo Service account, inserisci il nome del account di servizio.
Fai clic su Salva.
bq
Per aggiornare le credenziali di un trasferimento di dati, puoi utilizzare lo strumento a riga di comando bq per aggiornare la configurazione del trasferimento.
Utilizza il comando bq update con i flag --transfer_config, --update_credentials e --service_account_name.
Ad esempio, il seguente comando aggiorna una configurazione di trasferimento di dati per eseguire l'autenticazione come account di servizio anziché come account utente individuale:
bq update \
--transfer_config \
--update_credentials \
--service_account_name=abcdef-test-sa@abcdef-test.s3ns.iam.gserviceaccount.com projects/862514376110/locations/us/transferConfigs/5dd12f26-0000-262f-bc38-089e0820fe38
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell' API Java di BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'APIPython di BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.