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.
I criteri IAP sono scalabili in tutta l'organizzazione. Puoi definire i criteri di accesso in modo centralizzato e applicarli a tutte le tue applicazioni e risorse. Quando assegni un team dedicato alla creazione e all'applicazione dei criteri, proteggi il tuo progetto da definizioni o implementazioni errate dei criteri in qualsiasi applicazione.
Quando utilizzare l'IAP
Utilizza IAP quando vuoi applicare i criteri di controllo dell'accesso per applicazioni e risorse. IAP funziona con le intestazioni con firma o con l'API Users dell'ambiente standard App Engine per proteggere la tua app. Con IAP, puoi configurare l'accesso alle applicazioni in base ai gruppi: una risorsa può essere accessibile ai dipendenti e inaccessibile ai fornitori o solo a un reparto specifico.
Come funzionano gli acquisti in-app
Quando un'applicazione o una risorsa è protetta da IAP, può essere acceduta tramite il proxy solo da entità, note anche come utenti, che dispongono del 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 il bilanciamento del carico Cloud (bilanciamento del carico HTTP(S) interno ed esterno). Il codice dell'infrastruttura di pubblicazione per questi prodotti controlla se l'IAP è abilitato per l'app o il servizio di backend. Se IAP è attivato, le informazioni sulla risorsa protetta vengono inviate al server di autenticazione IAP. Sono incluse informazioni come il Google Cloud numero del progetto, l'URL della richiesta e eventuali credenziali IAP nelle intestazioni o nei cookie delle richieste.
Successivamente, IAP controlla le credenziali del browser dell'utente. Se non esistono, 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 i tuoi utenti esistenti, puoi utilizzare Google Cloud Directory Sync per eseguire la sincronizzazione con il tuo 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 utilizza quindi l'identità per verificare il ruolo IAM dell'utente e se l'utente è autorizzato ad accedere alla risorsa.
Se utilizzi Compute Engine o Google Kubernetes Engine, gli utenti che possono accedere alla porta di servizio dell'applicazione della macchina virtuale (VM) possono bypassare l'autenticazione IAP. Le regole del firewall di Compute Engine e GKE non possono proteggere dall'accesso da 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 le responsabilità che ti incombono per garantire la sicurezza.
Se utilizzi Cloud Run, puoi abilitare IAP nei seguenti modi:
- Direttamente sui tuoi servizi Cloud Run. In questo modo, IAP può proteggere tutti i percorsi di ingresso a Cloud Run, incluso l'URL assegnato automaticamente e qualsiasi URL del bilanciatore del carico configurato. Questa configurazione è utile quando hai un singolo servizio Cloud Run per cui attivare l'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 unico bilanciatore del carico globale. In questa configurazione, l'URL assegnato automaticamente non è protetto dall'IAP e potrebbe essere direttamente accessibile. Scopri di più sulle tue responsabilità per garantire la sicurezza.
Se un servizio Cloud Run si trova dietro un bilanciatore del carico, non attiva IAP sia sul bilanciatore del carico sia sul servizio Cloud Run.
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 di app web protetta da IAP nel Google Cloud progetto console in cui esiste la risorsa, è autorizzato a accedere all'applicazione. Per gestire l'elenco dei ruoli Utente applicazione web con protezione IAP, utilizza il riquadro IAP nella Google Cloud console.
Quando attivi gli acquisti in-app per una risorsa, vengono creati automaticamente un ID client e un segreto OAuth 2.0. Se elimini le credenziali OAuth 2.0 generate automaticamente, l'IAP non funzionerà correttamente. Puoi visualizzare e gestire le credenziali OAuth 2.0 nella sezione Google Cloud API e servizi della console.
Accesso sensibile al contesto
Nell'ambito del passaggio di autorizzazione, puoi utilizzare l'accesso sensibile al contesto per fornire accesso sicuro ai seguenti tipi di risorse:
Google Cloud console e API
- Primo livello di difesa per proteggere l'accesso all'infrastruttura a Google Cloud.
- Accesso Google Cloud avanzato sensibile al contesto agli utenti.
Macchine virtuali (VM)
- Consente l'accesso amministrativo SSH/RDP alle VM in Google Cloud e in altri cloud.
- Ti consente di implementare controlli efficaci sensibili al contesto per limitare l'accesso solo agli amministratori designati.
Applicazioni web
- Fornisce autorizzazione e autenticazione per le applicazioni web ospitate inGoogle Cloud e in altri cloud.
- Fornisce un'autorizzazione continua per impedire l'accesso non autorizzato e la perdita di dati.
Le tue responsabilità
IAP garantisce 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 attivi l'IAP su un bilanciatore del carico, verifica se è possibile accedere direttamente alle risorse di backend.
- Se la risorsa di backend è una VM, configura le regole firewall per proteggerti dal traffico che non passa attraverso il bilanciatore del carico. L'IAP non protegge dalle attività all'interno di un progetto, come un'altra VM al suo interno.
- Se la risorsa di backend è un servizio Cloud Run, puoi disattivare l'URL run.app per assicurarti che tutto il traffico in entrata venga inviato tramite il bilanciatore del carico. Se scegli di lasciare attivo l'URL run.app, devi utilizzare i controlli di ingresso per bloccare il traffico dall'esterno della tua rete.
- Aggiorna l'app in modo che utilizzi le intestazioni con firma o utilizza l'API Users nell'ambiente standard di App Engine.
Passaggi successivi
- Per iniziare a utilizzare gli acquisti in-app, completa una delle seguenti attività:
- Attiva IAP direttamente sui tuoi 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.
- Attiva IAP per le app on-premise.
- Scopri di più:
- 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 il traffico in entrata per Cloud Run