Questa pagina descrive come gli utenti e i service account possono accedere ai database Cloud SQL utilizzando l'autenticazione IAM del database Cloud SQL. Per saperne di più, consulta Autenticazione IAM.
Prima di iniziare
- Configura l'istanza in modo che utilizzi l'autenticazione IAM del database. Per saperne di più, consulta Configura nuove istanze per l'autenticazione del database IAM.
- Aggiungi un utente, account di servizio o un gruppo IAM al database. Per saperne di più, consulta Aggiungi un utente o un account di servizio IAM al database e Aggiungi un gruppo al database.
- Aggiungi il ruolo IAM
roles/cloudsql.instanceUseral tuo utente, account di servizio o gruppo IAM. 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 di database con l'autenticazione IAM del database. Per saperne di più, consulta Ruoli e autorizzazioni. - Se utilizzi il proxy di autenticazione Cloud SQL, 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. Devi disporre di questa autorizzazione per accedere a un'istanza di database con il Cloud SQL Auth Proxy. Per ulteriori informazioni, consulta le seguenti risorse: - Quando un utente IAM viene aggiunto a un database, per impostazione predefinita il nuovo utente del database non dispone di privilegi per nessun database. Per fornire all'utente i privilegi di database richiesti, puoi assegnare i ruoli di database mentre aggiungi l'account IAM all'istanza, assegnare i ruoli di database mentre aggiorni l'account IAM nell'istanza oppure puoi utilizzare il comando
GRANTper concedere i privilegi all'account IAM individuale o al gruppo IAM. - Se utilizzi l'autenticazione dei gruppi IAM, l'utente o il account di servizio 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'utente o il account di servizio accede all'istanza per la prima volta.
Accedi con l'autenticazione IAM automatica del database
Puoi configurare un connettore Cloud SQL per gestire automaticamente l'autenticazione nell'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, tutti che supportano 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 account che si autentica nel database.
Per accedere utilizzando l'autenticazione IAM automatica del database:
Cloud SQL Auth Proxy
Autenticati su Cloud de Confiance by S3NS.
Utente
Esegui l'autenticazione in Cloud de Confiance by S3NS utilizzando le Credenziali predefinite dell'applicazione (ADC).
Utilizza il comando
gcloud auth application-default login. Per ulteriori informazioni, consulta Configura le credenziali predefinite dell'applicazione.Service account
Per autenticarti in Cloud de Confiance by S3NS utilizzando ADC con un account di servizio, puoi utilizzare la simulazione dell'identità dei account di servizio o configurare una chiave del account di servizio. Se vuoi eseguire l'autenticazione con la simulazione dell'identità dei 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 ulteriori informazioni, consulta Configura le credenziali predefinite dell'applicazione.
Avvia il proxy di autenticazione Cloud SQL con il flag
--auto-iam-authnSostituisci 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 saperne di più 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: l'indirizzo IP utilizzato dal Cloud SQL Auth Proxy. Per impostazione predefinita, il Cloud SQL Auth Proxy utilizza l'indirizzo localhost di
127.0.0.1, ma puoi assegnare un indirizzo IP diverso quando avvii il Cloud SQL Auth Proxy. - 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, questo è l'indirizzo email del service account senza il suffisso@project-id.s3ns.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 saperne di più su come connetterti al proxy di autenticazione Cloud SQL, consulta Connettiti con il client mysql.
- HOSTNAME: l'indirizzo IP utilizzato dal Cloud SQL Auth Proxy. Per impostazione predefinita, il Cloud SQL Auth Proxy utilizza l'indirizzo localhost di
Vai
Java JDBC
Java R2DBC
Node.js
Python
Accedi con l'autenticazione IAM manuale del database
Un utente o un'applicazione può autenticarsi nel database utilizzando IAM richiedendo manualmente un token di accesso da Cloud de Confiance by S3NS 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 connettersi al database. Quando accedi come utente del database con l'autenticazione IAM manuale del database, 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 in Cloud de Confiance by S3NS, richiedi un token di accesso e poi ti connetti 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:
- Utilizza l'opzione --enable-cleartext-plugin
mysql. - Se ti connetti a un'istanza con IP pubblico, autorizza l'accesso esterno all'istanza. Per saperne di più, consulta Autorizza 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-tokenper generare il token di autenticazione.
Per accedere utilizzando l'autenticazione IAM manuale del database:
gcloud
Autenticati su Cloud de Confiance by S3NS.
Utente
Esegui l'autenticazione in IAM utilizzando
gcloud auth login. Per saperne di più, consulta Esegui l'autenticazione 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, pubblico o 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, questo è l'indirizzo email del service account senza il suffisso@project-id.s3ns.iam.gserviceaccount.com.
export MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=REQUIRED \ --host=HOSTNAME \ --user=USERNAME
Se
ssl_modenell'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:export 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 Certificati client.
Passaggi successivi
- Scopri di più sull'autenticazione IAM dei database.
- Scopri come attivare e visualizzare le informazioni di accesso negli audit log.
- Scopri come creare utenti e service account che utilizzano l'autenticazione del database IAM di Cloud SQL.
- Scopri come aggiungere un'associazione di policy IAM a un utente o a un service account.
- Scopri come gestire utenti e service account per l'autenticazione IAM del database.