Gestire l'autenticazione IAM

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:

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:

  1. Aggiorna le impostazioni IAM del progetto per concedere accesso al database AlloyDB all'account di servizio o all'utente IAM appropriato.

  2. 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

  1. Vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic sul nome del cluster a cui vuoi aggiungere un utente.

  3. Fai clic su Utenti.

  4. Fai clic su Aggiungi account utente.

  5. Seleziona Cloud IAM.

  6. 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 servizio my-service@my-project.iam.gserviceaccount.com, devi utilizzare il valore my-service@my-project.iam qui.

  7. 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 servizio my-service@my-project.iam.gserviceaccount.com, devi utilizzare il valore my-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

  1. Vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic sul nome del cluster da cui vuoi rimuovere l'utente.

  3. Fai clic su Utenti.

  4. Nella riga che rappresenta l'utente che vuoi rimuovere, fai clic su Apri azioni per questo utente.

  5. Seleziona Rimuovi.

  6. 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 servizio my-service@my-project.iam.gserviceaccount.com, devi utilizzare il valore my-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.

Passaggi successivi