Questa pagina descrive come gli utenti e gli account di servizio possono accedere ai database Cloud SQL utilizzando l'autenticazione IAM del database Cloud SQL. Per ulteriori informazioni, consulta Autenticazione IAM.
Prima di iniziare
- Configura l'istanza per utilizzare l'autenticazione IAM del database. Per ulteriori informazioni, consulta Configurare nuove istanze per l'autenticazione IAM dei database.
- Aggiungi un utente, un account di servizio o un gruppo IAM al database. Per ulteriori informazioni, consulta Aggiungere un account utente o di servizio IAM al database e Aggiungere un gruppo al database.
- Aggiungi il ruolo IAM
roles/cloudsql.instanceUser
al tuo utente, account di servizio o gruppo IAM. È un ruolo predefinito che contiene l'autorizzazione IAMcloudsql.instances.login
di Cloud SQL necessaria. Hai bisogno di questa autorizzazione per accedere a un'istanza di database con autenticazione IAM. Per ulteriori informazioni, vedi Ruoli e autorizzazioni. - Quando un utente IAM viene aggiunto a un database, per impostazione predefinita il nuovo utente non ha privilegi su nessun database. Devi utilizzare il comando
GRANT
per concedere all'utente del database IAM le autorizzazioni richieste. Per maggiori informazioni, vedi Concedere privilegi di database all'utente IAM e Concedere privilegi di database a un gruppo. - Se utilizzi l'autenticazione di gruppo IAM, l'account utente o di servizio IAM deve far parte di un gruppo a cui sono stati concessi un ruolo o autorizzazioni IAM per accedere all'istanza Cloud SQL. Cloud SQL crea un account dopo che l'utente o l'account di servizio ha eseguito il primo accesso all'istanza. L'autenticazione del gruppo IAM è in Anteprima.
Accedi con l'autenticazione automatica del database IAM
Puoi configurare un connettore Cloud SQL per gestire automaticamente l'autenticazione dell'istanza Cloud SQL per conto di un utente o di un'applicazione. I connettori includono il proxy di autenticazione Cloud SQL, il connettore Go, il connettore Java e il connettore Python, che supportano tutti l'autenticazione automatica del database IAM. Se utilizzi un connettore Cloud SQL con autenticazione automatica del database IAM, l'account IAM utilizzato per avviare il connettore deve essere lo stesso che autentica il database.Per accedere utilizzando l'autenticazione automatica del database IAM:
Proxy di autenticazione Cloud SQL
Autenticazione in Google Cloud.
User
Esegui l'autenticazione in Google Cloud utilizzando le Credenziali predefinite dell'applicazione (ADC).
Utilizza il comando
gcloud auth application-default login
. Per maggiori informazioni, consulta Configurare le credenziali predefinite dell'applicazione.Account di servizio
Per eseguire l'autenticazione in Google Cloud utilizzando ADC con un account di servizio, puoi utilizzare la simulazione dell'identità degli account di servizio o configurare una chiave dell'account di servizio. Se vuoi eseguire l'autenticazione con la rappresentazione degli account di servizio, sostituisci SERVICE_ACCOUNT_EMAIL_ADDRESS ed esegui questo comando:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS
Per maggiori informazioni, consulta Configurare le credenziali predefinite dell'applicazione.
Avvia il proxy di autenticazione Cloud SQL con il flag
--auto-iam-authn
Sostituisci INSTANCE_CONNECTION_NAME con la stringa di connessione utilizzata per identificare l'istanza Cloud SQL. Se utilizzi una porta diversa da quella predefinita di MySQL, specifica il numero di porta. Per saperne di più 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 maggiori informazioni su come avviare il proxy, consulta Avviare il proxy di autenticazione Cloud SQL.
Quando è tutto pronto per connetterti all'istanza utilizzando il proxy di autenticazione Cloud SQL, accedi con il client
mysql
. Sostituisci quanto segue:- HOSTNAME: indirizzo IP utilizzato dal proxy di autenticazione Cloud SQL. Per impostazione predefinita, il proxy di autenticazione Cloud SQL utilizza l'indirizzo localhost di
127.0.0.1
, ma puoi assegnare un indirizzo IP diverso quando avvii il proxy di autenticazione Cloud SQL. - USERNAME: per un account utente IAM,
si tratta dell'indirizzo email dell'utente, senza il simbolo
@
o il nome di dominio. Ad esempio, pertest-user@example.com
, inseriscitest-user
. Per un account di servizio, si tratta dell'indirizzo email dell'account di servizio senza il suffisso@project-id.iam.gserviceaccount.com
. - PORT_NUMBER: facoltativo. Se hai specificato una porta diversa nella stringa di connessione dell'istanza, specifica quel numero di porta.
Esegui questo comando:
mysql --host=HOSTNAME \ --user=USERNAME \ --port=PORT_NUMBER
Per maggiori informazioni su come connettersi al proxy di autenticazione Cloud SQL, consulta Connessione al client mysql.
- HOSTNAME: indirizzo IP utilizzato dal proxy di autenticazione Cloud SQL. Per impostazione predefinita, il proxy di autenticazione Cloud SQL utilizza l'indirizzo localhost di
Go
JDBC Java
R2DBC Java
Python
Accedi con l'autenticazione manuale del database IAM
Un utente o un'applicazione possono eseguire l'autenticazione nel database utilizzando IAM richiedendo manualmente un token di accesso a Google Cloud e presentandolo nel database. Con 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 autenticazione manuale del database IAM, 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, dovrai eseguire l'autenticazione su Google Cloud, richiedere un token di accesso e quindi connetterti al database passando il token come password per l'utente del database IAM. Segui questi passaggi per connetterti senza il proxy di autenticazione Cloud SQL.
Per eseguire questi passaggi, devi:
- Utilizza l'opzione
mysql
--enable-cleartext-plugin. - Se ti stai connettendo a un'istanza con IP pubblico, autorizza l'accesso esterno all'istanza. Per maggiori informazioni, consulta Autorizzare l'indirizzo IP della tua macchina per l'IP pubblico.
- Se ti connetti a un'istanza con IP privato, esegui il comando all'interno della rete Virtual Private Cloud (VPC).
- Utilizza il comando
gcloud sql generate-login-token
per generare il token di autenticazione.
Per accedere utilizzando l'autenticazione manuale del database IAM:
gcloud
Autenticazione in Google Cloud.
User
Esegui l'autenticazione in IAM utilizzando
gcloud auth login
. Per saperne di più, consulta Autorizzare un account utente.Account di servizio
Esegui l'autenticazione in IAM utilizzando
gcloud auth activate-service-account
. Per maggiori informazioni, consulta Autorizzare con un account di servizio.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 l'indirizzo IP privato.
- USERNAME: per un account utente IAM, si tratta dell'indirizzo email dell'utente, senza il simbolo
@
o il nome di dominio. Ad esempio, pertest-user@example.com
, inseriscitest-user
. Per un account di servizio, si tratta dell'indirizzo email dell'account di servizio senza il suffisso@project-id.iam.gserviceaccount.com
.
MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=REQUIRED \ --host=HOSTNAME \ --user=USERNAME
Se
ssl_mode
nella tua istanza Cloud SQL è configurato suTRUSTED_CLIENT_CERTIFICATE_REQUIRED
, includi un certificato client e una chiave client quando accedi. Inoltre, per consentire al client di verificare l'identità del server per l'autenticazione reciproca, specifica il certificato del serverserver-ca.pem
. Ad esempio:MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=VERIFY_CA \ --ssl-ca=server-ca.pem \ --ssl-cert=client-cert.pem \ --ssl-key=client-key.pem \ --host=HOSTNAME \ --user=USERNAME
Per informazioni su come creare un certificato e una chiave client, consulta la pagina Certificati client.
Passaggi successivi
- Scopri di più sull'autenticazione del database IAM.
- Scopri come attivare e visualizzare le informazioni di accesso nei log di controllo.
- Scopri come creare utenti e account di servizio che utilizzano l'autenticazione IAM del database Cloud SQL.
- Scopri come aggiungere un'associazione di criteri IAM a un account utente o di servizio.
- Scopri come gestire utenti e account di servizio per l'autenticazione del database IAM.