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 ti consente di configurare i criteri IAP per le risorse individuali 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 con app Compute Engine, Google Kubernetes Engine e App Engine. Per le app App Engine, a singole versioni e servizi possono essere applicati criteri di accesso diversi.
Per gestire l'accesso a livello di progetto e 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, ti serviranno:
- Una risorsa protetta con IAP a cui vuoi aggiungere l'accesso individuale o di gruppo.
- Nomi di utenti o gruppi per cui vuoi aggiungere l'accesso.
Attivare e disattivare gli acquisti in-app
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 del progetto, Amministratore App Engine e Amministratore rete Compute. Sebbene questi ruoli consentano di attivare e disattivare l'IAP, non dispongono delle autorizzazioni necessarie per modificare le policy di accesso.
Inoltre, l'attivazione IAP con la console Google Cloud potrebbe richiedere anche le autorizzazioni clientauthconfig.clients.create
e clientauthconfig.clients.getWithSecret
. Queste autorizzazioni vengono concesse dal ruolo Editor del progetto.
Per scoprire di più sulla concessione dei ruoli, consulta Concedere, modificare e revocare l'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 gruppo di risorse impostato:
Tutti i servizi web: tutte le risorse del progetto verranno 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 dei criteri IAP a livello di risorsa Tutti i servizi web avrà autorizzazioni solo per i criteri IAP.
Servizi di backend: tutti i servizi di backend verranno protetti.
Nel riquadro delle informazioni a destra, aggiungi gli indirizzi email dei gruppi o delle persone a cui vuoi concedere un ruolo di Identity and Access Management (IAM) per la risorsa.
Applica i ruoli dei criteri di accesso all'entità selezionandoli tra i seguenti nel menu a discesa Seleziona un ruolo:
Proprietario: concede lo stesso accesso di IAP Policy Admin. Utilizza invece 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 della sicurezza: concede l'autorizzazione per visualizzare e controllare i criteri IAP.
Al termine dell'aggiunta degli indirizzi email e dell'impostazione dei 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 che vuoi rimuovere da un principale.
- Nella sezione espansa, fai clic su Rimuovi accanto al nome di ogni utente o gruppo per cui vuoi rimuovere il ruolo.
- Nella finestra di dialogo Rimuovi principale visualizzata, fai clic su Rimuovi.
Gestione dell'accesso con l'API
IAM fornisce un insieme standard di metodi per creare e gestire i criteri di controllo dell'accesso dell'accesso alle risorse Google Cloud.
Risorse e autorizzazioni
L'API IAP ti consente di applicare le autorizzazioni IAM alle singole risorse di un progetto protetto con IAP. Le autorizzazioni IAM concesse a un determinato livello si applicano a tutti i livelli inferiori. Ad esempio, un'autorizzazione concessa a livello di progetto si applica a tutte le risorse Google Cloud del progetto. L'accesso a livello di progetto e superiore viene gestito nella pagina di amministrazione IAM, ma viene visualizzato nella pagina di 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 avranno bisogno dell'autorizzazione iap.webServiceVersions.accessViaIAP
.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 le relative risorse figlio.
Per chiamare l'API IAM, crea una chiamata con un percorso URL a una risorsa. Di seguito è riportato un esempio di chiamata che recupera il criterio IAM per una versione del servizio 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 |
---|---|
Tutte le app web protette da IAP nel progetto Corrisponde 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 |
Tutti i servizi di backend del progetto Corrisponde alla casella di controllo Servizio di backend nella pagina di amministrazione di IAP. Percorsi Ambito globale: https://iap.googleapis.com/v1/projects/ Ambito regionale: https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicy iap.webTypes.setIamPolicy |
Ogni regola di forwarding nel progetto Autorizzazioni per tutte le regole di inoltro nel progetto. Percorsi Ambito globale: https://iap.googleapis.com/v1/projects/ Ambito regionale: https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicy iap.webTypes.setIamPolicy |
Un'app App Engine È la stessa 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 di Compute Engine Il percorso del servizio di backend può specificare l'ID del servizio di backend o il nome del servizio di backend. Percorsi Ambito globale: https://iap.googleapis.com/v1/projects/ Ambito regionale: https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicy iap.webServices.setIamPolicy |
Una regola di inoltro di Compute Engine Autorizzazioni per una regola di forwarding. Il percorso della regola di forwarding può specificare l'ID o il nome della regola di forwarding. Percorsi Ambito globale: https://iap.googleapis.com/v1/projects/ Ambito regionale: 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 |
An App Engine service version Compute Engine doesn't support versioning. Path https://iap.googleapis.com/v1/projects/ |
iap.webServiceVersions.getIamPolicy iap.webServiceVersions.setIamPolicy |
Tutte le istanze VM protette da IAP nel progetto Corrisponde alla casella di controllo Tutte le risorse del 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 È la stessa casella di controllo del nome di una 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 tabella seguente 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 Gestire i ruoli e le autorizzazioni.
Ruolo | Include le autorizzazioni | Descrizione |
---|---|---|
IAP-secured Web App User (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. |
IAP Policy Admin (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. |
Gestione dell'accesso con Google Cloud CLI
Rifiutare l'accesso
I criteri di rifiuto di Identity and Access Management (IAM) ti consentono di impostare sistemi di protezione per gli accessi alle risorse Google Cloud. Per un elenco di scenari in cui i criteri di rifiuto sono utili, consulta use-cases.
Puoi creare criteri di rifiuto e includere tutte le autorizzazioni IAP in questi criteri. Per l'elenco delle autorizzazioni IAP che puoi aggiungere
a un criterio di rifiuto, consulta Autorizzazioni supportate nei criteri di rifiuto
e cerca iap.googleapis.com
. Sebbene i criteri di negazione possano essere applicati a qualsiasi autorizzazione IAP, la loro efficacia è legata a un punto di attacco del criterio di negazione.
Alcune autorizzazioni IAP sono efficaci solo a livello di risorsa specifica e non sui relativi discendenti. Ad esempio,iap.organizations.getSettings
dà accesso a getSettings
a livello di organizzazione e non ai suoi discendenti. Ciò significa che gli amministratori devono elencare esplicitamente tutte le autorizzazioni granulari pertinenti quando creano i criteri di rifiuto per negare l'accesso in un punto di attacco e nei relativi discendenti.
Per un elenco completo di queste autorizzazioni granulari, consulta
Autorizzazioni supportate nei criteri di rifiuto.
Tutte le autorizzazioni sotto il FQDN iap.googleapis.com
e i tipi di risorse
iap.organizations
, iap.folders
, iap.projects
, iap.web
, iap.webTypes
,
iap.webServices
, iap.webServicesVersions
sono autorizzazioni granulari.
Di seguito è riportato un esempio di criterio di rifiuto IAM per negare l'accesso all'API getSettings
a un principale di un'organizzazione e ai relativi discendenti.
{
"name": "policies/cloudresourcemanager.googleapis.com%2Forganizations%2F253519172624/denypolicies/testpolicyid",
"uid": "06ccd2eb-d2a5-5dd1-a746-eaf4c6g3f816",
"kind": "DenyPolicy",
"displayName": "Only project admins can delete projects.",
"etag": "MTc1MTkzMjY0MjUyMTExODMxMDQ=",
"createTime": "2021-09-07T23:15:35.258319Z",
"updateTime": "2021-09-07T23:15:35.258319Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/public:all"
],
"deniedPermissions": [
"iap.googleapis.com/iap.organizations.getSettings",
"iap.googleapis.com/iap.folders.getSettings",
"iap.googleapis.com/iap.projects.getSettings",
"iap.googleapis.com/iap.web.getSettings",
"iap.googleapis.com/iap.webTypes.getSettings",
"iap.googleapis.com/iap.webServices.getSettings",
"iap.googleapis.com/iap.webServicesVersions.getSettings",
],
}
}
]
}
Anziché specificare tutte le autorizzazioni granulari, di seguito è riportato un esempio di
criterio di negazione IAM con una sola autorizzazione: *.getSettings
.
{
"name": "policies/cloudresourcemanager.googleapis.com%2Forganizations%2F253519172624/denypolicies/testpolicyid",
"uid": "06ccd2eb-d2a5-5dd1-a746-eaf4c6g3f816",
"kind": "DenyPolicy",
"displayName": "Only project admins can delete projects.",
"etag": "MTc1MTkzMjY0MjUyMTExODMxMDQ=",
"createTime": "2021-09-07T23:15:35.258319Z",
"updateTime": "2021-09-07T23:15:35.258319Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/public:all"
],
"deniedPermissions": [
"iap.googleapis.com/*.getSettings",
],
}
}
]
}
Di seguito sono riportati alcuni modi più semplici per creare una policy di rifiuto IAM senza dover specificare tutte le autorizzazioni granulari.
Azione amministratore | Autorizzazione nel criterio di negazione |
---|---|
Negare autorizzazioni IAP specifiche su tutti i tipi di risorse IAP | *.updateSettings *.getSettings *.setIamPolicy *.getIamPolicy |
Negare tutte le autorizzazioni IAP per un tipo di risorsa specifico | iap.organizations.* iap.folders.* iap.projects.* iap.web.* iap.webTypes.* iap.webServices.* iap.webServicesVersions.* |
Accesso pubblico
Per concedere l'accesso a una risorsa a tutti, assegna un ruolo a uno dei seguenti agenti:
allAuthenticatedUsers
: chiunque si autentichi con un Account Google o un account di servizio.allUsers
: chiunque si trovi su internet, inclusi gli utenti autenticati e non autenticati. L'intestazione firmata per la richiesta non avrà un claimsub
oemail
.
Se l'accesso pubblico viene concesso, IAP non genera log di Cloud Audit Logs per la richiesta.
Al momento, 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.