Questa pagina spiega come preparare l'istanza AlloyDB per PostgreSQL per consentire l'autenticazione del database tramite Identity and Access Management (IAM).
L'autenticazione IAM integra l'autenticazione del database tramite utenti PostgreSQL standard, supportati da ogni cluster AlloyDB. Se attivi l'autenticazione IAM nel cluster, puoi utilizzare i ruoli utente IAM o PostgreSQL per autenticarti con il cluster.
Per impostazione predefinita, l'autenticazione IAM non è attivata per un'istanza AlloyDB. Per attivare l'autenticazione IAM, completa i seguenti passaggi:
Abilita manualmente l'autenticazione IAM su ogni istanza a cui gli account di servizio o utente IAM devono connettersi.
Per ogni utente IAM o account di servizio che deve accedere come utente del database:
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 privilegi di accesso dell'utente del nuovo database alle tabella del database appropriate.
Puoi ripetere questi passaggi ogni volta che devi aggiungere altri utenti IAM al tuo cluster AlloyDB.
Attivare o disattivare l'autenticazione IAM
Per abilitare l'autenticazione IAM in un'istanza, imposta
il flag alloydb.iam_authentication
su quell'istanza 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 di database di un'istanza.
Concedi a un utente IAM o a un account di servizio l'accesso a un'istanza
L'attivazione dell'accesso IAM a un nuovo utente del database è una procedura 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 di database nel cluster, impostando il nome utente come indirizzo email dell'account utente o di servizio IAM.
Puoi ripetere il passaggio 2 per concedere a un account IAM l'accesso ad altri cluster all'interno del 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
: consente all'utente di connettersi alla tua 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 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
. Per example, per specificare l'account di serviziomy-service@my-project.iam.gserviceaccount.com
, devi utilizzare il valoremy-service@my-project.iam
qui.Fai clic su Aggiungi.
gcloud
Per creare un utente di database PostgreSQL in base a un account utente o servizio IAM, utilizza il comando gcloud alloydb users create
.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED
Sostituisci 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. Ad esempio,
kai@altostrat.com
.Per un account di servizio IAM, fornisci l'indirizzo dell'account di servizio senza il suffisso
.gserviceaccount.com
. Per example, per specificare l'account di serviziomy-service@my-project.iam.gserviceaccount.com
, devi 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
GRANT
l'istruzione PostgreSQL.
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Sostituisci le seguenti variabili:
USERNAME
: indirizzo email dell'utente. Devi includere virgolette doppie intorno all'indirizzo.TABLE_NAME
: il nome della tabella a cui vuoi concedere all'utente accesso.
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 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
: 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
. Per example, per specificare l'account di serviziomy-service@my-project.iam.gserviceaccount.com
, devi 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
.