L'autenticazione del database Identity and Access Management (IAM) ti consente di controllare e gestire l'accesso ai tuoi database AlloyDB per PostgreSQL utilizzando policy IAM centralizzate anziché password del database.
L'autenticazione database IAM offre le seguenti opzioni:
- Autenticazione IAM individuale: aggiungi utenti o service account specifici al cluster.
- Autenticazione dei gruppi IAM: aggiungi un gruppo IAM al cluster e tutti i membri di quel gruppo ereditano le autorizzazioni per l'autenticazione.
L'autenticazione individuale è utile quando devi concedere l'accesso direttamente ad account specifici. L'autenticazione di gruppo ti consente di gestire l'accesso al database modificando l'appartenenza ai gruppi, riducendo la necessità di aggiungere o rimuovere singoli utenti a livello di cluster.
Concetti di autenticazione IAM
Quando utilizzi l'autenticazione IAM, l'autorizzazione per accedere a un'istanza AlloyDB non viene concessa direttamente all'utente finale. Le autorizzazioni sono invece raggruppate in ruoli, che vengono concessi alle entità. Per saperne di più su ruoli e autorizzazioni IAM, consulta la panoramica di IAM.
Gli amministratori che consentono agli utenti di accedere tramite l'autenticazione del database IAM possono utilizzare IAM per gestire centralmente il controllo dell'accesso alle proprie istanze utilizzando le policy IAM.
Le policy IAM coinvolgono le seguenti entità:
Entità: in AlloyDB, puoi utilizzare un account utente, un service account per le applicazioni o un gruppo IAM. Per saperne di più sulle entità, consulta Entità.
Ruoli: per l'autenticazione del database IAM, un'entità richiede l'autorizzazione
alloydb.users.login, inclusa nel ruolo Utente database AlloyDB (roles/alloydb.databaseUser) e nel ruolo Service Usage Consumer (roles/serviceusage.serviceUsageConsumer). Per concedere queste autorizzazioni, associa l'utente, il account di servizio o il gruppo a questi ruoli predefiniti o a un ruolo personalizzato che includa le autorizzazioni richieste. Per saperne di più su ruoli e autorizzazioni, consulta Autorizzazioni e ruoli.Risorse: le risorse a cui accedono le entità sono i cluster AlloyDB. Le associazioni delle policy IAM vengono applicate a livello di progetto, in modo che le entità ricevano le autorizzazioni dei ruoli per tutte le istanze AlloyDB nel progetto. Per saperne di più sulle risorse, consulta Risorse.
Confronta le opzioni di autenticazione del database
Utilizza la tabella seguente per decidere quale metodo di autenticazione è più adatto al tuo caso d'uso.
| Funzionalità | Autenticazione del database integrata | Autenticazione database IAM |
|---|---|---|
| Metodo di autenticazione | Password | Token di autenticazione temporaneo |
| Crittografia del traffico di rete | SSL non obbligatorio | SSL obbligatorio |
| Gestione utenti | Manuale | Centralizzato tramite IAM |
Autenticazione IAM dei database automatica e manuale
AlloyDB offre due metodi per l'autenticazione del database IAM: automatico e manuale.
Autenticazione automatica IAM dei database
L'autenticazione automatica del database IAM ti consente di delegare la richiesta e la gestione dei token di accesso a un connettore AlloyDB intermedio, come il proxy di autenticazione o uno dei connettori dei linguaggi.
Con l'autenticazione IAM automatica del database, un'applicazione deve passare solo il nome utente IAM del database in una richiesta di connessione dal client. Il connettore invia le informazioni del token di accesso per l'attributo della password per conto del client.
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 del client. Le entità devono prima accedere a Google Cloud e richiedere esplicitamente il token di accesso a IAM.
Per tenere traccia degli accessi ai dati, inclusi gli accessi, puoi utilizzare Cloud Audit Logs. Cloud Audit Logs è disattivato per impostazione predefinita. Attiva i log di controllo dell'accesso ai dati per il monitoraggio degli accessi.
Autenticazione del gruppo IAM
L'autenticazione dei gruppi IAM ti consente di gestire gli utenti AlloyDB a livello di gruppo su cluster nuovi ed esistenti, ad esempio utilizzando un gruppo Cloud Identity. Puoi gestire i ruoli e le autorizzazioni PostgreSQL per più utenti IAM contemporaneamente, anziché aggiornare ogni utente o account di servizio singolarmente. Quando concedi o revochi i ruoli del database per un gruppo Cloud Identity, tutti gli account che aggiungi al gruppo ereditano i privilegi e i ruoli del gruppo.
Per abilitare l'autenticazione dei gruppi IAM su un'istanza, imposta i flag di database alloydb.iam_authentication e alloydb.iam_group_authentication su on.
Utilizzando l'autenticazione dei gruppi IAM, puoi:
Abilitare l'autenticazione di gruppo sia sui cluster nuovi che su quelli esistenti senza applicare patch manuali ai cluster.
Aggiungi un utente a un gruppo in modo che erediti automaticamente i ruoli IAM e i privilegi del database.
Rimuovi un utente da un gruppo per revocare il suo accesso e i suoi privilegi di database nei cluster AlloyDB.
Concedi o revoca le autorizzazioni di accesso e l'accesso agli oggetti del database per un intero gruppo contemporaneamente, anziché aggiornare i singoli account.
Accedi direttamente ad AlloyDB Studio nella console Google Cloud , nelle istanze primarie o nelle istanze del pool di lettura, inclusi i primi accessi direttamente alle istanze del pool di lettura senza prima connetterti all'istanza primaria.
Ripristina o esegui la migrazione di un cluster AlloyDB da un backup di Cloud SQL per PostgreSQL, mappando e conservando le configurazioni degli utenti individuali e dei gruppi IAM.
Anche se i ruoli e le autorizzazioni IAM sono assegnati a livello di gruppo, gli utenti e i service account utilizzano i propri account e credenziali IAM individuali, non un account di gruppo condiviso, per accedere alle istanze primarie, alle istanze del pool di lettura o ad AlloyDB Studio. AlloyDB crea un account del database sul cluster per l'entità durante il primo accesso.
L'attività di accesso e del database per ogni utente o account di servizio viene visualizzata negli audit log, consentendoti di verificare quale account ha eseguito ogni azione nel database.
Per ulteriori informazioni sull'utilizzo dei gruppi di Cloud Identity, consulta Panoramica di Cloud Identity. Per ulteriori informazioni sulla migrazione da un backup di Cloud SQL per PostgreSQL, vedere Migrazione da Cloud SQL per PostgreSQL ad AlloyDB.
Quando aggiungi un utente o un account di servizio a un gruppo, in AlloyDB si verificano le seguenti modifiche:
Se hai già concesso le autorizzazioni di accesso IAM al gruppo, l'utente o il account di servizio acquisisce la possibilità di accedere al cluster AlloyDB perché l'utente o il account di servizio appartiene al gruppo.
L'utente eredita automaticamente tutti i privilegi del database o i ruoli concessi al gruppo.
Quando rimuovi un utente o un account di servizio dal gruppo, in AlloyDB si verificano le seguenti modifiche:
- L'utente perde tutti i privilegi del database precedentemente ereditati in quanto membro del gruppo.
- L'utente potrebbe comunque essere in grado di creare nuove sessioni se riceve le autorizzazioni di accesso IAM per il cluster AlloyDB tramite l'iscrizione ad altri gruppi. Tuttavia, l'utente non avrà i privilegi del database della sua precedente appartenenza al gruppo dopo l'accesso.
Best practice
Segui queste best practice quando utilizzi l'autenticazione dei gruppi IAM:
Quando revochi il ruolo
roles/alloydb.databaseUserper un gruppo IAM in IAM, elimina il gruppo dal cluster AlloyDB.Quando elimini un gruppo da Cloud Identity, eliminalo dal cluster AlloyDB.
Utilizza i gruppi per configurare controllo dell'accesso basato sui ruoli nel tuo database. Fornisci al gruppo i privilegi minimi richiesti.
Limitazioni
L'autenticazione dei gruppi IAM presenta le seguenti limitazioni:
L'autenticazione dei gruppi IAM è supportata solo nella versione del database
POSTGRES_15e successive.Per supportare la sicurezza, gli accessi che utilizzano l'autenticazione del database IAM sono disponibili solo tramite una connessione SSL. Le connessioni non criptate vengono rifiutate.
Esiste una quota di accesso al minuto per ogni istanza, che include sia gli accessi riusciti che quelli non riusciti. Quando la quota viene superata, gli accessi non sono temporaneamente disponibili. Evita accessi frequenti e limita gli accessi utilizzando reti autorizzate.
L'entità abbreviata di un account di servizio, ovvero l'indirizzo email senza il suffisso
., non deve superare i 63 caratteri. PostgreSQL tronca i nomi dei ruoli più lunghi di 63 caratteri nel catalogo del database, causando l'errore dell'autenticazione IAM. Se non riesci ad abbreviare il nome del account di servizio, consulta la soluzione alternativa per la simulazione dell'identità dei service account.Puoi aggiungere un massimo di 200 gruppi IAM a un cluster.
Non puoi aggiungere singoli utenti IAM o service account che appartengono a un gruppo nello stesso cluster. In altre parole, non puoi aggiungere un account di tipo
ALLOYDB_IAM_USERse esiste già un account identico di tipoALLOYDB_IAM_GROUP_USERoALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.Se esiste già un account individuale su un cluster con il tipo
ALLOYDB_IAM_USER, non puoi utilizzarlo per l'autenticazione dei gruppi IAM. Questi tipi di utenti non ereditano i ruoli IAM e i privilegi del database da un gruppo. Per risolvere il problema e utilizzare l'account con l'autenticazione dei gruppi IAM, rimuovi l'utente o il account di servizio IAM individuale. Per saperne di più sulla risoluzione di questo problema, consulta Un account esistente non eredita i privilegi.Le modifiche all'appartenenza ai gruppi Cloud Identity, ad esempio l'aggiunta di un account, richiedono circa 15 minuti per la propagazione. Questo tempo di propagazione si aggiunge al tempo necessario per le modifiche IAM.
L'autenticazione dei gruppi IAM richiede che tutti i flag di database relativi alle password che regolano il numero minimo di caratteri, caratteri numerici e lunghezza minima siano meno restrittivi o disabilitati.
L'autenticazione dei gruppi IAM non è supportata con il pooling delle connessioni gestite o le connessioni PgBouncer.
L'autenticazione dei gruppi IAM non è supportata con le identità federate.