Gestione dell'accesso alle risorse protette da 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 singole risorse e risorse Cloud Run in un progetto Google Cloud. Più app all'interno di un progetto possono avere criteri di accesso diversi. Sono inclusi i progetti con app Compute Engine, Google Kubernetes Engine e App Engine. Per le applicazioni App Engine, le singole versioni e i singoli servizi possono avere criteri di accesso diversi.

Per gestire il livello di progetto e gli accessi superiori, utilizza la pagina di amministrazione IAM. Gli elenchi di utenti che hanno accesso (i "principali") a livello di progetto si applicano a tutte le risorse protette da IAP nel progetto.

Prima di iniziare

Prima di iniziare ti serviranno:

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

Attivazione e disattivazione di IAP

Per attivare e disattivare IAP, sono necessarie determinate autorizzazioni. La tabella seguente mostra le autorizzazioni necessarie 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 di rete Compute. Anche se questi ruoli consentono di attivare e disattivare 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 Concedere, modificare e revocare l'accesso.

Gestione dell'accesso nella console Google Cloud

Per controllare l'accesso a una risorsa protetta da IAP con Google Cloud Console, 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 gruppo predefinito di risorse:

    • Tutti i servizi web: tutte le risorse del progetto saranno protette. Tieni presente che non equivale a concedere l'accesso a livello di progetto alla pagina Amministrazione IAM. Un utente a cui è stato concesso il ruolo Amministratore criteri IAP a livello di risorsa Tutti i servizi web avrà solo le autorizzazioni relative ai 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 un ruolo IAM (Identity and Access Management) 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 come Amministratore norme IAP. Usa il ruolo Amministratore criteri IAP. Questo ruolo consente di modificare solo 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 verificare i criteri IAP.

  5. Dopo aver aggiunto gli indirizzi email e impostato 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. A destra nel riquadro Informazioni, seleziona la sezione corrispondente al ruolo da rimuovere da un'entità.
  4. Nella sezione espansa, fai clic su Rimuovi accanto al nome di ogni utente o gruppo per cui vuoi rimuovere il ruolo.
  5. Nella finestra di dialogo Rimuovi entità che viene visualizzata, fai clic su Rimuovi.

Gestione dell'accesso con l'API

IAM mette a disposizione un insieme standard di metodi per creare e gestire i criteri di controllo dell'accesso sulle risorse Google Cloud.

Risorse e autorizzazioni

L'API IAP consente di applicare autorizzazioni IAM a singole risorse in un progetto protetto da 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 si applica a tutte le risorse Google Cloud nel progetto. L'accesso a livello di progetto e superiore viene gestito nella pagina Amministrazione IAM, ma verrà visualizzato nella pagina Amministrazione 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 all'utente l'accesso a un'app. Se utilizzi IAP per controllare l'accesso ai servizi amministrativi come SSH e RDP, gli utenti devono avere l'autorizzazione iap.tunnelInstances.accessViaIAP.

Ogni risorsa IAP ha la propria autorizzazione getIamPolicy e setIamPolicy che concede la possibilità di gestire i criteri di accesso per quella risorsa e per le sue figlie.

Per chiamare l'API IAM, crea una chiamata con un percorso dell'URL per una risorsa. Di seguito è riportato un esempio di chiamata che riceve 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 e le autorizzazioni necessarie per chiamare l'API IAM.

Tipo di risorsa Autorizzazioni
Tutte le app web protette da IAP nel progetto
Uguale alla casella di controllo Tutti i servizi web della pagina di amministrazione di IAP.

Percorso

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

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

Percorsi
Ambito globale:

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

Ambito regionale:

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

iap.webTypes.setIamPolicy
Un'app App Engine
È uguale 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 di 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/v1beta1/projects/
PROJECT_NUMBER/iap_web/compute/services/
BACKEND_SERVICE_ID or BACKEND_SERVICE_NAME

Ambito regionale:

https://iap.googleapis.com/v1beta1/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 di App Engine

Percorso

https://iap.googleapis.com/v1beta1/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/v1beta1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID/
services/APP_SERVICE_ID/versions/VERSION_ID
iap.webServiceVersions.getIamPolicy

iap.webServiceVersions.setIamPolicy
Ogni istanza VM protetta da IAP nel progetto
È uguale alla casella di controllo Tutte le risorse tunnel nella pagina di amministrazione di IAP.

Percorso

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

iap.tunnel.setIamPolicy
Una zona che ha almeno un'istanza VM
È uguale a una casella di controllo relativa al nome della zona nella pagina di amministrazione di IAP, ad esempio us-central1-c.

Percorso

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

iap.tunnelZones.setIamPolicy
Una singola istanza VM

Percorso

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

iap.tunnelInstances.setIamPolicy
Una regione che ha 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 tabella seguente elenca i ruoli IAM IAP con un elenco corrispondente di tutte le autorizzazioni specifiche IAP incluse in ogni ruolo. Per ulteriori informazioni sui ruoli IAM, consulta Gestione di ruoli e autorizzazioni.

Ruolo Include 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 i diritti amministrativi IAP per gestire i criteri di accesso IAP delle risorse.

Accesso pubblico

Per concedere a tutti gli accessi a una risorsa, concedi un ruolo a uno dei seguenti principi:

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

Se l'accesso pubblico viene concesso, IAP non genera Cloud Audit Logs per la richiesta.

Attualmente, alle associazioni che concedono l'accesso pubblico non può essere associata 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.