Questa pagina descrive i concetti di base di Identity-Aware Proxy (IAP), un Google Cloud servizio globale.
IAP consente di definire un livello di autorizzazione centrale per le applicazioni accessibili tramite HTTPS, che ti permette di utilizzare un modello di controllo dell'accesso a livello di applicazione invece di dover fare affidamento su firewall a livello di rete.
Le policy IAP sono scalabili in tutta l'organizzazione. Puoi definire le policy di accesso a livello centrale e applicarle a tutte le applicazioni e risorse. Quando assegni un team dedicato alla creazione e all'applicazione delle policy, proteggi il progetto da definizioni o implementazioni errate delle policy in qualsiasi applicazione.
Quando utilizzare IAP
Utilizza IAP quando vuoi applicare policy di controllo dell'accesso per applicazioni e risorse. IAP funziona con intestazioni con firma o con l'API Users dell'ambiente standard App Engine per proteggere l'app. Con IAP, puoi configurare l'accesso alle applicazioni basato sui gruppi: una risorsa potrebbe essere accessibile ai dipendenti e non ai contractor o accessibile solo a un reparto specifico.
Come funziona IAP
Quando un'applicazione o una risorsa è protetta da IAP, può essere accessibile solo tramite il proxy da parte di entità, note anche come utenti, che hanno il ruolo IAM (Identity and Access Management) corretto. Un utente a cui concedi l'accesso a un'applicazione o risorsa tramite IAP è soggetto ai controlli di accesso granulari implementati dal prodotto in uso, senza bisogno di una VPN. Quando un utente tenta di accedere a una risorsa protetta da IAP, IAP esegue i controlli di autenticazione e autorizzazione.
Autenticazione
Le richieste alle tue Google Cloud risorse vengono inviate tramite Cloud Run, App Engine e Cloud Load Balancing (bilanciamento del carico HTTP(S) esterno e interno ). Il codice dell'infrastruttura di pubblicazione di questi prodotti verifica se IAP è abilitato per l'app o il servizio di backend. Se IAP è abilitato, le informazioni sulla risorsa protetta vengono inviate al server di autenticazione IAP. Queste informazioni includono il numero di progetto, l'URL della richiesta e le Google Cloud credenziali IAP nelle intestazioni o nei cookie della richiesta.
IAP verifica quindi se l'utente ha eseguito l'accesso. Se l'utente non ha eseguito l'accesso, il browser viene reindirizzato a uno dei seguenti metodi di accesso supportati da IAP:
Account Google: gli utenti con Account Google vengono reindirizzati tramite il flusso di accesso dell'Account Google per accedere Google Cloud. Google Cloud
Federazione delle identità per la forza lavoro: gli Google Cloud utenti di un provider di identità esterno vengono reindirizzati tramite l'accesso IdP per accedere Google Cloud.
Identity Platform: i clienti che utilizzano indirizzi email e password o accessi social, come Facebook, Apple e Google (Gmail), per accedere alla tua applicazione.
Dopo l'autenticazione, il browser dell'utente memorizza un token in un cookie del browser per gli accessi futuri.
Se le credenziali della richiesta sono valide, il server di autenticazione le utilizza per ottenere l'identità dell'utente (indirizzo email e ID utente). Il server di autenticazione utilizza quindi l'identità per controllare il ruolo IAM dell'utente e verificare se l'utente è autorizzato ad accedere alla risorsa.
Se utilizzi Compute Engine o Google Kubernetes Engine, gli utenti che possono accedere alla porta di pubblicazione dell'applicazione della macchina virtuale (VM) possono ignorare l'autenticazione IAP. Le regole firewall di Compute Engine e GKE non possono proteggere dall'accesso dal codice in esecuzione sulla stessa VM dell'applicazione protetta da IAP. Le regole firewall possono proteggere dall'accesso da un'altra VM, ma solo se configurate correttamente. Scopri di più su le tue responsabilità per garantire la sicurezza.
Se utilizzi Cloud Run, puoi abilitare IAP nei seguenti modi:
- Direttamente sui servizi Cloud Run. In questo modo, IAP può proteggere tutti i percorsi di ingresso a Cloud Run, inclusi l'URL assegnato automaticamente e qualsiasi URL del bilanciatore del carico configurato. Questa configurazione è utile quando hai un singolo servizio Cloud Run per cui abilitare IAP.
- Tramite un bilanciatore del carico con un backend Cloud Run. Questa configurazione è utile quando hai più servizi Cloud Run in regioni diverse dietro un singolo bilanciatore del carico globale. In questa configurazione, l'URL assegnato automaticamente non è protetto da IAP e potrebbe essere accessibile direttamente. Scopri di più sulle tue responsabilità per garantire la sicurezza.
Se un servizio Cloud Run si trova dietro un bilanciatore del carico, non abilitare IAP sia sul bilanciatore del carico sia sul servizio Cloud Run.
Scopri di più sulla federazione delle identità per la forza lavoro. Scopri come configurare IAP con la federazione delle identità per la forza lavoro. In alternativa, se vuoi sincronizzare le identità esterne con i rispettivi Account Google, puoi utilizzare Google Cloud Directory Sync per la sincronizzazione con l'IdP.
Autorizzazione
Dopo l'autenticazione, IAP applica la policy IAM pertinente per verificare se l'utente è autorizzato ad accedere alla risorsa richiesta. Se l'utente ha il ruolo Utente app web protetta da IAP nel Google Cloud progetto della console in cui esiste la risorsa, è autorizzato ad accedere all'applicazione. Per gestire l'elenco dei ruoli Utente app web protetta da IAP, utilizza il riquadro IAP nella Google Cloud console.
Quando attivi IAP per una risorsa, viene creato automaticamente un ID client e un client secret OAuth 2.0. Se elimini le credenziali OAuth 2.0 generate automaticamente, IAP non funzionerà correttamente. Puoi visualizzare e gestire le credenziali OAuth 2.0 in Google Cloud API e servizi della console.
Accesso sensibile al contesto
Come parte del passaggio di autorizzazione, puoi utilizzare l'accesso sensibile al contesto per fornire un accesso sicuro ai seguenti tipi di risorse:
Google Cloud Console e API
- Primo livello di difesa nella protezione dell'accesso all'infrastruttura Google Cloud.
- Accesso sensibile al contesto avanzato Google Cloud per gli utenti.
Macchine virtuali (VM)
- Consente l'accesso amministrativo SSH/RDP alle VM in Google Cloud e in altri cloud.
- Consente di implementare controlli sensibili al contesto robusti per limitare l'accesso solo agli amministratori designati.
Applicazioni web
- Fornisce l'autorizzazione e l'autenticazione per le applicazioni web ospitate in Google Cloud e in altri cloud.
- Fornisce un'autorizzazione continua per impedire l'accesso non autorizzato e la perdita di dati.
Responsabilità dell'Utente
IAP protegge l'autenticazione e l'autorizzazione di tutte le richieste a Cloud Run, App Engine, Cloud Load Balancing (HTTPS) e al bilanciamento del carico HTTP interno.
Per garantire la sicurezza, devi adottare le seguenti precauzioni:
- Se abiliti IAP su un bilanciatore del carico, verifica se le risorse di backend sono accessibili direttamente.
- Se la risorsa di backend è una VM, configura le regole firewall per proteggere dal traffico che non passa attraverso il bilanciatore del carico. IAP non protegge dalle attività all'interno di un progetto, ad esempio un'altra VM all'interno del progetto.
- Se la risorsa di backend è un servizio Cloud Run, puoi disattivare l'URL run.app per assicurarti che tutto l'ingresso avvenga tramite il bilanciatore del carico. Se scegli di lasciare attivo l'URL run.app, devi utilizzare i controlli di ingresso per bloccare il traffico proveniente dall'esterno della rete.
- Aggiorna l'app per utilizzare le intestazioni con firma o l'API Usersdell'ambiente standard App Engine.
Passaggi successivi
- Per iniziare a utilizzare IAP, completa una delle seguenti attività:
- Abilita IAP direttamente sui servizi Cloud Run o su un bilanciatore del carico con un backend Cloud Run.
- Completa la guida rapida di App Engine per gestire l'accesso con gli Account Google.
- Abilita IAP per Compute Engine.
- Abilita IAP per GKE.
- Abilita IAP per le app on-premise.
- Scopri di più:
- Eseguire l'autenticazione in Compute Engine
- Opzioni di autenticazione utente di App Engine
- Utilizzare OAuth 2.0 per accedere alle API di Google
- Google Cloud Guida all'autenticazione
- Configurazione di un bilanciatore del carico
- Configurazione di un bilanciatore del carico con Cloud Run (completamente gestito)
- Limitare l'ingresso per Cloud Run