Connettiti ad AlloyDB per PostgreSQL

In qualità di amministratore BigQuery, puoi creare una connessione per accedere ai dati AlloyDB. Questa connessione consente agli analisti dei dati di eseguire query sui dati in AlloyDB.

Per connetterti ad AlloyDB, devi eseguire i seguenti passaggi:

  1. Crea una connessione AlloyDB.

  2. Concedi l'accesso al service account.

Prima di iniziare

  1. Abilita l'API BigQuery Connection.

    Abilitare l'API

  2. Per ottenere le autorizzazioni necessarie per creare una connessione AlloyDB, chiedi all'amministratore di concederti il ruolo IAM BigQuery Connection Admin (roles/bigquery.connectionAdmin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea una connessione AlloyDB

Come best practice, utilizza le connessioni per gestire le credenziali del database quando ti connetti ad AlloyDB. Le connessioni vengono criptate e archiviate in modo sicuro nel servizio di connessione BigQuery. Se le credenziali utente sono valide per altri dati nell'origine, puoi riutilizzare la connessione. Ad esempio, puoi utilizzare una connessione per eseguire query sullo stesso database in un'istanza AlloyDB più volte.

Seleziona una delle seguenti opzioni per creare una connessione AlloyDB:

Console

  1. Vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, fai clic su Aggiungi.

    Si apre la finestra di dialogo Aggiungi dati.

  3. Nel riquadro Filtra per, seleziona Database nella sezione Tipo di origine dati.

    In alternativa, nel campo Cerca origini dati, puoi inserire alloydb.

  4. Nella sezione Origini dati in evidenza, fai clic su Google Cloud AlloyDB.

  5. Fai clic sulla scheda della soluzione AlloyDB: federazione BigQuery.

  6. Nella finestra di dialogo Origine dati esterna, inserisci le seguenti informazioni:

    • Per Tipo di connessione, seleziona AlloyDB.
    • In Connection ID (ID connessione), inserisci un identificatore per la risorsa di connessione. Sono consentiti lettere, numeri e trattini bassi. Ad esempio, bq_alloydb_connection.
    • Per Posizione dei dati, seleziona una località (o regione) BigQuery compatibile con la regione dell'origine dati esterna.
    • (Facoltativo) In Nome descrittivo, inserisci un nome intuitivo per la connessione, ad esempio My connection resource. Il nome descrittivo può essere qualsiasi valore che ti aiuti a identificare la risorsa di connessione se devi modificarla in un secondo momento.
    • (Facoltativo) In Descrizione, inserisci una descrizione per questa risorsa di connessione.
    • (Facoltativo) Crittografia: se vuoi utilizzare una chiave di crittografia gestita dal cliente (CMEK) per criptare le tue credenziali, seleziona Chiave di crittografia gestita dal cliente (CMEK) e poi una chiave gestita dal cliente. In caso contrario, le tue credenziali sono protette dal Google-owned and Google-managed encryption keypredefinito.
    • In Nome database, inserisci il nome del database.
    • In Nome utente database, inserisci il nome utente del database.
    • In Password database, inserisci la password del database.
      • (Facoltativo) Per visualizzare la password, fai clic su Mostra password.
    • Per Istanza AlloyDB, inserisci l'URI di connessione dell'istanza principale o di lettura di AlloyDB con il prefisso //alloydb.googleapis.com.

      • URI di esempio: //alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
  7. Fai clic su Crea connessione.

  8. Fai clic su Vai alla connessione.

  9. Nel riquadro Informazioni connessione, copia l'ID account di servizio da utilizzare nel passaggio successivo per concedere le autorizzazioni IAM corrette.

bq

Inserisci il comando bq mk con i seguenti flag:

  bq mk \
  --connection \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  --connector_configuration '{
    "connector_id": "google-alloydb",
    "asset": {
      "database": "DATABASE",
      "google_cloud_resource": "RESOURCE_PATH"
    },
    "authentication": {
      "username_password": {
        "username": "USERNAME",
        "password": {
          "plaintext": "PASSWORD"
        }
      }
    }
  }' \
  CONNECTION_ID

Sostituisci quanto segue:

  • LOCATION: specifica una regione del set di dati BigQuery da combinare con i dati di AlloyDB. Le query che utilizzano questa connessione devono essere eseguite da questa regione.
  • PROJECT_ID: inserisci il tuo ID progetto Google Cloud .
  • DATABASE: inserisci il nome del database.
  • RESOURCE_PATH: inserisci l'URI di connessione dell'istanza di lettura o primaria di AlloyDB con il prefisso //alloydb.googleapis.com.
    • URI di esempio: //alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
  • USERNAME: inserisci il nome dell'utente del database.
  • PASSWORD: inserisci la password dell'utente del database.
  • CONNECTION_ID: inserisci un ID connessione per identificare questa connessione.

API

All'interno dell'API BigQuery Connection, puoi richiamare CreateConnection all'interno di ConnectionService per creare un'istanza di una connessione. Per maggiori dettagli, consulta la pagina della libreria client.

Concedi l'accesso al service account

Un service account viene creato automaticamente quando crei la prima connessione all'interno di un progetto. Il nome dell'account di servizio è Agente di servizio connessione BigQuery. L'ID dell'account di servizio ha il seguente formato:

service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com.

Per connetterti ad AlloyDB, devi concedere alla nuova connessione l'accesso ad AlloyDB in modo che BigQuery possa accedere ai dati per conto degli utenti. Il account di servizio deve disporre della seguente autorizzazione:

  • alloydb.instances.connect

Puoi concedere all'account di servizio associato alla connessione il ruolo IAM client AlloyDB, a cui è già assegnata questa autorizzazione. Puoi omettere questo passaggio se il account di servizio dispone già dell'autorizzazione richiesta.

Console

  1. Vai alla pagina IAM e amministrazione.

    Vai a IAM e amministrazione

  2. Fai clic su Concedi l'accesso.

    Si apre la finestra di dialogo Aggiungi entità.

  3. Nel campo Nuove entità, inserisci il nome account di servizio Agente di servizio di connessione BigQuery o l'ID del account di servizio tratto dalle informazioni di connessione.

  4. Nel campo Seleziona un ruolo, seleziona AlloyDB e poi Client AlloyDB.

  5. Fai clic su Salva.

gcloud

Utilizza il comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client

Fornisci i seguenti valori:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • SERVICE_ACCOUNT_ID: sostituisci il numero di progetto in service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com e utilizzalo.

Condividere le connessioni con gli utenti

Puoi concedere i seguenti ruoli per consentire agli utenti di eseguire query sui dati e gestire le connessioni:

  • roles/bigquery.connectionUser: consente agli utenti di utilizzare le connessioni per connettersi a origini dati esterne ed eseguire query.

  • roles/bigquery.connectionAdmin: consente agli utenti di gestire le connessioni.

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

Seleziona una delle seguenti opzioni:

Console

  1. Vai alla pagina BigQuery.

    Vai a BigQuery

    Le connessioni sono elencate nel tuo progetto, in un gruppo chiamato Connessioni esterne.

  2. Nel riquadro Explorer, fai clic sul nome del progetto > Connessioni esterne > connessione.

  3. Nel riquadro Dettagli, fai clic su Condividi per condividere una connessione. Quindi:

    1. Nella finestra di dialogo Autorizzazioni di connessione, condividi la connessione con altre entità aggiungendo o modificando le entità.

    2. Fai clic su Salva.

bq

Utilizza questo comando set-iam-policy:

  bq set-iam-policy RESOURCE FILE_NAME

Sostituisci quanto segue:

  • RESOURCE: inserisci il nome della risorsa nel formato project_id.region.connection_id o region.connection_id.
  • FILE_NAME: inserisci il nome del file che contiene il criterio IAM in formato JSON.

Per saperne di più sul comando set-iam-policy, consulta Controllare l'accesso alle risorse con IAM.

API

Utilizza il metodo projects.locations.connections.setIAM nella sezione di riferimento dell'API REST BigQuery Connections e fornisci un'istanza della risorsa policy.

Passaggi successivi