Gestione dell'accesso alle risorse protette da IAP

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

Panoramica

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

Per gestire il livello di progetto e l'accesso superiore, utilizza la pagina Amministratore di IAM. Gli elenchi degli utenti che hanno accesso (i "principali" a livello di progetto si applicano a tutte le risorse protette da IAP del progetto).

Prima di iniziare

Prima di iniziare devi avere:

  • 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 o Google Kubernetes Engine compute.backendServices.update

Queste autorizzazioni vengono concesse da ruoli quali editor di progetto, amministratore App Engine e amministratore di rete Compute. Anche se questi ruoli consentono di attivare e disattivare gli IAP, non dispongono delle autorizzazioni necessarie per modificare i criteri di accesso.

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

Per ulteriori informazioni sulla concessione dei ruoli, vedi Concedere, modificare e revocare l'accesso.

Gestione dell'accesso in Cloud Console

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

Aggiungi accesso

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

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

    • Tutti i servizi web: tutte le risorse del progetto saranno protette. Tieni presente che la procedura non equivale a concedere l'accesso a livello di progetto alla pagina Amministratore di IAM. A un utente che ha concesso il ruolo Amministratore criteri IAP a livello di risorsa Tutti i servizi web saranno concesse soltanto le autorizzazioni relative ai criteri IAP.

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

  3. Sul lato destro del riquadro Informazioni, aggiungi gli indirizzi email dei gruppi o delle persone a cui vuoi concedere un ruolo IAM (Gestione di identità e accessi) 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 criteri IAP. Utilizza invece 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 di app 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. Dopo aver aggiunto gli indirizzi email e impostato i ruoli, fai clic su Aggiungi

Rimuovi accesso

  1. Vai alla pagina Identity Identity Proxy.
    Vai alla pagina Identity-Aware Proxy
  2. Seleziona la risorsa protetta con IAP.
  3. Sul lato destro, riquadro Informazioni, seleziona la sezione corrispondente al ruolo che vuoi 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à visualizzata, fai clic su Rimuovi.

Gestione dell'accesso con l'API

IAM fornisce un set 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 alle singole risorse in un progetto protetto con 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 Amministratore di IAM, ma verrà visualizzato nella pagina di amministrazione degli IAP.

Gli utenti devono disporre di determinate autorizzazioni per accedere a un'app protetta da IAP e utilizzare metodi che aggiornano i criteri IAM. L'autorizzazione iap.webServiceVersions.accessViaIAP concede l'accesso all'app. Se utilizzi IAP per controllare l'accesso ai servizi amministrativi come SSH e RDP, gli utenti devono disporre dell'autorizzazione iap.tunnelInstances.accessViaIAP.

Ogni risorsa IAP dispone delle proprie autorizzazioni getIamPolicy e setIamPolicy, che consentono di gestire i criteri di accesso per quella risorsa e per le relative risorse secondarie.

Per chiamare l'API IAM, crea una chiamata con un percorso URL a 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/v1beta1/projects/PROJECT_NUMBER/iap_web/
appengine-APP_ID/services/SERVICE_ID/versions/VERSION_ID:getIamPolicy
Tipo di risorsa Descrizione Percorso Autorizzazioni
iap.web Ogni app web protetta da IAP nel progetto. Equivale alla casella di controllo Tutti i servizi web nella pagina di amministrazione degli IAP.

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

iap.web.setIamPolicy
iap.webTypes Un servizio di backend o un'app di App Engine. Coincide con le caselle di controllo Servizio di backend e App di App Engine nella pagina di amministrazione di IAP. Servizio di backend

Ambito globale:

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

Ambito per area geografica:

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


App di App Engine


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

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

Ambito globale:

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

Ambito per area geografica:

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


App di App Engine


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

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

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
iap.tunnel Ogni istanza protetta da IAP nel progetto. Equivale alla casella di controllo Tutte le risorse del tunnel nella pagina di amministrazione di IAP.

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

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

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

iap.tunnelZones.setIamPolicy
iap.tunnelInstances Una singola istanza.

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
iap.tunnelLocations Una regione che ha almeno un gruppo di destinazione, ad esempio us-central1.

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

iap.tunnelLocations.setIamPolicy
iap.tunnelDestGroups Un singolo gruppo di destinazione.

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 riportata di seguito elenca i ruoli IAM IAP con un elenco corrispondente di tutte le autorizzazioni specifiche IAP incluse in ciascun ruolo. Per ulteriori informazioni sui ruoli IAM, consulta Gestione di ruoli e autorizzazioni.

Ruolo Include autorizzazioni Descrizione
Utente app web con protezione IAP (roles/iap.httpsResourceAccessor) iap.webServiceVersions.accessViaIAP Concede l'accesso alle risorse di App Engine e Compute Engine.
Utente del tunnel con protezione IAP (roles/iap.tunnelResourceAccessor) iap.tunnelInstances.accessViaIAP
iap.tunnelDestGroups.accessViaIAP
Concede l'accesso alle risorse del tunnel che utilizzano 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
Concede i diritti di amministratore IAP per la gestione dei criteri di accesso degli IAP.

Accesso pubblico

Per concedere l'accesso a tutti a una risorsa, aggiungi una delle seguenti entità al suo elenco di accesso:

  • allAuthenticatedUsers: chiunque sia autenticato con un Account Google o un account di servizio.
  • allUsers: chiunque sia presente su Internet, inclusi gli utenti autenticati e non autenticati. L'intestazione firmata per la richiesta non ha vinto sub o email rivendica.

Se viene consentito l'accesso pubblico, IAP non genererà log di controllo Cloud 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.