Gestione dell'accesso alle risorse protette con IAP

Questa pagina descrive come gestire l'accesso individuale o di gruppo alle risorse protette da Identity-Aware Proxy (IAP) a livello di risorsa.

Panoramica

IAP consente di configurare criteri IAP per risorse singole e Cloud Run in un progetto Google Cloud. Più app all'interno di un progetto possono avere criteri di accesso diversi. Sono inclusi i progetti che hanno le app Compute Engine, Google Kubernetes Engine e App Engine. Per le app App Engine, alle singole versioni e ai singoli servizi è possibile applicare criteri di accesso diversi.

Per gestire l'accesso a livello di progetto o superiore, utilizza la pagina di amministrazione IAM. Gli elenchi di utenti che hanno accesso (le "entità") a livello di progetto si applicano a tutte le risorse protette con IAP nel progetto.

Prima di iniziare

Prima di iniziare, avrai bisogno di:

  • Una risorsa protetta da IAP a cui vuoi aggiungere l'accesso individuale o di gruppo.
  • Nomi degli utenti o dei gruppi a cui vuoi aggiungere l'accesso.

Attivazione e disattivazione di IAP

Per attivare e disattivare IAP, sono necessarie alcune autorizzazioni. La tabella seguente mostra l'autorizzazione necessaria per ogni tipo di app.

Tipo di app Autorizzazione richiesta
App Engine appengine.applications.update
Compute Engine, Google Kubernetes Engine o Cloud Run compute.backendServices.update

Queste autorizzazioni vengono concesse da ruoli come Editor progetto, Amministratore App Engine e Amministratore rete Compute. Sebbene questi ruoli consentano l'attivazione e la disattivazione di IAP, non dispongono delle autorizzazioni necessarie per modificare i criteri di accesso.

Inoltre, l'attivazione di IAP con la console Google Cloud potrebbe richiedere anche le autorizzazioni clientauthconfig.clients.create e clientauthconfig.clients.getWithSecret. Queste autorizzazioni sono concesse dal ruolo Editor di progetto.

Per scoprire di più sulla concessione dei ruoli, vedi Concessione, modifica e revoca dell'accesso.

Gestione dell'accesso nella console Google Cloud

Per controllare l'accesso a una risorsa protetta da IAP con la console Google Cloud, segui la procedura per aggiungere o rimuovere l'accesso.

Aggiungi accesso

  1. Vai alla pagina Identity-Aware Proxy.
    Vai alla pagina Identity-Aware Proxy

  2. Seleziona la risorsa che vuoi proteggere con IAP. Le seguenti selezioni di risorse proteggono un determinato gruppo di risorse:

    • Tutti i servizi web: tutte le risorse del progetto saranno protette. Tieni presente che non è la stessa cosa che concedere l'accesso a livello di progetto con la pagina di amministrazione IAM. Un utente a cui è stato concesso il ruolo Amministratore criteri IAP a livello di risorsa Tutti i servizi web disporrà solo delle autorizzazioni per i criteri IAP.

    • Servizi di backend: tutti i servizi di backend saranno protetti.

  3. Nel riquadro Informazioni a destra, aggiungi gli indirizzi email dei gruppi o delle persone a cui vuoi concedere il ruolo Identity and Access Management (IAM) per la risorsa.

  4. Applica i ruoli dei criteri di accesso all'entità selezionando uno dei seguenti ruoli nel menu a discesa Seleziona un ruolo:

    • Proprietario: concede lo stesso accesso di Amministratore criteri IAP. Utilizza il ruolo Amministratore criteri IAP. Questo ruolo consente solo di modificare i criteri e non concede l'accesso all'app.

    • Amministratore criteri IAP: concede i diritti di amministratore sui criteri IAP.

    • Utente applicazione web con protezione IAP: concede l'accesso all'app e ad altre risorse HTTPS che utilizzano IAP.

    • Revisore sicurezza: concede l'autorizzazione per visualizzare e controllare i criteri IAP.

  5. Quando hai finito di aggiungere gli indirizzi email e impostare i ruoli, fai clic su Aggiungi

Rimuovi accesso

  1. Vai alla pagina Identity-Aware Proxy.
    Vai alla pagina Identity-Aware Proxy
  2. Seleziona la risorsa protetta con IAP.
  3. Nel riquadro Informazioni a destra, seleziona la sezione corrispondente al ruolo da rimuovere da un'entità.
  4. Nella sezione espansa, fai clic su Rimuovi accanto al nome di ciascun utente o gruppo per cui vuoi rimuovere il ruolo.
  5. Nella finestra di dialogo Rimuovi entità visualizzata, fai clic su Rimuovi.

Gestione dell'accesso con l'API

IAM fornisce un insieme standard di metodi per creare e gestire i critericontrollo dell'accessoo sulle risorse Google Cloud.

Risorse e autorizzazioni

L'API IAP consente di applicare le autorizzazioni IAM alle singole risorse in un progetto con protezione IAP. Le autorizzazioni IAM concesse a un determinato livello si applicano a tutti i livelli sottostanti. Ad esempio, un'autorizzazione concessa a livello di progetto viene applicata a tutte le risorse Google Cloud nel progetto. L'accesso a livello di progetto e superiore è gestito nella pagina di amministrazione IAM, ma verrà visualizzato nella pagina Amministrazione di IAP.

Gli utenti devono disporre di determinate autorizzazioni per accedere a un'app protetta da IAP. Per concedere queste autorizzazioni, gli amministratori possono utilizzare un'API per aggiornare i criteri IAM. L'autorizzazione iap.webServiceVersions.accessViaIAP concede agli utenti l'accesso a un'app. Se utilizzi IAP per controllare l'accesso ai servizi amministrativi, come SSH e RDP, gli utenti dovranno disporre dell'autorizzazione iap.tunnelInstances.accessViaIAP.

Ogni risorsa IAP ha le proprie autorizzazioni getIamPolicy e setIamPolicy che consentono di gestire i criteri di accesso per la risorsa e i relativi figli.

Per chiamare l'API IAM, costruisci una chiamata con un percorso URL a una risorsa. Di seguito è riportata una chiamata di esempio che ottiene il criterio IAM per una versione del servizio dell'app App Engine.

https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/
appengine-APP_ID/services/SERVICE_ID/versions/VERSION_ID:getIamPolicy

La tabella seguente elenca i tipi di risorse supportati, nonché le autorizzazioni necessarie per chiamare l'API IAM.

Tipo di risorsa Autorizzazioni
Ogni app web con protezione IAP nel progetto
Uguale alla casella di controllo Tutti i servizi web nella pagina di amministrazione di IAP.

Percorso

https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web
iap.web.getIamPolicy

iap.web.setIamPolicy
Un servizio di backend
Equivale alla casella di controllo Servizio di backend nella pagina di amministrazione di IAP.

Percorsi
Ambito globale:

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute

Ambito a livello di regione:

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute-REGION_NAME
iap.webTypes.getIamPolicy

iap.webTypes.setIamPolicy
Un'app App Engine
Equivale alla casella di controllo App App Engine nella pagina di amministrazione di IAP.

Percorso

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID
iap.webTypes.getIamPolicy

iap.webTypes.setIamPolicy
Un servizio di backend Compute Engine
Il percorso del servizio di backend può specificare l'ID servizio di backend o il nome del servizio di backend.

Percorsi
Ambito globale:

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute/services/
BACKEND_SERVICE_ID or BACKEND_SERVICE_NAME

Ambito a livello di regione:

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute-REGION_NAME/
services/BACKEND_SERVICE_ID or BACKEND_SERVICE_NAME
iap.webServices.getIamPolicy

iap.webServices.setIamPolicy
Un servizio app App Engine

Percorso

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID/
services/APP_SERVICE_ID
iap.webServices.getIamPolicy

iap.webServices.setIamPolicy
Una versione del servizio App Engine
Compute Engine non supporta il controllo delle versioni.

Percorso

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID/
services/APP_SERVICE_ID/versions/VERSION_ID
iap.webServiceVersions.getIamPolicy

iap.webServiceVersions.setIamPolicy
Ogni istanza VM con protezione IAP nel progetto
Uguale alla casella di controllo Tutte le risorse tunnel nella pagina di amministrazione di IAP.

Percorso

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel
iap.tunnel.getIamPolicy

iap.tunnel.setIamPolicy
Una zona con almeno un'istanza VM
Equivale a una casella di controllo per il nome della zona nella pagina di amministrazione di IAP, ad esempio us-central1-c.

Percorso

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/zones/ZONE_NAME
iap.tunnelZones.getIamPolicy

iap.tunnelZones.setIamPolicy
Una singola istanza VM

Percorso

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/zones/ZONE_NAME
/instances/INSTANCE_ID or INSTANCE_NAME
iap.tunnelInstances.getIamPolicy

iap.tunnelInstances.setIamPolicy
Una regione con almeno un gruppo di destinazione, ad esempio us-central1

Percorso

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/locations/REGION_NAME
iap.tunnelLocations.getIamPolicy

iap.tunnelLocations.setIamPolicy
Un singolo gruppo di destinazione

Percorso

https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/locations/REGION_NAME
/destGroups/GROUP_NAME
iap.tunnelDestGroups.getIamPolicy

iap.tunnelDestGroups.setIamPolicy

Ruoli

La seguente tabella elenca i ruoli IAM IAP con un elenco corrispondente di tutte le autorizzazioni specifiche per IAP incluse in ciascun ruolo. Per ulteriori informazioni sui ruoli IAM, consulta Gestione di ruoli e autorizzazioni.

Ruolo Include le autorizzazioni Descrizione
Utente applicazione web con protezione IAP (roles/iap.httpsResourceAccessor) iap.webServiceVersions.accessViaIAP Concede l'accesso alle risorse App Engine e Compute Engine.
Utente del tunnel con protezione IAP (roles/iap.tunnelResourceAccessor) iap.tunnelInstances.accessViaIAP
iap.tunnelDestGroups.accessViaIAP
Concede l'accesso alle istanze VM protette da IAP.
Amministratore criteri IAP (roles/iap.admin) iap.web.getIamPolicy
iap.web.setIamPolicy
iap.webTypes.getIamPolicy
iap.webTypes.setIamPolicy
iap.webServices.getIamPolicy
iap.webServices.setIamPolicy
iap.webServiceVersions.getIamPolicy
iap.webServiceVersions.setIamPolicy
iap.tunnel.getIamPolicy
iap.tunnel.setIamPolicy
iap.tunnelZones.getIamPolicy
iap.tunnelZones.setIamPolicy
iap.tunnelInstances.getIamPolicy
iap.tunnelInstances.setIamPolicy
Concede diritti amministrativi IAP per gestire i criteri di accesso IAP delle risorse.

Accesso pubblico

Per concedere a tutti l'accesso a una risorsa, concedi un ruolo a una delle seguenti entità:

  • allAuthenticatedUsers: chiunque sia autenticato con un Account Google o un account di servizio.
  • allUsers: chiunque navighi su internet, inclusi gli utenti autenticati e non autenticati. L'intestazione firmata per la richiesta non avrà una rivendicazione sub o email.

Se viene concesso l'accesso pubblico, IAP non genererà Audit log di Cloud per la richiesta.

Al momento, alle associazioni che concedono l'accesso pubblico non è possibile associare una condizione. Ad esempio, un criterio che consente a chiunque di accedere a una risorsa se il percorso della richiesta inizia con /public/ non è valido.