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, che ogni cluster AlloyDB supporta. Se abiliti l'autenticazione IAM sul cluster, puoi utilizzare i ruoli utente IAM o PostgreSQL per l'autenticazione con il cluster.
Per impostazione predefinita, l'autenticazione IAM non è abilitata in un'istanza AlloyDB. Per attivare l'autenticazione IAM, completa i seguenti passaggi:
Attiva manualmente l'autenticazione IAM su ogni istanza a cui devono connettersi l'utente IAM o i service account.
Per ogni utente IAM o account di servizio che deve accedere come utente del database, completa i seguenti passaggi:
Utilizzando gli strumenti di amministrazione IAM, concedi all'utente o al service account i ruoli
alloydb.databaseUser
eserviceusage.serviceUsageConsumer
.Utilizzando Google Cloud CLI, crea un utente del database corrispondente a quell'utente oaccount di serviziot nel tuo cluster AlloyDB.
Utilizzando un account amministratore del database come
postgres
, concedi i privilegi di accesso al nuovo utente del database alle tabelle 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 su un'istanza, imposta
il flag alloydb.iam_authentication
su quell'istanza su on
.
Per disattivare l'autenticazione IAM su un'istanza, imposta
alloydb.iam_authentication
di nuovo sul valore predefinito, off
.
Per saperne di più sull'impostazione dei flag sulle istanze AlloyDB, consulta Configurare i flag di database di un'istanza.
Concedere 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 l'accesso al database AlloyDB all'utente o al account di servizio IAM appropriato.
Crea un nuovo utente del database sul cluster, impostando il nome utente come indirizzo email dell'utente IAM o del service account.
Puoi ripetere il passaggio 2 per concedere a un account IAM l'accesso ad altri cluster all'interno del tuo progetto.
Aggiornare un account IAM con il ruolo appropriato
Puoi consentire agli utenti IAM o ai service account di autenticarsi 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
.gserviceaccount.com
. Ad esempio, per specificare il account di serviziomy-service@my-project.iam.gserviceaccount.com
, utilizzeresti il valoremy-service@my-project.iam
qui.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 tutti i ruoli che vuoi rimuovere per l'utente.
Per saperne di più, 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 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 utente. Ad esempio,
kai@altostrat.com
.Per un account di servizio IAM, fornisci l'indirizzo del account di servizio senza il suffisso
.gserviceaccount.com
. Ad esempio, per specificare il account di serviziomy-service@my-project.iam.gserviceaccount.com
, utilizzeresti il valoremy-service@my-project.iam
qui.CLUSTER
: l'ID del cluster in cui creare questo account utente del database.REGION
: 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 gli vengono concessi privilegi su alcun database.
Quando un utente o un account di servizio si connette a un database, può eseguire query su qualsiasi oggetto di database a cui è stato concesso l'accesso a PUBLIC.
Se hanno bisogno di un accesso aggiuntivo, è possibile concedere ulteriori privilegi utilizzando l'istruzione
GRANT
PostgreSQL.
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Sostituisci le seguenti variabili:
USERNAME
: l'indirizzo email dell'utente. Devi includere virgolette doppie intorno all'indirizzo.TABLE_NAME
: il 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 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 utente. Ad esempio,
kai@altostrat.com
.Per un account di servizio IAM, fornisci l'indirizzo del account di servizio senza il suffisso
.gserviceaccount.com
. Ad esempio, per specificare il account di serviziomy-service@my-project.iam.gserviceaccount.com
, utilizzeresti il valoremy-service@my-project.iam
qui.CLUSTER
: ID del cluster da cui rimuovere questo utente.REGION
: ID della regione in cui si trova il cluster. Ad esempio,us-central1
.