Questo metodo integra l'autenticazione del database tramite i ruoli utente PostgreSQL standard, supportati da ogni cluster AlloyDB. Se attivi l'autenticazione basata su IAM sul tuo cluster, puoi utilizzare i ruoli utente IAM o PostgreSQL per autenticarti con il cluster.
Per impostazione predefinita, l'autenticazione basata su IAM non è abilitata per un'istanza AlloyDB. Puoi adottare misure per attivare gli accessi IAM e configurare utenti del database basati su IAM separati:
Devi attivare manualmente l'autenticazione IAM su ogni istanza a cui gli account di servizio o utente IAM devono connettersi.
Per ogni utente o account di servizio IAM che deve accedere come utente del database, devi completare i seguenti passaggi:
Utilizzando gli strumenti di amministrazione IAM, concedi all'utente o all'account di servizio i ruoli
alloydb.databaseUser
eserviceusage.serviceUsageConsumer
.Utilizzando Google Cloud CLI, crea un utente del database corrispondente all'account utente o di servizio sul tuo cluster AlloyDB.
Utilizzando un account amministratore del database come
postgres
, concedi i nuovi privilegi di accesso utente al database alle tabelle del database appropriate.
Puoi ripetere gli ultimi passaggi tutte le volte che è necessario, ogni volta che devi aggiungere altri utenti IAM al tuo cluster AlloyDB.
Il resto di questa pagina spiega questi passaggi in modo più dettagliato.
Attivare o disattivare l'autenticazione IAM
Per attivare l'autenticazione IAM su un'istanza, imposta il alloydb.iam_authentication
su on
.
Per disattivare l'autenticazione IAM in un'istanza, imposta nuovamente alloydb.iam_authentication
sul valore predefinito off
.
Per ulteriori informazioni sull'impostazione dei flag nelle istanze AlloyDB, consulta Configurare i flag del database di un'istanza.
Concedi a un utente IAM o a un account di servizio l'accesso a un'istanza
L'attivazione dell'accesso autenticato IAM a un nuovo utente del database è un processo in due passaggi:
Aggiorna le impostazioni IAM del progetto per concedere accesso al database AlloyDB all'account di servizio o all'utente IAM appropriato.
Crea un nuovo utente del database nel cluster, impostando il nome utente come indirizzo email dell'account di servizio o dell'utente IAM.
Puoi ripetere il secondo passaggio tutte le volte necessarie per concedere a un account definito da IAM l'accesso ad altri cluster all'interno del tuo progetto.
Aggiornare un account IAM con il ruolo appropriato
Puoi concedere agli utenti o agli account di servizio IAM la possibilità di autenticarsi con le istanze AlloyDB concedendo loro i seguenti ruoli IAM:
alloydb.databaseUser
serviceusage.serviceUsageConsumer
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 o un account di servizio IAM 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 Principale, inserisci l'entità principale IAM.
Per un account utente IAM, fornisci l'indirizzo email completo dell'account. Ad esempio,
kai@altostrat.com
.Per un account di servizio IAM, fornisci l'indirizzo dell'account di servizio senza il suffisso
.gserviceaccount.com
. Ad esempio, per specificare l'account di serviziomy-service@my-project.iam.gserviceaccount.com
, dovresti utilizzare il valoremy-service@my-project.iam
qui.Fai clic su Aggiungi.
gcloud
Per creare un utente di database PostgreSQL in base a un utente o un service account IAM, utilizza il comando gcloud alloydb users create
:
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED
Sostituisci quanto segue:
USERNAME
: un identificatore per l'utente IAM che vuoi aggiungere come nuovo utente di database.Per un account utente IAM, fornisci l'indirizzo email completo dell'account. Ad esempio,
kai@altostrat.com
.Per un account di servizio IAM, fornisci l'indirizzo dell'account di servizio senza il suffisso
.gserviceaccount.com
. Ad esempio, per specificare l'account di serviziomy-service@my-project.iam.gserviceaccount.com
, dovresti utilizzare il valoremy-service@my-project.iam
qui.CLUSTER
: l'ID del cluster in cui creare questo account utente del database.REGION
: l'ID della regione in cui si trova il cluster. Ad esempio,us-central1
.
Concedi le autorizzazioni di database appropriate agli utenti IAM
Quando un utente IAM viene aggiunto a un'istanza di database, per impostazione predefinita non vengono concessi privilegi a questo nuovo utente su nessun database.
Quando un account utente o di servizio si connette a un database, può eseguire query su qualsiasi oggetto del database a cui è stato concesso l'accesso a PUBBLICO.
Se ha bisogno di un accesso aggiuntivo, è possibile concedere altri privilegi utilizzando l'GRANT
istruzione PostgreSQL:
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Sostituisci quanto segue:
USERNAME
: l'indirizzo email dell'utente. Devi inserire virgolette doppie intorno all'indirizzo.TABLE_NAME
: il nome della tabella a cui vuoi assegnare l'accesso all'utente.
Rimuovere un utente o un account di servizio IAM 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 le azioni per questo utente.Seleziona Rimuovi.
Nella finestra di dialogo Rimuovere l'account utente?, fai clic su Rimuovi.
gcloud
Utilizza il comando gcloud alloydb users delete
:
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION
Sostituisci quanto segue:
USERNAME
: l'identificatore dell'utente IAM che vuoi rimuovere dal cluster.Per un account utente IAM, fornisci l'indirizzo email completo dell'account. Ad esempio,
kai@altostrat.com
.Per un account di servizio IAM, fornisci l'indirizzo dell'account di servizio senza il suffisso
.gserviceaccount.com
. Ad esempio, per specificare l'account di serviziomy-service@my-project.iam.gserviceaccount.com
, dovresti utilizzare il valoremy-service@my-project.iam
qui.CLUSTER
: l'ID del cluster da cui rimuovere l'utente.REGION
: l'ID della regione in cui si trova il cluster. Ad esempio,us-central1
.