In questa pagina viene descritto come preparare l'istanza AlloyDB per PostgreSQL per facilitare l'autenticazione del database utilizzando Identity and Access Management (IAM).
L'autenticazione IAM integra l'autenticazione del database tramite gli utenti PostgreSQL standard, supportati da ogni cluster AlloyDB.
Puoi eseguire l'autenticazione utilizzando account o gruppi individuali:
- Account individuali: aggiungi ogni utente IAM o service account al cluster. Puoi utilizzare i ruoli utente IAM o PostgreSQL per eseguire l'autenticazione con il cluster.
- Gruppi: aggiungi un gruppo IAM al cluster. Tutti i membri (utenti e service account) di questo gruppo ereditano le autorizzazioni per l'autenticazione. In questo modo puoi gestire l'accesso gestendo l'iscrizione al gruppo senza aggiungere ogni membro al cluster singolarmente.
L'autenticazione IAM è disabilitata per impostazione predefinita sulle istanze AlloyDB.
Per utilizzare l'autenticazione IAM, completa i seguenti passaggi generali:
- Abilita l'autenticazione IAM individuale o di gruppo sull'istanza.
- Concedi i ruoli richiesti all'account o al gruppo.
- Aggiungi l'account o il gruppo al cluster.
- Concedi i privilegi di database all'account o al gruppo.
Abilitare e disabilitare l'autenticazione IAM
Per abilitare l'autenticazione IAM su un'istanza, imposta i flag di database.
- Per l'autenticazione individuale, imposta
alloydb.iam_authenticationsuon. - Per l'autenticazione di gruppo, imposta sia
alloydb.iam_authenticationchealloydb.iam_group_authenticationsuon.
Per disabilitare l'autenticazione IAM, imposta i flag su off.
Per ulteriori informazioni sull'impostazione dei flag, consulta Configurare i flag di database di un'istanza.
Concedere l'accesso a un account individuale
Per abilitare l'accesso IAM a un nuovo utente del database:
Aggiorna le impostazioni IAM del progetto per concedere l'accesso al database AlloyDB all'utente IAM o al account di servizio appropriato.
Crea un nuovo utente del database nel cluster, impostando il nome utente come indirizzo email dell'utente IAM o del service account.
Per concedere a un account IAM l'accesso ad altri cluster del progetto, ripeti l'ultimo passaggio.
Aggiornare un account IAM con il ruolo appropriato
Puoi consentire agli utenti IAM o ai service account di eseguire l'autenticazione con le istanze AlloyDB concedendo loro i seguenti ruoli IAM:
alloydb.databaseUser: consente all'utente di connettersi all'istanza AlloyDB.serviceusage.serviceUsageConsumer: fornisce all'utente l'accesso a un'API che controlla le autorizzazioni.
Per farlo, segui le istruzioni riportate in
Concedere l'accesso ad altri utenti. Nel passaggio in cui selezioni un ruolo da concedere all'entità IAM, scegli alloydb.databaseUser.
Aggiungere un utente IAM o account di servizio a un cluster
Console
Vai alla pagina Cluster.
Fai clic sul nome del cluster a cui vuoi aggiungere un utente.
Fai clic su Utenti.
Fai clic su Aggiungi account utente.
Seleziona Cloud IAM.
Nel campo Entità, inserisci l'entità IAM.
Per un account utente IAM, fornisci l'indirizzo email completo dell'account utente. Ad esempio,
kai@altostrat.com.Per un account di servizio IAM, fornisci l'indirizzo del account di servizio senza il suffisso
.. Ad esempio, per specificare il account di serviziomy-service@my-project., utilizza il valoremy-service@my-project.iam.Per assegnare all'utente ruoli diversi da quello predefinito
alloydbsuperuser:- Inserisci il nome del ruolo in Ruoli.
- Per aggiungere il ruolo, premi Invio o Tab.
Seleziona x per qualsiasi ruolo che vuoi rimuovere per l'utente.
Per ulteriori informazioni, consulta Ruoli predefiniti
Fai clic su Aggiungi.
gcloud
Per creare un utente del database PostgreSQL basato su un utente IAM o
un account di servizio, utilizza il
gcloud alloydb users create comando.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASEDSostituisci le seguenti variabili:
USERNAME: identificatore dell'utente IAM che vuoi aggiungere come nuovo utente del database.Per un account utente IAM, fornisci l'indirizzo email completo dell'account utente. Ad esempio,
kai@altostrat.com.Per un account di servizio IAM, fornisci l'indirizzo del account di servizio senza il suffisso
.. Ad esempio, per specificare il account di serviziomy-service@my-project., utilizza il valoremy-service@my-project.iam.CLUSTER: ID del cluster in cui creare questo account utente del database.REGION: ID della regione in cui si trova il cluster, ad esempious-central1.
Concedere le autorizzazioni di database appropriate agli utenti IAM
Quando aggiungi un utente IAM a un cluster AlloyDB, l'utente non ha privilegi su alcun database per impostazione predefinita, ad eccezione degli oggetti di database a cui può accedere PUBLIC.
Se gli utenti hanno bisogno di un accesso aggiuntivo, concedi ulteriori privilegi utilizzando l'
GRANT istruzione PostgreSQL:
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Sostituisci le seguenti variabili:
USERNAME: indirizzo email dell'utente. Devi includere le virgolette doppie intorno all'indirizzo.TABLE_NAME: nome della tabella a cui vuoi concedere l'accesso all'utente.
Rimuovere un utente IAM o un account di servizio da un cluster
Console
Vai alla pagina Cluster.
Fai clic sul nome del cluster da cui vuoi rimuovere l'utente.
Fai clic su Utenti.
Nella riga che rappresenta l'utente che vuoi rimuovere, fai clic su Apri azioni per questo utente.
Seleziona Rimuovi.
Nella finestra di dialogo Rimuovere l'account utente?, fai clic su Rimuovi.
gcloud
Utilizza
il gcloud alloydb users delete comando.
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGIONSostituisci quanto segue:
USERNAME: identificatore dell'utente IAM che vuoi rimuovere dal cluster.Per un account utente IAM, fornisci l'indirizzo email completo dell'account utente. Ad esempio,
kai@altostrat.com.Per un account di servizio IAM, fornisci l'indirizzo del account di servizio senza il suffisso
.. Ad esempio, per specificare il account di serviziomy-service@my-project., utilizza il valoremy-service@my-project.iam.CLUSTER: ID del cluster da cui rimuovere questo utente.REGION: ID della regione in cui si trova il cluster. Ad esempio,us-central1.
Concedere l'accesso a un gruppo IAM
Per utilizzare l'autenticazione di gruppo (anteprima), aggiungi un gruppo IAM al cluster AlloyDB.
Aggiungere un gruppo IAM a un cluster
Assegna i ruoli
alloydb.databaseUsereserviceusage.serviceUsageConsumerall'account del gruppo. Per ulteriori informazioni, consulta Aggiornare un account IAM con il ruolo appropriato.In un cluster possono esistere al massimo 200 gruppi IAM in qualsiasi momento. I gruppi inattivi vengono conteggiati ai fini di questo limite.
I nomi dei gruppi IAM possono contenere al massimo 63 caratteri.
Se hai un gruppo IAM con un nome che supera il limite di lunghezza, puoi nidificarlo in un gruppo principale con un nome valido. Prima di poter utilizzare il gruppo nidificato, devi aggiungere il gruppo principale al cluster.
Per creare un utente del database per il gruppo, utilizza il comando
gcloud alloydb users createcon il flag--type=IAM_GROUP.gcloud beta alloydb users create GROUP_EMAIL \ --cluster=CLUSTER \ --region=REGION \ --type=IAM_GROUP
Aggiungere automaticamente i membri di un gruppo
Quando aggiungi un gruppo IAM a un cluster, tutti i membri (utenti e service account) di questo gruppo ereditano le autorizzazioni per l'autenticazione. Non è necessario aggiungere i membri singolarmente. Dopo che un membro ha eseguito l'accesso per la prima volta, AlloyDB crea automaticamente un account per lui.
Concedere i privilegi di database a un gruppo IAM
Concedi i privilegi di database ai gruppi anziché ai singoli utenti.
Esegui l'istruzione GRANT dalla riga di comando psql:
GRANT SELECT ON TABLE_NAME TO "GROUP_NAME";
GROUP_NAME: l'indirizzo email del gruppo. Devi utilizzare le virgolette perché la stringa contiene caratteri speciali.TABLE_NAME: il nome della tabella.
Eliminare un gruppo IAM da un cluster
Per eliminare un gruppo IAM da un cluster AlloyDB, revoca le autorizzazioni del gruppo nella Google Cloud console ed elimina l' utente del gruppo corrispondente dal cluster AlloyDB.
Revoca le autorizzazioni IAM:
Nella Google Cloud console, vai alla pagina IAM.
Trova il gruppo IAM da cui vuoi rimuovere l'accesso.
Rimuovi il ruolo
roles/alloydb.databaseUsere tutti gli altri ruoli correlati ad AlloyDB che concedono l'accesso al cluster. Questa azione impedisce ai membri del gruppo di eseguire l'autenticazione.
Elimina l'utente del gruppo dal cluster AlloyDB:
Utilizza Google Cloud CLI per eliminare l'utente che rappresenta il gruppo IAM dal cluster AlloyDB. Il nome utente è in genere l'indirizzo email del gruppo IAM.
gcloud alloydb users delete GROUP_EMAIL_ADDRESS \ --cluster=CLUSTER_ID \ --region=REGION_IDSostituisci quanto segue:
GROUP_EMAIL_ADDRESS: l'indirizzo email completo del gruppo IAM, ad esempiomy-group@example.com.CLUSTER_ID: l'ID del cluster AlloyDB.REGION_ID: la regione in cui si trova il cluster AlloyDB, ad esempious-central1.
(Facoltativo) Elimina il gruppo da Cloud Identity:
Per eliminare i gruppi, devi disporre dei privilegi di amministratore appropriati (ad esempio Amministratore gruppi) nel tuo account Cloud Identity. In genere, i proprietari dei gruppi possono eliminare solo i gruppi di loro proprietà.
La propagazione delle modifiche alle autorizzazioni IAM e alle appartenenze ai gruppi può richiedere tempo, potenzialmente 15 minuti o più.
Assicurati di disporre dei privilegi di amministratore appropriati, ad esempio Amministratore gruppi nel tuo account Cloud Identity. I proprietari dei gruppi possono eliminare solo i gruppi di loro proprietà. Per ulteriori informazioni, consulta Ruoli amministrativi predefiniti.
Esegui il seguente comando gcloud CLI di Cloud Identity:
gcloud identity groups delete GROUP_EMAIL_ADDRESSQuando revochi l'autorizzazione di accesso
alloydb.databaseUserper un gruppo IAM in Cloud Identity, devi anche eliminare il gruppo da il cluster AlloyDB per assicurarti che l'accesso venga rimosso completamente.
Migrare gli utenti esistenti all'autenticazione del gruppo IAM
Gli utenti IAM individuali esistenti non utilizzano l'autenticazione di gruppo. Puoi eseguirne la migrazione seguendo questi passaggi:
- Aggiungi gli utenti a un gruppo IAM.
- Aggiungi il gruppo al cluster.
- Assegna al gruppo i ruoli richiesti.
- Assegna i privilegi di database al gruppo.
- Elimina l'utente individuale esistente dal cluster. Assicurati di trasferire la proprietà, se previsto.
Quando l'utente accede di nuovo, AlloyDB ricrea l'account come utente del gruppo.
Risolvere i problemi relativi all'autenticazione di gruppo
Utilizza le seguenti informazioni per risolvere i problemi di autenticazione di gruppo.
Un account esistente non eredita i privilegi
Se un account non eredita i privilegi da un gruppo:
Elenca gli utenti.
gcloud alpha alloydb users list --cluster=CLUSTER --region=REGIONSe il tipo è
ALLOYDB_IAM_USERoALLOYDB_IAM_SERVICE_ACCOUNT, rimuovi l'account. Non eredita i privilegi di gruppo.Per ricreare l'account con il tipo di gruppo corretto, accedi di nuovo all'istanza con l'utente o il account di servizio. Se accedi di nuovo all'istanza, l'account viene ricreato con il tipo di account corretto
ALLOYDB_IAM_GROUP_USERoALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.