Connettiti utilizzando un account IAM

Per autenticarti in un'istanza AlloyDB per PostgreSQL utilizzando le credenziali di Identity and Access Management (IAM) anziché le password integrate del database, puoi accedere con un token di accesso OAuth 2.0 o configurare l'autenticazione IAM automatica. Puoi anche eseguire un accesso basato su IAM utilizzando il client a riga di comando psql.

Per una panoramica della connessione alle istanze AlloyDB, consulta Panoramica della connessione.

Prima di iniziare

Prima di poter accedere a un'istanza AlloyDB utilizzando le credenziali IAM, devi preparare il progetto, il cluster, le istanze e gli account utente IAM.

Per saperne di più, consulta Gestisci l'autenticazione IAM.

Esegui l'autenticazione con un token OAuth 2.0

Un utente o un'applicazione può autenticarsi con un database AlloyDB seguendo questi passaggi:

  1. Se non l'hai ancora fatto, esegui l'autenticazione per Google Cloud CLI utilizzando lo stesso account utente o di servizio con cui vuoi accedere alla tua istanza AlloyDB.

  2. Richiedi un token OAuth 2.0 da Google Cloud utilizzando il comando gcloud auth print-access-token:

    gcloud auth print-access-token

    Google Cloud stampa un token OAuth 2.0 come output di questo comando.

    Per una maggiore sicurezza, puoi limitare l'utilizzo del token solo all'autenticazione AlloyDB seguendo questi passaggi alternativi:

    1. Se non l'hai ancora fatto, aggiungi l'ambito alloydb.login alle credenziali di accesso dell'ambiente attuale utilizzando il comando gcloud auth application-default login:

      gcloud auth application-default login --scopes=https://www.googleapis.com/auth/alloydb.login,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/userinfo.email,openid
    2. Stampa un token OAuth 2.0 limitato utilizzando il comando gcloud auth application-default print-access-token, limitando l'ambito del token solo all'autenticazione AlloyDB:

      gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/alloydb.login

    Il token OAuth 2.0 consente a te o a chiunque altro di effettuare richieste autenticate a Google Cloud per tuo conto. Il token deve essere trattato con lo stesso livello di sicurezza di una password. Archivia il token in modo sicuro o evita di archiviarlo. L'esempio di utilizzo di psql più avanti in questa pagina mostra un modo per richiedere, utilizzare ed eliminare un token OAuth 2.0 in un'unica azione.

  3. Accedi a un'istanza AlloyDB con le tecniche PostgreSQL standard, utilizzando queste credenziali:

    • Presenta il token di accesso acquisito nel passaggio precedente come password.

    • Per un account utente IAM, il nome utente del database è l'indirizzo email completo dell'account.

    • Per un account di servizio IAM, il nome utente del database è l'indirizzo email dell'account senza il suffisso .gserviceaccount.com.

Il seguente comando psql mostra un modo per accedere a un utente IAM dalla riga di comando. Assegna l'output di gcloud auth print-access-token alla variabile di ambiente PGPASSWORD, che psql utilizza successivamente come password di accesso al database.

PGPASSWORD=$(gcloud auth print-access-token) psql \
  -h INSTANCE_ADDRESS \
  -U USERNAME \
  -d DATABASE

Sostituisci quanto segue:

  • INSTANCE_ADDRESS: l'indirizzo IP dell'istanza AlloyDB a cui connettersi.

  • USERNAME: un identificatore per l'utente IAM per l'autenticazione con l'istanza.

    Per un account utente IAM, fornisci l'indirizzo email completo dell'account utente. Ad esempio, kai@example.com.

    Per un account di servizio IAM, fornisci l'indirizzo del account di servizio senza il suffisso .gserviceaccount.com. Ad esempio, per specificare il account di servizio my-service@my-project.iam.gserviceaccount.com, devi utilizzare il valore my-service@my-project.iam qui.

  • DATABASE: il nome del database a cui connettersi.

Tieni presente che psql tronca le password inserite nella riga di comando che superano i 100 caratteri. Per utilizzare psql con un token OAuth 2.0 come password di accesso, devi impostare la variabile di ambiente PGPASSWORD come mostrato in questo esempio, anziché incollarla manualmente quando richiesto.

Autenticazione automatica

Per autenticare automaticamente un utente AlloyDB basato su IAM senza la necessità di un token OAuth 2.0, hai due opzioni: Proxy di autenticazione AlloyDB e Connettori dei linguaggi AlloyDB.

L'account IAM che utilizzi per eseguire il client proxy o i connettori di linguaggio deve essere lo stesso account che hai aggiunto come utente del database. Ad esempio, se esegui il workload utilizzando l'account utente IAM kai@example.com, puoi utilizzare il client proxy o i connettori di linguaggio per autenticare automaticamente l'utente del database kai@example.com senza specificare un token OAuth 2.0. In questo esempio, l'autenticazione automatica non funziona con nessun altro utente del database, ad eccezione di kai@example.com.

Proxy di autenticazione

Per utilizzare il proxy di autenticazione, devi eseguire il client proxy di autenticazione con il flag --auto-iam-authn abilitato.

Per saperne di più sull'esecuzione del proxy di autenticazione, consulta Connettiti utilizzando il proxy di autenticazione AlloyDB.

Connettori dei linguaggi

L'utilizzo dei connettori di linguaggio richiede l'abilitazione dell'autenticazione IAM in modo programmatico. Per AlloyDB Python Connector, l'autenticazione IAM automatica (enable_iam_auth=True) è supportata con i driver pg8000 e asyncpg. Esiste un'opzione corrispondente per ogni lingua in Configura gli AlloyDB Language Connector.

Passaggi successivi