In questa pagina viene descritto come gestire l'accesso individuale o di gruppo a Risorse protette da Identity-Aware Proxy (IAP) a livello di risorsa.
Panoramica
IAP consente di configurare criteri IAP per 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 di App Engine, i singoli servizi e versioni possono possono essere applicati criteri di accesso diversi.
Per gestire l'accesso a livello di progetto e di livello superiore, utilizza l'amministratore IAM . Elenchi di utenti che hanno accesso (le "entità") a livello di progetto si applicano a tutte le risorse protette da IAP del progetto.
Prima di iniziare
Prima di iniziare, ti serviranno:
- Una risorsa protetta da IAP a cui vuoi aggiungere singole o accesso di gruppo.
- Nomi degli utenti o dei gruppi per cui vuoi aggiungere l'accesso.
Attivazione e disattivazione di IAP
Per attivare e disattivare gli acquisti in-app, 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 quali Editor di progetto, Amministratore App Engine, e amministratore di rete Compute. Sebbene questi ruoli consentano IAP, non dispone delle autorizzazioni necessarie modificare i criteri di accesso.
Inoltre, l'attivazione di IAP con la console Google Cloud
potrebbe richiedere anche clientauthconfig.clients.create
e
Autorizzazioni clientauthconfig.clients.getWithSecret
. Queste autorizzazioni sono
concesso dal ruolo Editor di progetto.
Per scoprire di più sulla concessione dei ruoli, consulta l'articolo 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 gruppo prestabilito di risorse:
Tutti i servizi web: tutte le risorse del progetto verranno protette. Tieni presente che non equivale a 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 saranno 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 del criterio di accesso all'entità selezionando uno dei ruoli seguenti nel menu a discesa Seleziona un ruolo:
Proprietario: concede lo stesso accesso dell'Amministratore criteri IAP. 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 sicurezza: concede l'autorizzazione per visualizzare e controllare i criteri IAP.
Quando hai finito di aggiungere indirizzi email e di impostare 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 delle 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 ogni utente o gruppo per cui vuoi rimuovere il ruolo.
- Nella finestra di dialogo Rimuovi amministratore visualizzata, fai clic su Rimuovi.
Gestione dell'accesso con l'API
IAM offre un set standard di metodi creazione e gestione dei criteri di controllo dell'accesso sulle risorse Google Cloud.
Risorse e autorizzazioni
L'API IAP consente di applicare alle singole risorse in un progetto protetto da IAP. Le autorizzazioni IAM concesse a un determinato livello si applicano a tutti i livelli sottostante. Ad esempio, un'autorizzazione concessa a livello di progetto si applica a tutte le risorse Google Cloud del progetto. Accesso per le istanze a livello di progetto di cui sopra è gestita pagina di amministrazione IAM, ma verrà visualizzato in 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. La
L'autorizzazione iap.webServiceVersions.accessViaIAP
concede all'utente l'accesso a un'app. Se
stai utilizzando IAP per controllare l'accesso ai servizi amministrativi
ad esempio SSH e RDP, gli utenti dovranno usare iap.tunnelInstances.accessViaIAP
autorizzazione.
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 un risorsa. Di seguito è riportato un esempio di chiamata che recupera i dati IAM criterio per una versione del servizio dell'app di 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 con IAP nel progetto Corrisponde alla casella di controllo Tutti i servizi web nella pagina di amministrazione IAP. Percorso https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web |
iap.web.getIamPolicy iap.web.setIamPolicy |
Un servizio di backend Corrisponde alla casella di controllo Servizio di backend nella pagina di amministrazione IAP. 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 |
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 |
Ogni istanza VM protetta con IAP nel progetto Corrisponde alla casella di controllo Tutte le risorse del tunnel nella pagina di amministrazione 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 su IAM vedi 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 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 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. |
Gestione dell'accesso con Google Cloud CLI
Nega 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 negazione sono utili, vedi use-cases.
Puoi creare criteri di negazione e includere tutte le autorizzazioni IAP in
tali norme. Per l'elenco delle autorizzazioni IAP che puoi aggiungere
a un criterio di negazione, vedi Autorizzazioni supportate nei criteri di negazione.
e cerca iap.googleapis.com
. Sebbene sia possibile applicare criteri di negazione
autorizzazioni IAP, la loro efficacia è legata a un criterio di negazione
punto di collegamento.
Alcune autorizzazioni IAP sono efficaci solo per la loro risorsa specifica
e non sui relativi discendenti. Ad esempio,iap.organizations.getSettings
consente l'accesso a getSettings
a livello di organizzazione e non
discendenti dell'organizzazione. Ciò significa che gli amministratori
devono elencare esplicitamente tutti
autorizzazioni granulari pertinenti durante la creazione di criteri di negazione per negare l'accesso
punto di collegamento e i relativi discendenti.
Per un elenco completo di tali autorizzazioni granulari, consulta
Autorizzazioni supportate nei criteri di negazione.
Tutte le autorizzazioni in FQDN iap.googleapis.com
e i tipi di risorsa
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 negazione IAM per
negare l'accesso all'API getSettings
a un'entità in 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",
],
}
}
]
}
Invece di specificare tutte le autorizzazioni granulari, di seguito è riportato un esempio
il 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 un criterio di negazione IAM senza specificare tutte le autorizzazioni granulari.
Azione amministratore | Autorizzazione nel criterio di negazione |
---|---|
Nega autorizzazioni IAP specifiche su tutti i tipi di risorse IAP | *.updateSettings *.getSettings *.setIamPolicy *.getIamPolicy |
Nega 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 i file autenticati e per gli utenti 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, le associazioni che concedono l'accesso pubblico non possono avere una condizione
associate.
Ad esempio, una norma che consente a chiunque
accesso a una risorsa se il percorso di richiesta inizia con /public/
non è valido.