Questa pagina descrive come gli utenti e i service account possono accedere ai database Cloud SQL utilizzando l'autenticazione IAM dei database Cloud SQL. Per saperne di più, consulta Autenticazione IAM.
Prima di iniziare
- Configura l'istanza in modo che utilizzi l'autenticazione IAM dei database. Per saperne di più, consulta Configurare nuove istanze per l'autenticazione dei database IAM.
- Aggiungi un utente IAM, account di servizio o un gruppo al database. Per ulteriori informazioni, vedi Aggiungere un utente IAM o un account di servizio al database e Aggiungere un gruppo al database.
- Aggiungi il ruolo IAM
roles/cloudsql.instanceUseral tuo utente IAM, al tuo account di servizio o al tuo gruppo. Si tratta di un ruolo predefinito che contiene l'autorizzazione IAM Cloud SQLcloudsql.instances.loginnecessaria. Devi disporre di questa autorizzazione per accedere a un'istanza del database con l'autenticazione IAM del database. Per saperne di più, consulta Ruoli e autorizzazioni. - Se utilizzi Cloud SQL Auth Proxy, aggiungi il ruolo IAM
roles/cloudsql.cliental tuo utente, account di servizio o gruppo IAM. Si tratta di un ruolo predefinito che contiene l'autorizzazione IAMcloudsql.instances.connectdi Cloud SQL necessaria. Hai bisogno di questa autorizzazione per accedere a un'istanza di database con il proxy di autenticazione Cloud SQL. Per saperne di più, consulta quanto segue: - Quando un utente IAM viene aggiunto a un database, per impostazione predefinita
il nuovo utente del database non dispone di privilegi per alcun database. Per fornire all'utente
i privilegi di database richiesti, puoi
assegnare ruoli di database mentre aggiungi l'account IAM
all'istanza, puoi
assegnare ruoli di database mentre aggiorni l'account IAM sull'istanza oppure puoi
utilizzare il comando
GRANTper concedere privilegi all'account IAM individuale o al gruppo IAM. - Se utilizzi l'autenticazione del gruppo IAM, l'utente IAM o il account di servizio deve essere membro di un gruppo a cui è stato concesso un ruolo o delle autorizzazioni IAM per accedere all'istanza Cloud SQL. Cloud SQL crea un account dopo che l'utente o il account di servizio ha eseguito l'accesso all'istanza per la prima volta.
Accedere con l'autenticazione automatica IAM dei database
Puoi configurare un connettore Cloud SQL per gestire automaticamente l'autenticazione all'istanza Cloud SQL per conto di un utente o di un'applicazione. I connettori includono il Cloud SQL Auth Proxy, il connettore Go, il connettore Java e il connettore Python, che supportano tutti l'autenticazione automatica del database IAM. Quando utilizzi un connettore Cloud SQL con l'autenticazione automatica del database IAM, l'account IAM che utilizzi per avviare il connettore deve essere lo stesso che si autentica al database.
Per accedere utilizzando l'autenticazione IAM dei database automatica:
Proxy di autenticazione Cloud SQL
Esegui l'autenticazione su Google Cloud.
Utente
Esegui l'autenticazione in Google Cloud utilizzando le Credenziali predefinite dell'applicazione (ADC).
Utilizza il comando
gcloud auth application-default login. Per saperne di più, consulta Configurare le credenziali predefinite dell'applicazione.Service account
Per autenticarti in Google Cloud utilizzando ADC con un account di servizio, puoi utilizzare la simulazione dell'identità del account di servizio o una chiave del account di servizio. Per utilizzare la simulazione dell'identità del account di servizio, sostituisci SERVICE_ACCOUNT_EMAIL_ADDRESS ed esegui il seguente comando:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS
Per saperne di più, consulta Configurare le credenziali predefinite dell'applicazione.
Avvia il proxy di autenticazione Cloud SQL con il flag
--auto-iam-authn.Sostituisci quanto segue:
- INSTANCE_CONNECTION_NAME: la stringa di connessione per identificare un'istanza Cloud SQL. Se utilizzi una porta diversa da quella PostgreSQL predefinita, specifica il numero di porta. Per ulteriori informazioni su come trovare e creare questa stringa, consulta Opzioni per l'autenticazione del proxy di autenticazione Cloud SQL.
./cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
Per saperne di più su come avviare il proxy, consulta Avviare il proxy di autenticazione Cloud SQL.
Quando è tutto pronto per connetterti all'istanza utilizzando il Cloud SQL Auth Proxy, accedi con il client
psql.Sostituisci quanto segue:
- HOSTNAME: indirizzo IP utilizzato dal proxy di autenticazione Cloud SQL. Per impostazione predefinita,
il Cloud SQL Auth Proxy utilizza l'indirizzo localhost
127.0.0.1, ma puoi assegnare un indirizzo IP diverso quando avvii il Cloud SQL Auth Proxy. - USERNAME: Per un utente IAM, il nome utente è l'indirizzo email completo dell'utente. Per un account di servizio, si tratta dell'email del account di servizio senza il suffisso di dominio
.gserviceaccount.com. - PORT_NUMBER: (Facoltativo) Se hai specificato una porta diversa nella stringa di connessione dell'istanza, specifica quel numero di porta.
- DATABASE_NAME: il nome del database a cui connettersi.
Esegui questo comando:
psql -h HOSTNAME \ -U USERNAME \ --port PORT_NUMBER \ --dbname=DATABASE_NAME
Per ulteriori informazioni su come connetterti al Cloud SQL Auth Proxy, consulta Connessione con il client psql.
- HOSTNAME: indirizzo IP utilizzato dal proxy di autenticazione Cloud SQL. Per impostazione predefinita,
il Cloud SQL Auth Proxy utilizza l'indirizzo localhost
Vai
Java JDBC
Java R2DBC
Node.js
Python
Accedi con l'autenticazione manuale IAM dei database
Un utente o un'applicazione può autenticarsi al database utilizzando IAM richiedendo manualmente un token di accesso da Google Cloud e presentandolo al database. Utilizzando gcloud CLI, puoi richiedere esplicitamente un token OAuth 2.0 con l'ambito dell'API Cloud SQL Admin utilizzato per accedere al database. Quando accedi come utente del database con l'autenticazione IAM dei database manuale, utilizzi il tuo indirizzo email come nome utente e il token di accesso come password. Puoi utilizzare questo metodo con una connessione diretta al database o con un connettore Cloud SQL.
In questa procedura, esegui l'autenticazione a Google Cloud, richiedi un token di accesso e poi connettiti al database passando il token come password per l'utente del database IAM. Segui questi passaggi per connetterti senza il Cloud SQL Auth Proxy.
Per questi passaggi, devi:
gcloud sql generate-login-token per generare il token di autenticazione.Per accedere utilizzando l'autenticazione IAM dei database manuale:
gcloud
Esegui l'autenticazione su Google Cloud.
Utente
Esegui l'autenticazione in IAM utilizzando
gcloud auth login. Per saperne di più, consulta Autenticati per gcloud CLI.Service account
Esegui l'autenticazione in IAM utilizzando
gcloud auth activate-service-account. Per saperne di più, consulta Autenticati per gcloud CLI.Richiedi il token di accesso e accedi con un client.
Sostituisci quanto segue:
- HOSTNAME: L'indirizzo IP dell'istanza, ovvero l'indirizzo IP pubblico o privato.
- USERNAME: Per un utente IAM, il nome utente è l'indirizzo email completo dell'utente. Per un account di servizio, si tratta dell'email del account di servizio senza il suffisso di dominio
.gserviceaccount.com. - DATABASE_NAME: il nome del database a cui connettersi.
PGPASSWORD=`gcloud sql generate-login-token` \ psql "sslmode=require \ hostaddr=HOSTNAME \ user=USERNAME \ dbname=DATABASE_NAME" \ --no-password
Se
ssl_modenella tua istanza Cloud SQL è configurato perTRUSTED_CLIENT_CERTIFICATE_REQUIRED, ti consigliamo di accedere con l'autenticazione IAM dei database automatica per applicare la convalida dell'identità del client.
Passaggi successivi
- Scopri di più sull'autenticazione database IAM.
- Scopri come abilitare e visualizzare le informazioni di accesso negli audit log.
- Scopri come creare utenti e service account che utilizzano l'autenticazione del database Cloud SQL IAM.
- Scopri come gestire utenti e service account per l'autenticazione IAM dei database.