Questa pagina descrive in che modo gli utenti e gli account di servizio possono accedere a Cloud SQL utilizzando l'autenticazione IAM dei database Cloud SQL. Per ulteriori informazioni, vedi Autenticazione IAM.
Prima di iniziare
- Configura l'istanza in modo che utilizzi l'autenticazione del database IAM. Per ulteriori informazioni, consulta la pagina sulla configurazione di nuove istanze per l'autenticazione IAM dei database.
- Aggiungi un utente IAM, un account di servizio o un gruppo nel database. Per maggiori informazioni le informazioni, vedi Aggiungi un account utente o di servizio IAM al database e Aggiungi un gruppo al database.
- Aggiungere il ruolo IAM
roles/cloudsql.instanceUser
a il tuo utente IAM, gruppo o account di servizio. Si tratta di un ruolo predefinito che contiene le risorse IAM di Cloud SQL necessarie Autorizzazionecloudsql.instances.login
. Devi disporre di questa autorizzazione per accedere a un'istanza di database con l'autenticazione IAM dei database. Per ulteriori informazioni, consulta Ruoli e autorizzazioni. Quando un utente IAM viene aggiunto a un database, il nuovo utente del database non dispone di privilegi a qualsiasi database per impostazione predefinita. Devi utilizzare il comando
GRANT
per concedere all'utente del database IAM le autorizzazioni richieste. Per ulteriori informazioni, consulta Concedere i privilegi di database all'utente IAM e Concedi i privilegi di database a un gruppo.Se utilizzi l'autenticazione di gruppo IAM, l'account di servizio o l'utente IAM deve essere membro di un gruppo a cui è stato concesso un ruolo o autorizzazioni IAM per accedere all'istanza Cloud SQL. Cloud SQL crea un account dopo che l'account utente o di servizio ha eseguito l'accesso all'istanza per la prima volta.
Accedi con l'autenticazione automatica del database IAM
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 proxy di autenticazione Cloud SQL, 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 autenticazione automatica del database IAM, l'account IAM utilizzato per avviare il connettore deve essere lo stesso account che si autentica nel database.Per accedere utilizzando l'autenticazione automatica del database IAM:
Proxy di autenticazione Cloud SQL
Esegui l'autenticazione su Google Cloud.
User
Esegui l'autenticazione in Google Cloud utilizzando le credenziali predefinite dell'applicazione (ADC).
Utilizza la
gcloud auth application-default login
. Per ulteriori informazioni, vedi Configura Credenziali predefinite dell'applicazione.Account di servizio
Per autenticarti a Google Cloud utilizzando l'ADC con un account di servizio, puoi utilizzare l'usurpazione dell'identità dell'account di servizio o configurare una chiave dell'account di servizio. Se vuoi eseguire l'autenticazione con la simulazione dell'identità dell'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 ulteriori 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 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 ulteriori informazioni su come avviare il proxy, consulta Avvia 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 e assegnare un indirizzo IP diverso all'avvio del proxy di autenticazione Cloud SQL. - USERNAME: per un account utente IAM,
questo è l'indirizzo email dell'utente, senza il simbolo
@
o un 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 il numero di porta.
Esegui questo comando:
mysql --host=HOSTNAME \ --user=USERNAME \ --port=PORT_NUMBER
Per ulteriori informazioni su come connetterti al proxy di autenticazione Cloud SQL, consulta Connettersi con il 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
Vai
JDBC Java
Java R2DBC
Python
Accedere con l'autenticazione manuale IAM dei database
Un utente o un'applicazione può autenticarsi nel database utilizzando IAM richiedendo manualmente un token di accesso da Google Cloud e presentandolo al database. Con gcloud CLI, puoi richiedere esplicitamente un OAuth 2.0 con il token Ambito dell'API Cloud SQL Admin utilizzato per accedere al database. Quando accedi come utente del database con l'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 un'implementazione al database o con un connettore Cloud SQL.
In questa procedura, esegui l'autenticazione in Google Cloud, richiedi un token di accesso, e poi connetterti al database passando il token come password l'utente del database IAM. Segui questi passaggi per connetterti senza il proxy di autenticazione Cloud SQL.
Per questi passaggi, devi:
- Utilizza l'opzione --enable-cleartext-plugin
mysql
. - Se ti connetti a un'istanza con IP pubblico, autorizza l'accesso esterno all'istanza. Per ulteriori informazioni, vedi Autorizza l'indirizzo IP della tua macchina per l'IP pubblico.
- Se ti connetti a un'istanza con IP privato, esegui nella rete VPC (Virtual Private Cloud).
- Utilizza la
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 ulteriori informazioni, consulta Autorizzare con un account utente.Account di servizio
Esegui l'autenticazione in IAM utilizzando
gcloud auth activate-service-account
Per ulteriori informazioni, vedi Autorizza 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 privato.
- USERNAME: per un account utente IAM, questa è la
l'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 del servizio all'indirizzo email dell'account senza 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
sull'istanza Cloud SQL sia configurataTRUSTED_CLIENT_CERTIFICATE_REQUIRED
, includi un certificato client e una chiave client quando se ne hai già uno. Inoltre, per consentire al client di verificare la proprietà identità per l'autenticazione reciproca, specifica il server certificatoserver-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 una chiave e un certificato client, consulta Certificati client.
Passaggi successivi
- Scopri di più sull'autenticazione dei database IAM.
- Scopri come abilitare e visualizzare i dati di accesso nei log di controllo.
- Scopri come creare account di servizio e utenti che utilizzano l'autenticazione IAM dei database di Cloud SQL.
- Scopri come aggiungere un'associazione di norme IAM a un utente o a un account di servizio.
- Scopri come gestire gli utenti e gli account di servizio per l'autenticazione IAM dei database.