In questa pagina vengono descritti i concetti di base di Identity-Aware Proxy (IAP), un servizio globale di Google Cloud.
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 dell'accesso a livello di applicazione invece di fare affidamento su firewall a livello di rete.
I criteri IAP sono scalabili in tutta l'organizzazione. Puoi definire i criteri di accesso a livello centrale e applicarli a tutte le applicazioni e le risorse. Quando assegni a un team dedicato la creazione e l'applicazione forzata dei criteri, proteggi il tuo progetto dalla definizione o dall'implementazione errata dei criteri in qualsiasi applicazione.
Quando utilizzare IAP
Utilizza IAP per applicare i criteri di controllo dell'accesso per applicazioni e risorse. IAP funziona con intestazioni firmate o con l'ambiente standard dell'API Users di App Engine per proteggere la tua app. Con IAP puoi configurare l'accesso alle applicazioni basato su gruppo: una risorsa potrebbe essere accessibile per i dipendenti e inaccessibile per i contrattisti o soltanto per un reparto specifico.
Come funziona IAP
Quando un'applicazione o risorsa è protetta da IAP, è possibile accedervi solo tramite il proxy tramite i principali, noti anche come utenti, che hanno il ruolo IAM (Identity and Access Management) corretto. Quando concedi a un utente 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 risorse Google Cloud provengono da App Engine, Cloud Load Balancing (bilanciamento del carico HTTP(S) esterno e interno). Il codice di infrastruttura per la pubblicazione di questi prodotti controlla se IAP è abilitato per il servizio di app o backend. Se IAP è abilitato, le informazioni sulla risorsa protetta vengono inviate al server di autenticazione IAP. Queste includono informazioni come il numero di progetto Google Cloud, l'URL della richiesta e le eventuali credenziali IAP nelle intestazioni o nei cookie delle richieste.
In seguito, IAP controlla le credenziali del browser dell'utente. In caso contrario, l'utente viene reindirizzato a un flusso di accesso all'Account Google OAuth 2.0 che memorizza un token in un cookie del browser per gli accessi futuri. Se devi creare Account Google per gli utenti esistenti, puoi utilizzare Google Cloud Directory Sync per la sincronizzazione con il server Active Directory o LDAP.
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 quindi utilizza l'identità per verificare 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 per la gestione delle applicazioni della macchina virtuale (VM) possono ignorare l'autenticazione IAP. Le regole firewall di Compute Engine e GKE non possono proteggere l'accesso dal codice in esecuzione sulla stessa VM dell'applicazione con protezione IAP. Le regole firewall possono proteggere dall'accesso da un'altra VM, ma solo se configurate correttamente. Scopri di più sulle responsabilità dell'Utente per garantire la sicurezza.
Se utilizzi Cloud Run, gli utenti che possono accedere all'URL assegnato automaticamente possono bypassare l'autenticazione IAP. I controlli Ingress possono limitare l'accesso per utilizzare il bilanciamento del carico, ma solo se configurato correttamente. Scopri di più sulle responsabilità dell'Utente per garantire la sicurezza.
Autorizzazione
Dopo l'autenticazione, IAP applica il criterio IAM pertinente per verificare se l'utente è autorizzato ad accedere alla risorsa richiesta. Se l'utente dispone del ruolo Utente applicazione web con protezione IAP nel progetto della console Google Cloud in cui la risorsa esiste, è autorizzato ad accedere all'applicazione. Per gestire l'elenco dei ruoli Utente applicazione web con protezione IAP, utilizza il riquadro IAP nella console Google Cloud.
Quando attivi IAP per una risorsa, viene creato automaticamente un ID client e un 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 nelle API e servizi Google Cloud Console.
Responsabilità dell'Utente
IAP protegge l'autenticazione e l'autorizzazione di tutte le richieste ad App Engine, Cloud Load Balancing (HTTPS) o il bilanciamento del carico HTTP interno. IAP non protegge dalle attività all'interno di un progetto, come un'altra VM all'interno del progetto.
I bilanciatori del carico HTTP interni richiedono un abbonamento BeyondCorp Enterprise.
Per garantire la sicurezza, è necessario adottare le seguenti precauzioni:
- Configura il firewall e il bilanciatore del carico per proteggerti dal traffico che non proviene dall'infrastruttura di gestione.
- In alternativa, se utilizzi Cloud Run, puoi limitare l'accesso utilizzando i controlli in entrata.
- Utilizza intestazioni firmate o l'API Users dell'ambiente standard di App Engine.
Passaggi successivi
- Inizia a utilizzare IAP completando una delle seguenti attività:
- Completa la guida rapida di App Engine per Gestire l'accesso con Account Google.
- Abilita IAP per Compute Engine.
- Abilitare IAP per GKE.
- Attiva IAP per le app on-premise.
- Scopri di più:
- Autenticazione a Compute Engine
- Opzioni di autenticazione degli utenti di App Engine
- Utilizzare OAuth 2.0 per accedere alle API di Google
- Guida all'autenticazione di Google Cloud
- Configurazione di un bilanciatore del carico
- Configurazione di un bilanciatore del carico con Cloud Run (completamente gestito)
- Limitazione del traffico in entrata per Cloud Run