Google Cloud offre Identity and Access Management (IAM), che consente di concedere l'accesso a specifiche risorse Google Cloud e impedire ad altre risorse. Questa pagina descrive come Cloud SQL è integrato IAM e come puoi utilizzare IAM per gestire l'accesso a Cloud SQL risorse e l'autenticazione del database. Per una descrizione dettagliata di Google Cloud IAM, consulta documentazione IAM.
Cloud SQL offre un insieme di ruoli predefiniti progettato per aiutarti a controllare l'accesso alle tue risorse Cloud SQL. Puoi creare anche ruoli personalizzati, se i ruoli predefiniti non forniscono le autorizzazioni di cui hai bisogno. Inoltre, anche i ruoli di base legacy (Editor, Visualizzatore e Proprietario) disponibili, anche se non forniscono e lo stesso controllo granulare dei ruoli di Cloud SQL. In particolare, i ruoli di base forniscono accesso alle risorse in Google Cloud, anziché solo per Cloud SQL. Per saperne di più sui ruoli di base di Google Cloud, consulta Ruoli di base.
Puoi impostare un criterio IAM a qualsiasi livello nella gerarchia delle risorse: organizzazione, cartella o progetto. Le risorse ereditano i criteri di tutte le rispettive risorse padre.
Riferimenti IAM per Cloud SQL
- Autorizzazioni richieste per le attività comuni nella console Google Cloud
- Autorizzazioni richieste per i comandi
gcloud sql
- Autorizzazioni richieste per i metodi dell'API Cloud SQL Admin
- Ruoli IAM di Cloud SQL predefiniti
- Autorizzazioni e ruoli
- Ruoli personalizzati
Concetti dell'autenticazione IAM
Quando si utilizza l'autenticazione IAM, l'autorizzazione per accedere a una risorsa (un'istanza Cloud SQL) non viene concesso direttamente all'utente finale. Invece, le autorizzazioni sono raggruppate in ruoli e i ruoli vengono concessi alle entità. Per ulteriori informazioni, consulta Panoramica IAM.
Gli amministratori con utenti che accedono tramite l'autenticazione del database IAM possono utilizzare Autenticazione IAM per gestire centralmente il controllo dell'accesso alle istanze utilizzando i criteri IAM.
I criteri IAM coinvolgono le seguenti entità:
- Entità. In Cloud SQL, puoi utilizzare diversi tipi di entità: un account utente, un account di servizio (per le applicazioni) o un gruppo. Per ulteriori informazioni, vedi Concetti relativi all'identità.
- Ruoli. Un ruolo è una raccolta di autorizzazioni. Puoi concedere ruoli
per fornire i privilegi necessari a eseguire
attività specifiche.
Ad esempio, con l'autenticazione IAM dei database, un'entità richiede
l'autorizzazione
cloudsql.instances.login
per accedere a un'istanza, incluso nel ruolo Utente istanza Cloud SQL. Per ottenere l'autorizzazione, devi vincolare l'utente, l'account di servizio o un gruppo al ruolo Cloud SQL predefinito o a un ruolo personalizzato include l'autorizzazione. Per ulteriori informazioni sui ruoli IAM, consulta Ruoli. - Risorsa. Le risorse a cui accedono le entità sono Cloud SQL di Compute Engine. Per impostazione predefinita, le associazioni di criteri IAM vengono applicate a livello di progetto, in modo che le entità ricevano le autorizzazioni dei ruoli di Cloud SQL nel progetto.
Autenticazione dei database IAM
L'autenticazione del database è il processo di verifica dell'identità di un utente che è di accedere ai database. In Cloud SQL, puoi utilizzare quanto segue tipi di autenticazione del database 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 del database IAM utilizza IAM per autenticare un utente mediante un di accesso.
Confronta le opzioni di autenticazione dei database
La tabella seguente confronta i diversi metodi di autenticazione dei database per in Cloud SQL.
Funzionalità | Autenticazione database integrata | Autenticazione dei database IAM (singola) | Autenticazione dei gruppi IAM |
---|---|---|---|
Metodo di autenticazione | Password | Token di autenticazione temporaneo | Token di autenticazione temporaneo |
Crittografia del traffico di rete | SSL non richiesto | SSL obbligatorio | SSL obbligatorio |
Gestione utenti | Manuale | Centralizzazione tramite IAM | Servizio centralizzato tramite gruppi IAM e Cloud Identity |
Autenticazione di gruppi IAM
L'autenticazione di gruppo IAM consente di gestire gli utenti di Cloud SQL a livello di gruppo. Esempio di un gruppo include un gruppo Cloud Identity. Questa funzionalità semplifica la gestione degli utenti del database. Puoi gestire le risorse Cloud SQL Ruolo o autorizzazioni IAM per più account contemporaneamente anziché dover aggiornare singolarmente ogni account utente o di servizio. Puoi anche concedere e revocare i privilegi di database per un gruppo Cloud Identity. Tutti i nuovi account che aggiungi al gruppo Cloud Identity ereditano il dominio i privilegi di quel gruppo.
Con l'autenticazione di gruppo IAM puoi:
- Aggiungere un utente a un gruppo e fare in modo che erediti i propri ruoli IAM e i privilegi del database automaticamente.
- Rimuovi un utente da un gruppo per rimuovere il suo accesso e il relativo database dai database Cloud SQL.
- Concedi le credenziali di accesso o di database a un gruppo una sola volta invece di dover concedere gli stessi privilegi più volte a utenti diversi.
- Rimuovi le autorizzazioni di accesso o l'accesso a un oggetto di database per un gruppo contemporaneamente.
Anche se i ruoli e le autorizzazioni IAM vengono assegnati a livello di gruppo, gli utenti e gli account di servizio usano e credenziali IAM e non un account di gruppo condiviso se ne hai già uno. Cloud SQL crea un account di database sull'istanza per quell'utente o un account di servizio dopo il primo accesso.
Accesso individuale e database le attività di ciascun account utente o di servizio vengono visualizzate negli audit log. Per ai fini della revisione contabile, è possibile vedere quale account ha eseguito nel database.
Per saperne di più su come lavorare con i gruppi di Cloud Identity, consulta Panoramica di Cloud Identity.
Quando aggiungi un account utente o di servizio a un gruppo, si verificano i seguenti cambiamenti in Cloud SQL:
- Se hai già concesso le autorizzazioni di accesso IAM al gruppo, allora l'account utente o di servizio ottiene la possibilità di accedere al Istanza Cloud SQL perché l'account utente o di servizio appartiene il gruppo.
- L'utente eredita automaticamente tutti i privilegi del database. concessi al gruppo.
Quando rimuovi un account utente o di servizio dal gruppo: si verificano cambiamenti in Cloud SQL:
- L'utente perde i privilegi di database ereditati in precedenza di far parte del gruppo.
- L'utente potrebbe essere comunque in grado di accedere se riceve l'accesso IAM. autorizzazioni per l'istanza Cloud SQL tramite l'appartenenza ad altri gruppi. Tuttavia, l'utente non disporrà dei privilegi di database del gruppo precedente al momento dell'accesso.
Best practice per l'autenticazione di gruppi IAM
- Quando revochi l'autorizzazione di accesso (
cloudsql.instances.login
) per un gruppo IAM in Cloud Identity, e assicurati di eliminare il gruppo anche dall'istanza Cloud SQL. - Quando elimini un gruppo da Cloud Identity, assicurati di per eliminare il gruppo dall'istanza Cloud SQL.
- Utilizza i gruppi per configurare il controllo dell'accesso basato su ruoli nel tuo database. Sempre fornire al gruppo i privilegi meno necessari.
- Non concedere ruoli di autenticazione di gruppo IAM agli utenti integrati. Ad esempio, se
avere un utente integrato
user-a
e creare un'autenticazione di gruppo IAM utente,user-b@example.com
, quindi non concedereuser-b@example.com
auser-a
.
Restrizioni di autenticazione per i gruppi IAM
- Quando utilizzi l'autenticazione di gruppo IAM, se hai un'istanza Cloud SQL con le repliche di lettura, devi prima accedere all'istanza principale prima di accedere all'istanza di replica di lettura. Dopo il primo accesso al principale, le informazioni sull'utente del gruppo vengono replicate nell'istanza di repliche di lettura. Per gli accessi successivi, puoi accedere direttamente al replica.
- Puoi aggiungere un massimo di 200 gruppi IAM a un'istanza.
- Non puoi aggiungere singoli account utente o di servizio IAM
che appartengono a un gruppo sulla stessa istanza. In altre parole, non puoi aggiungere
account di tipo
CLOUD_IAM_USER
oCLOUD_IAM_SERVICE_ACCOUNT
se un account identico di tipoCLOUD_IAM_GROUP_USER
oCLOUD_IAM_GROUP_SERVICE_ACCOUNT
esiste già. - Se esiste già un account individuale in un'istanza con
digita
CLOUD_IAM_USER
oCLOUD_IAM_SERVICE_ACCOUNT
, significa che l'account non potrà essere utilizzato per l'autenticazione di gruppo IAM. I tipi di utenti che seguono non ereditano i ruoli IAM e i privilegi dei database da un gruppo.Per risolvere il problema e utilizzare l'account con l'autenticazione di gruppo IAM: per rimuovere il singolo account utente o di servizio IAM.
Per ulteriori informazioni, vedi Un account utente o di servizio IAM esistente non eredita i privilegi di database concessi al proprio gruppo. - Modifiche all'iscrizione ai gruppi Cloud Identity, ad esempio l'aggiunta di impieghi circa 15 minuti per la propagazione. Questo si aggiunge al tempo necessario per le modifiche IAM.
Autenticazione dei database IAM automatica e manuale
Cloud SQL per PostgreSQL offre due opzioni per l'autenticazione IAM dei database: automatica e manuale.
Autenticazione IAM automatica dei database
L'autenticazione automatica dei database IAM consente di trasferire la richiesta e la gestione dei token di accesso a un connettore Cloud SQL intermediario, come il proxy di autenticazione Cloud SQL o uno dei connettori di linguaggio Cloud SQL. Con i modelli dell'autenticazione del database IAM, gli utenti devono passare solo Nome utente del database IAM in una richiesta di connessione dal client. Il connettore invia le informazioni del token di accesso per l'attributo password su per conto del cliente.
L'autenticazione automatica dei database IAM richiede l'uso di un connettore Cloud SQL è supportato Proxy di autenticazione Cloud SQL, il connettore Go, connettore Java e connettore Python.
Per un'esperienza più sicura e affidabile, ti consigliamo di utilizzare Autenticazione IAM dei database. L'autenticazione dei database IAM utilizza token di accesso OAuth 2.0, che sono di breve durata valido solo per un'ora. I connettori Cloud SQL possono richiedere e aggiornare questi token, garantendo che le applicazioni o i processi di lunga durata che si basano il pooling di connessioni può avere connessioni stabili. L'autenticazione automatica del database IAM è fortemente è consigliabile rispetto all'autenticazione manuale.
Per saperne di più, consulta Accedere con l'autenticazione automatica del database IAM.
Autenticazione IAM manuale dei database
L'autenticazione manuale dei database IAM richiede che l'entità IAM superi 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 l'accesso il token di sicurezza di IAM.
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 autenticazione IAM del database, tu 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.
L'accesso con l'autenticazione del database IAM può essere eseguito solo su una connessione SSL connessione.
Per ulteriori informazioni, vedi Accesso con l'autenticazione manuale dei database IAM.
Amministrazione di account di servizio e utenti
fornisce a utenti e account di servizio l'accesso ai database su un'istanza utilizzando: l'autenticazione dei database IAM, devi aggiungerla all'istanza oppure a un gruppo che ha accesso all'istanza. Per ulteriori informazioni, consulta Aggiungere un account utente o di servizio che utilizza IAM.
Se utilizzi la console Google Cloud per aggiungere utenti o account di servizio, Cloud SQL che ti chiede di aggiungere l'"Utente Cloud SQL" all'utente. Questo ruolo è obbligatorio per consentire agli utenti di accedere all'istanza.
Se aggiungi utenti utilizzandogcloud
o l'API, devi concedere i privilegi di accesso
manualmente. Utilizzare il comando PostgreSQL GRANT
per concedere privilegi di database.
Configurazione dell'istanza per l'autenticazione IAM dei database Cloud SQL
Puoi abilitare l'autenticazione del database IAM su un'istanza utilizzando il cloudsql.iam_authentication
flag. Una volta abilitato questo flag, l'istanza abilita gli accessi da account che
e sono configurate per l'autenticazione IAM dei database.
Questo flag è obbligatorio per l'autenticazione di gruppo e l'autenticazione IAM dei database.
L'impostazione del flag non impedisce agli utenti non IAM esistenti di utilizzando il proprio nome utente e la propria password per accedere. Tuttavia, se disabiliti questo flag nell'istanza, qualsiasi utente che hai aggiunto in precedenza utilizzando l'autenticazione del database IAM perde l'accesso all'istanza. Per ulteriori informazioni, vedi Configurazione delle istanze per l'autenticazione IAM dei database.
Autenticazione IAM dei database Cloud SQL per diversi scenari di istanza
Repliche di lettura | L'autenticazione IAM dei database non è abilitata automaticamente in una replica di lettura, anche quando è abilitato sull'istanza principale. Dopo aver creato una replica di lettura, aggiungere l'autenticazione IAM del database. Per ulteriori informazioni, vedi Configura gli accessi alle repliche di lettura per l'autenticazione dei database IAM. |
Istanze ripristinate | Se un'istanza è stata precedentemente sottoposta a backup e ripristinata in un secondo momento nella stessa istanza o a un'altra istanza nello stesso progetto, l'accesso utente corrente si applicano le autorizzazioni. Se ripristini un backup in una nuova istanza in un altro devi configurare le autorizzazioni utente per la nuova istanza. Per ulteriori informazioni, vedi Aggiungi un account utente o di servizio che utilizza l'autenticazione IAM del database. |
Informazioni sulle condizioni IAM
Le condizioni IAM ti consentono di concedere ruoli in base a una varietà di attributi. Ad esempio, puoi consentire l'accesso solo in determinate date e orari o concedere l'accesso solo a alle risorse Cloud SQL con determinati nomi.
Per ulteriori informazioni sulle condizioni IAM, consulta la Panoramica delle condizioni IAM . Puoi anche scoprire di più Utilizzo delle condizioni IAM con Cloud SQL, inclusi esempi.
Utilizzo di Cloud Audit Logs
Per conservare i record degli accessi ai dati, inclusi gli accessi, puoi utilizzare i log di controllo. Cloud Audit Logs è disattivato per impostazione predefinita. Tu attivare gli audit log dell'accesso ai dati monitoraggio degli accessi. L'uso dell'audit logging per questo scopo comporta costi per i dati log. Per ulteriori informazioni, consulta Audit log. Configurazione degli audit log di accesso ai dati e Prezzi per i dati di logging.
Limitazioni
- L'accesso per un account utente per l'autenticazione del database IAM deve essere tutto minuscolo. Ad esempio:
example-user@example.com
.Example-User@example.com
non è consentito. - Per motivi di sicurezza, gli accessi mediante l'autenticazione IAM dei database sono disponibili solo su un connessione. Le connessioni non criptate vengono rifiutate.
- È prevista una quota di accesso al minuto per ogni istanza, che include sia accessi riusciti e non riusciti. Quando la quota viene superata, gli accessi vengono temporaneamente non disponibile. Ti consigliamo di evitare accessi frequenti e limita gli accessi tramite reti autorizzate. La quota per l'autorizzazione degli accessi è di 12.000 al minuto per istanza.
Passaggi successivi
- Scopri come configurare istanze per l'autenticazione IAM dei database.
- Scopri come aggiungere un account utente o di servizio che utilizza l'autenticazione del database IAM al tuo database.
- Scopri come accedere a un database Cloud SQL con l'autenticazione dei database IAM.
- Scopri come visualizzare le informazioni di accesso nei log di controllo.