Per gestire centralmente l'accesso al database utilizzando le credenziali Google Cloud , puoi configurare l'autenticazione del database Identity and Access Management (IAM) per singoli utenti e gruppi per i tuoi database AlloyDB per PostgreSQL.
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. Tutti i membri di quel gruppo ereditano le autorizzazioni per l'autenticazione, semplificando la gestione per più utenti.
L'autenticazione individuale è utile quando devi concedere l'accesso direttamente ad account specifici. Utilizza l'autenticazione di gruppo quando vuoi gestire l'accesso modificando l'appartenenza ai gruppi, il che riduce la necessità di aggiungere o rimuovere 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 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 controllo dell'accesso alle proprie istanze utilizzando le policy di autorizzazione IAM.
Le policy di autorizzazione IAM coinvolgono le seguenti entità:
Entità. In AlloyDB, puoi utilizzare un account utente o un account di servizio per le applicazioni. Per saperne di più sulle entità, consulta Entità.
Ruoli. Per l'autenticazione IAM del database, un'entità richiede l'autorizzazione
alloydb.users.login. Questa autorizzazione è inclusa nel ruolo Utente database AlloyDB (roles/alloydb.databaseUser). Per ottenere questa autorizzazione, associa l'utente, il account di servizio o il gruppo al ruolo predefinito o a un ruolo personalizzato che include l'autorizzazione. Per saperne di più su autorizzazioni e ruoli, consulta Autorizzazioni e ruoli.Risorsa. Le risorse a cui accedono le entità sono i cluster AlloyDB. Le associazioni dei ruoli 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 IAM, 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 IAM dei database: 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 AlloyDB o uno degli AlloyDB Language Connector.
Con l'autenticazione IAM automatica dei 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 della 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. Un esempio di gruppo è un gruppo Cloud Identity. Questa funzionalità semplifica la gestione degli utenti del database. Puoi gestire i ruoli o le autorizzazioni PostgreSQL per più utenti IAM contemporaneamente, anziché aggiornare ogni utente o account di servizio singolarmente. Puoi anche concedere e revocare i ruoli del database per un gruppo Cloud Identity. Tutti i nuovi account che aggiungi al gruppo Cloud Identity ereditano i privilegi e i ruoli di quel gruppo.
Utilizzando l'autenticazione dei gruppi IAM, puoi:
Aggiungi un utente a un gruppo e fai in modo che erediti automaticamente i ruoli IAM e i privilegi del database.
Rimuovi un utente da un gruppo per rimuovere i suoi privilegi di accesso e di database dai cluster AlloyDB.
Concedi i privilegi di accesso o del database a un gruppo una sola volta, anziché dover concedere gli stessi privilegi più volte a utenti diversi.
Rimuovere le autorizzazioni di accesso o l'accesso a un oggetto del database per un gruppo contemporaneamente.
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 e non un account di gruppo condiviso per accedere. 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 nei log di controllo. Per scopi di controllo, puoi visualizzare quale account ha eseguito quale azione nel tuo database.
Per ulteriori informazioni sull'utilizzo dei gruppi di Cloud Identity, consulta Panoramica di Cloud Identity.
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 ottiene la possibilità di accedere al cluster AlloyDB perché 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
Quando revochi il ruolo Utente database AlloyDB (
roles/alloydb.databaseUser) per un gruppo IAM in Cloud Identity, 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 è disponibile in anteprima per i nuovi cluster AlloyDB. Per attivare questa funzionalità su un cluster esistente, contatta il tuo team dedicato all'account Google Cloud .
L'autenticazione dei gruppi IAM è supportata solo nella versione del database
POSTGRES_15e successive in Anteprima.Per supportare la sicurezza, gli accessi che utilizzano l'autenticazione del database IAM sono disponibili solo su 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, il che causa 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.Quando utilizzi l'autenticazione dei gruppi IAM, se hai un cluster AlloyDB con repliche di lettura, accedi all'istanza principale prima di accedere all'istanza della replica di lettura. Dopo il primo accesso all'istanza principale, le informazioni sugli utenti del gruppo vengono replicate nelle repliche di lettura. Per gli accessi successivi, puoi accedere direttamente alla replica di lettura.
Puoi aggiungere un massimo di 200 gruppi IAM a un'istanza.
Non puoi aggiungere singoli utenti IAM o service account che appartengono a un gruppo nella stessa istanza. In altre parole, non puoi aggiungere un account con il tipo
ALLOYDB_IAM_USERse esiste già un account identico con il tipoALLOYDB_IAM_GROUP_USERoALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.Se esiste già un account individuale su un'istanza 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ù, consulta Un utente o un account di servizio IAM esistente non eredita i privilegi del database concessi al gruppo.La propagazione delle modifiche all'appartenenza ai gruppi di Cloud Identity, ad esempio l'aggiunta di un account, richiede circa 15 minuti. Questo tempo si aggiunge a quello necessario per le modifiche IAM.
L'autenticazione del gruppo IAM non è supportata con il pool di connessioni gestito.
L'autenticazione del gruppo IAM non è supportata con le identità federate.