Abilita BigQuery Data Transfer Service

Per utilizzare BigQuery Data Transfer Service, devi completare i seguenti passaggi in qualità di proprietario del progetto:

  • Crea un progetto e abilita l'API BigQuery.
  • Abilita BigQuery Data Transfer Service.

Per saperne di più sui ruoli di Identity and Access Management (IAM), consulta Ruoli e autorizzazioni nella documentazione IAM.

Crea un progetto e abilita l'API BigQuery

Prima di utilizzare BigQuery Data Transfer Service, devi creare un progetto e, nella maggior parte dei casi, abilitare la fatturazione per il progetto. Puoi utilizzare un progetto esistente con BigQuery Data Transfer Service o crearne uno nuovo. Se utilizzi un progetto esistente, potresti anche dover abilitare l'API BigQuery.

Per creare un progetto e abilitare l'API BigQuery:

  1. Nella console Google Cloud , vai alla pagina di selezione del progetto.

    Vai al selettore di progetti

  2. Seleziona o crea un progetto Google Cloud .

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
  3. Abilita la fatturazione per il tuo progetto per tutti i trasferimenti. Ti vengono addebitati 0 $ per i trasferimenti senza costi.

    L'abilitazione della fatturazione è richiesta una sola volta per progetto, anche se trasferisci dati da più origini. La fatturazione deve essere abilitata anche per eseguire query sui dati in BigQuery, dopo il trasferimento dei dati.

    Scopri come verificare che la fatturazione sia abilitata per il tuo progetto.

  4. BigQuery viene abilitato automaticamente nei nuovi progetti. Per attivare BigQuery in un progetto esistente, abilita l'API BigQuery.

    Abilita l'API BigQuery

Abilita BigQuery Data Transfer Service

Prima di poter creare un trasferimento, devi attivare BigQuery Data Transfer Service. Per abilitare BigQuery Data Transfer Service, devi disporre del ruolo Proprietario per il tuo progetto.

Per attivare BigQuery Data Transfer Service:

  1. Apri la pagina API BigQuery Data Transfer nella libreria API.

  2. Dal menu a discesa, seleziona il progetto appropriato.

  3. Fai clic sul pulsante ABILITA.

    Abilita l'API Data Transfer

Service agent

BigQuery Data Transfer Service utilizza un agente di servizio per accedere alle tue risorse e gestirle. Sono incluse, a titolo esemplificativo, le seguenti risorse:

  • Recupero di un token di accesso per il account di servizio da utilizzare per autorizzare il trasferimento di dati.
  • Pubblicazione delle notifiche nell'argomento Pub/Sub fornito, se abilitato.
  • Avvio dei job BigQuery.
  • Recupero degli eventi dalla sottoscrizione Pub/Sub fornita per il trasferimento basato su eventi di Cloud Storage

L'agente di servizio viene creato automaticamente per tuo conto dopo aver abilitato BigQuery Data Transfer Service e utilizzato l'API per la prima volta. Al momento della creazione dell'agente di servizio, Google concede automaticamente il ruolo di agente di servizio predefinito.

Autorizzazione dei service account tra progetti

Se autorizzi il trasferimento di dati utilizzando un account di servizio di un progetto diverso da quello in cui è abilitato BigQuery Data Transfer Service, devi concedere il ruolo roles/iam.serviceAccountTokenCreator all'agente di servizio utilizzando il seguente comando di Google Cloud CLI:

gcloud iam service-accounts add-iam-policy-binding service_account \
--member serviceAccount:service-project_number@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com \
--role roles/iam.serviceAccountTokenCreator

Sostituisci quanto segue:

  • service_account è il account di servizio tra progetti utilizzato per autorizzare il trasferimento di dati.
  • project_number è il numero del progetto in cui è abilitato BigQuery Data Transfer Service.

Per saperne di più sulla configurazione delle risorse tra progetti, consulta Configurazione per una risorsa in un altro progetto nella documentazione sulla simulazione dell'identità dei account di servizio di Identity and Access Management.

Quando abiliti l'API BigQuery Data Transfer Service tramite la console Google Cloud , Google tenta automaticamente di concedere le autorizzazioni richieste. Tuttavia, se abiliti l'API o crei trasferimenti tramite Terraform, Google Cloud CLI o altri metodi programmatici, devi stabilire manualmente le autorizzazioni richieste. Per autorizzare un trasferimento utilizzando un account di servizio di un altro progetto, tieni presente quanto segue:

  • Stabilisci le autorizzazioni per i trasferimenti tra progetti: per accedere in modo sicuro alle origini dati tra progetti, concedi all'agente di servizio DTS (residente nel progetto di destinazione) il ruolo roles/iam.serviceAccountTokenCreator sull'identità del account di servizio di origine.

  • Applica il principio del privilegio minimo: concedi questo ruolo a livello di risorsa (sul account di servizio specifico in uso) anziché a livello di progetto.

Limitazione

Non puoi utilizzare la console Google Cloud per collegare un account di servizio tra progetti a un trasferimento di dati. In alternativa, puoi collegare il account di servizio tra progetti con il seguente comando Google Cloud CLI:

bq update
--transfer_config
--update_credentials
--service_account_name="SERVICE_ACCOUNT" projects/PROJECT_ID/locations/LOCATION/transferConfigs/CONFIG_ID

Sostituisci quanto segue:

  • SERVICE_ACCOUNT: il nome del account di servizio tra progetti.
  • PROJECT_ID: il nome del progetto associato al trasferimento di dati.
  • LOCATION: la località del trasferimento di dati.
  • CONFIG_ID: l'ID della configurazione di trasferimento.

Creazione manuale del service agent

Se vuoi attivare la creazione dell'agente di servizio prima di interagire con l'API, ad esempio se devi concedere ruoli aggiuntivi all'agente di servizio, puoi utilizzare uno dei seguenti approcci:

Quando attivi manualmente la creazione dell'agente di servizio, Google non concede automaticamente il ruolo di agente di servizio predefinito. Devi concedere manualmente all'agente di servizio il ruolo predefinito utilizzando il seguente comando di Google Cloud CLI:

gcloud projects add-iam-policy-binding project_number \
--member serviceAccount:service-project_number@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com \
--role roles/bigquerydatatransfer.serviceAgent

Sostituisci quanto segue:

  • project_number è il numero del progetto in cui è abilitato BigQuery Data Transfer Service.

Concedi l'accesso a bigquery.admin

Ti consigliamo di concedere il ruolo IAM predefinito bigquery.admin agli utenti che creano trasferimenti di BigQuery Data Transfer Service. Il ruolo bigquery.admin include le autorizzazioni IAM necessarie per eseguire le attività più comuni. Il ruolo bigquery.admin include le seguenti autorizzazioni di BigQuery Data Transfer Service:

  • Autorizzazioni di BigQuery Data Transfer Service:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Autorizzazioni BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

In alcuni casi, le autorizzazioni richieste potrebbero variare tra le diverse origini dati. Per informazioni specifiche su IAM, consulta la sezione "Autorizzazioni richieste" nella guida al trasferimento di ogni origine dati. Ad esempio, consulta Autorizzazioni di trasferimento di Amazon S3 o Autorizzazioni di trasferimento di Cloud Storage.

Per concedere il ruolo bigquery.admin:

Console

  1. Apri la pagina IAM nella console Google Cloud

    Apri la pagina IAM

  2. Fai clic su Seleziona un progetto.

  3. Seleziona un progetto e fai clic su Apri.

  4. Fai clic su Aggiungi per aggiungere nuovi membri al progetto e impostare le relative autorizzazioni.

  5. Nella finestra di dialogo Aggiungi membri:

    • In Membri, inserisci l'indirizzo email dell'utente o del gruppo.
    • Nel menu a discesa Seleziona un ruolo, fai clic su BigQuery > Amministratore BigQuery.
    • Fai clic su Aggiungi.

      Amministratore delle sovvenzioni

gcloud

Puoi utilizzare Google Cloud CLI per concedere a un utente o a un gruppo il ruolo bigquery.admin.

Per aggiungere una singola associazione alla policy IAM del progetto, digita il seguente comando. Per aggiungere un utente, fornisci il flag --member nel formato user:user@example.com. Per aggiungere un gruppo, fornisci il flag --member nel formato group:group@example.com.

gcloud projects add-iam-policy-binding project_id \
--member principal:address \
--role roles/bigquery.admin

Dove:

  • project_id è l'ID progetto.
  • principal è group o user.
  • address è l'indirizzo email dell'utente o del gruppo.

Ad esempio:

gcloud projects add-iam-policy-binding myproject \
--member group:group@example.com \
--role roles/bigquery.admin

Il comando restituisce l'output comando aggiornato:

    bindings:
    - members:
      - group:group@example.com
        role: roles/bigquery.admin
    

Per saperne di più sui ruoli IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

Risolvi i problemi relativi alle configurazioni di trasferimento

Per informazioni sulla risoluzione dei problemi relativi a BigQuery Data Transfer Service, consulta Risolvi i problemi relativi alle configurazioni di trasferimento.

Passaggi successivi

Dopo aver attivato BigQuery Data Transfer Service, crea un trasferimento per l'origine dati.