Autenticazione IAM

Google Cloud offre Identity and Access Management (IAM), che ti consente di concedere l'accesso a risorse Google Cloud specifiche e impedire accessi indesiderati ad altre risorse. Questa pagina descrive come Cloud SQL è integrato con IAM e come puoi utilizzare IAM per l'autenticazione del database. Per una descrizione dettagliata di Google Cloud IAM, consulta la documentazione IAM.

Cloud SQL offre un insieme di ruoli predefiniti progettati per aiutarti a controllare l'accesso alle risorse Cloud SQL. Puoi anche creare i tuoi ruoli personalizzati, se i ruoli predefiniti non forniscono le autorizzazioni di cui hai bisogno. Inoltre, puoi ancora accedere ai ruoli di base legacy (Editor, Visualizzatore e Proprietario), sebbene non offrano lo stesso controllo granulare dei ruoli Cloud SQL. In particolare, i ruoli di base consentono di accedere alle risorse di Google Cloud, anziché solo per Cloud SQL. Per ulteriori informazioni sui ruoli di base di Google Cloud, consulta Ruoli di base.

Puoi impostare un criterio IAM a qualsiasi livello nella gerarchia delle risorse: a livello di organizzazione, di cartella o di progetto. Le risorse ereditano i criteri di tutte le risorse padre.

Riferimenti IAM per Cloud SQL

Concetti di autenticazione IAM

Quando utilizzi l'autenticazione IAM, l'autorizzazione ad accedere a una risorsa (un'istanza Cloud SQL) non viene concessa direttamente all'utente finale. Le autorizzazioni vengono invece raggruppate in ruoli e i ruoli vengono concessi alle entità. Per ulteriori informazioni, consulta la panoramica IAM.

Gli amministratori che fanno accedere gli utenti tramite l'autenticazione IAM del database possono utilizzare IAM per gestire centralmente il controllo dell'accesso alle loro istanze mediante i criteri IAM. I criteri IAM coinvolgono le seguenti entità:

  • Presidi. In Cloud SQL, puoi utilizzare due tipi di entità: un account utente e un account di servizio (per le applicazioni). Altri tipi di entità, come gruppi Google, domini Google Workspace o domini Cloud Identity, non sono supportati per l'autenticazione del database IAM. Per maggiori informazioni, consulta Concetti relativi all'identità.
  • Ruoli. Per l'autenticazione del database IAM, un'entità richiede l'autorizzazione cloudsql.instances.login per accedere a un'istanza. Per ottenere questa autorizzazione, devi associare l'account utente o di servizio al ruolo Utente istanza Cloud SQL predefinito o a un ruolo personalizzato che raggruppa l'autorizzazione. Per ulteriori informazioni sui ruoli IAM, consulta Ruoli.
  • Risorsa. Le risorse a cui le entità accedono sono istanze di Cloud SQL. Per impostazione predefinita, le associazioni di criteri IAM vengono applicate a livello di progetto, in modo che le entità ricevano le autorizzazioni del ruolo per tutte le istanze Cloud SQL nel progetto.

Autenticazione database IAM

Cloud SQL è integrato con Identity and Access Management (IAM) per aiutarti a gestire meglio l'accesso degli utenti e gli account di servizio ai database. Questa funzionalità è chiamata autenticazione del database IAM.

L'autenticazione è il processo di verifica dell'identità di un utente che tenta di accedere a un'istanza. Cloud SQL utilizza i seguenti tipi di autenticazione per gli utenti del database:

  • L'autenticazione integrata del database utilizza un nome utente e una password per autenticare un utente del database.
  • L'autenticazione dei database IAM utilizza IAM per autenticare un utente mediante un token di accesso.

Confronta le opzioni di autenticazione del database

La tabella seguente confronta diversi metodi di autenticazione del database per Cloud SQL.

Funzionalità Autenticazione database integrata Autenticazione database IAM
Metodo di autenticazione Password Token di autenticazione temporaneo
Crittografia del traffico di rete SSL non richiesto SSL obbligatorio
Gestione utenti Manuale Gestione centralizzata tramite IAM

Autenticazione automatica del database IAM o manuale

Cloud SQL per PostgreSQL offre due opzioni per l'autenticazione IAM: automatica e manuale.

Autenticazione automatica del database IAM

L'autenticazione automatica del database IAM consente di trasferire la richiesta e la gestione dei token di accesso a un connettore Cloud SQL intermediario, ad esempio il proxy di autenticazione Cloud SQL. Con l'autenticazione automatica del database IAM, gli utenti devono passare solo il nome utente del database IAM in una richiesta di connessione da parte del client. Il connettore invia le informazioni del token di accesso per l'attributo password per conto del client.

L'autenticazione automatica del database IAM richiede l'utilizzo di un connettore Cloud SQL. È supportato dal proxy di autenticazione Cloud SQL, dal connettore Go, dal connettore Java e dal connettore Python.

Per un'esperienza più sicura e affidabile, ti consigliamo di utilizzare l'autenticazione automatica del database IAM. L'autenticazione dei database IAM utilizza token di accesso OAuth 2.0, che sono di breve durata e validi solo per un'ora. I connettori Cloud SQL sono in grado di richiedere e aggiornare questi token, assicurando che le applicazioni o i processi di lunga durata che si basano sul pool di connessioni possano avere connessioni stabili. L'autenticazione automatica del database IAM è vivamente consigliata rispetto all'autenticazione manuale.

Per maggiori informazioni, consulta Accedere con l'autenticazione automatica dei database IAM.

Autenticazione manuale del database IAM

L'autenticazione manuale del database IAM richiede che l'entità IAM passi esplicitamente il token di accesso per l'attributo password nella richiesta di connessione client. Le entità devono prima accedere a Google Cloud e richiedere esplicitamente il token di accesso da IAM.

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 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.

L'accesso con l'autenticazione del database IAM può essere eseguito solo su una connessione SSL.

Per maggiori informazioni, consulta Accedere con l'autenticazione manuale del database IAM.

Amministrazione di account utente e di servizio

Per consentire a utenti e account di servizio di accedere ai database su un'istanza utilizzando l'autenticazione del database IAM, devi aggiungerli all'istanza. Per ulteriori informazioni, consulta Aggiungere un account utente o di servizio che utilizzi IAM.

Se utilizzi la console Google Cloud per aggiungere utenti o account di servizio, Cloud SQL ti chiede di aggiungere il ruolo "Utente Cloud SQL" all'utente. Questo ruolo è obbligatorio per consentire agli utenti di accedere all'istanza.

Se aggiungi utenti utilizzando gcloud o l'API, devi concedere manualmente i privilegi di accesso. Utilizza il comando PostgreSQL GRANT per concedere privilegi di database.

Configurazione dell'istanza per l'autenticazione IAM del database Cloud SQL

Puoi abilitare l'autenticazione del database IAM su un'istanza utilizzando il flag cloudsql.iam_authentication. Una volta abilitato questo flag, l'istanza abilita gli accessi da account configurati per l'autenticazione IAM del database.

L'impostazione del flag non impedisce agli utenti esistenti non IAM di utilizzare i propri nomi utente e password per accedere. Tuttavia, se disabiliti questo flag sull'istanza, qualsiasi utente aggiunto in precedenza utilizzando l'autenticazione del database IAM perderà l'accesso all'istanza. Per maggiori informazioni, consulta Configurazione delle istanze per l'autenticazione IAM dei database.

Autenticazione IAM del database Cloud SQL per diversi scenari di istanza

Repliche di lettura L'autenticazione del database IAM non è abilitata automaticamente in una replica di lettura, anche quando è abilitata nell'istanza principale. Dopo aver creato una replica di lettura, devi aggiungere l'autenticazione del database IAM. Per maggiori informazioni, consulta Configurazione degli accessi alle repliche di lettura per l'autenticazione dei database IAM.
Istanze ripristinate Se è stato precedentemente eseguito il backup di un'istanza e poi è stata ripristinata nella stessa istanza o in un'altra istanza dello stesso progetto, vengono applicate le autorizzazioni di accesso utente attuali. Se ripristini un backup in una nuova istanza in un altro progetto, devi configurare le autorizzazioni utente per la nuova istanza. Per maggiori informazioni, consulta Aggiunta di un account utente o di servizio che utilizza l'autenticazione IAM del database.

Informazioni sulle condizioni IAM

Le condizioni IAM consentono di concedere ruoli basati su vari attributi. Ad esempio, puoi consentire l'accesso solo in determinate date e orari o concedere l'accesso solo alle risorse Cloud SQL con determinati nomi.

Per ulteriori informazioni sulle condizioni IAM, consulta la pagina Panoramica delle condizioni IAM. Scopri di più sull'utilizzo delle condizioni IAM con Cloud SQL, inclusi degli esempi.

Utilizzo di Cloud Audit Logs

Per conservare la documentazione relativa agli accessi ai dati, inclusi gli accessi, puoi utilizzare i log di controllo. Audit log di Cloud è disattivato per impostazione predefinita. Devi attivare gli audit log di accesso ai dati per il monitoraggio dell'accesso. L'utilizzo dell'audit logging a questo scopo comporta costi per il logging dei dati. Per ulteriori informazioni, consulta Audit log, Configurazione degli audit log di accesso ai dati e Prezzi per i dati di logging.

Limitazioni

  1. Per motivi di sicurezza, gli accessi che utilizzano l'autenticazione del database IAM sono disponibili solo su una connessione SSL. Le connessioni non criptate vengono rifiutate.
  2. Per ogni istanza è prevista una quota di accesso al minuto, che include gli accessi riusciti e non. Quando la quota viene superata, gli accessi temporaneamente non sono disponibili. Ti consigliamo di evitare accessi frequenti e limitare gli accessi utilizzando le reti autorizzate. La quota per l'autorizzazione degli accessi è di 12.000 al minuto per istanza.

Passaggi successivi