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
Vai alla pagina Identity-Aware Proxy.
Vai alla pagina Identity-Aware ProxySeleziona 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.
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.
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.
Quando hai finito di aggiungere gli indirizzi email e impostare i ruoli, fai clic su Aggiungi
Rimuovi accesso
- Vai alla pagina Identity-Aware Proxy.
Vai alla pagina Identity-Aware Proxy - Seleziona la risorsa protetta con IAP.
- Nel riquadro Informazioni a destra, seleziona la sezione corrispondente al ruolo da rimuovere da un'entità.
- Nella sezione espansa, fai clic su Rimuovi accanto al nome di ciascun utente o gruppo per cui vuoi rimuovere il ruolo.
- 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/ Ambito a livello di regione: https://iap.googleapis.com/v1/projects/ |
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/ |
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/ Ambito a livello di regione: https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicy iap.webServices.setIamPolicy |
Un servizio app App Engine Percorso https://iap.googleapis.com/v1/projects/ |
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/ |
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/ |
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/ |
iap.tunnelZones.getIamPolicy iap.tunnelZones.setIamPolicy |
Una singola istanza VM Percorso https://iap.googleapis.com/v1/projects/ |
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/ |
iap.tunnelLocations.getIamPolicy iap.tunnelLocations.setIamPolicy |
Un singolo gruppo di destinazione Percorso https://iap.googleapis.com/v1/projects/ |
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 rivendicazionesub
oemail
.
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.