Questo documento descrive come utilizzare l'accesso sensibile al contesto per proteggere diversi tipi di app e risorse. L'accesso sensibile al contesto è un approccio alla sicurezza in cui controlli l'accesso degli utenti in base alla solidità dell'autenticazione, alla postura del dispositivo, alla posizione di rete, alla posizione geografica o ad altri attributi. Questo approccio va oltre l'utilizzo delle identità utente di base per l'accesso alla sicurezza e può aiutarti a implementare un modello di sicurezza zero trust per migliorare la tua postura di sicurezza complessiva. Per informazioni dettagliate sulle best practice, vedi Best practice per proteggere app e risorse utilizzando l'accesso sensibile al contesto.
Per proteggere le tue app e le tue risorse Google Cloud , puoi definire controlli dell'accesso granulari in base a una serie di fattori contestuali. Puoi utilizzare Gestore contesto accesso per definire le policy di accesso, che contengono livelli di accesso e parametri di servizio.
Questo documento è destinato a qualsiasi professionista della sicurezza responsabile di Identity and Access Management (IAM) e della sicurezza delle risorse e delle app Google Cloud . Questo documento presuppone che tu abbia già familiarità con Gestore contesto accesso,Google Cloude la gestione IAM.
Livelli di accesso
I livelli di accesso ti consentono di definire un insieme di requisiti che gli utenti e i loro dispositivi devono soddisfare per raggiungere un determinato livello di attendibilità.
Ad esempio, puoi utilizzare Gestore contesto accesso per configurare i seguenti livelli di accesso per la tua organizzazione:
- Base: un insieme di requisiti di base che consideri il livello minimo.
- Medio: un insieme più rigoroso di requisiti che ti aspetti che i dipendenti e i dispositivi aziendali soddisfino. Questo livello di accesso potrebbe escludere gli utenti della forza lavoro estesa e i dispositivi non aziendali.
- Alto: requisiti rigorosi che solo determinati dipendenti e dispositivi soddisfano.
Un livello di accesso di per sé non ha alcun effetto immediato sugli utenti o sui dispositivi. Il livello di accesso specifica i requisiti, ma non definisce gli utenti, le app o le risorse su cui devono essere applicati. Un livello di accesso è come un elemento di configurazione riutilizzabile a cui puoi fare riferimento quando configuri l'accesso a risorse o app specifiche.
Google Cloud ti consente di utilizzare i livelli di accesso per diversi tipi di app o risorse, tra cui i seguenti, descritti in questo documento:
- Google Workspace e altre app e servizi al di fuori di Google Cloud
- La console Google Cloud e le API Google Cloud
- Perimetri di servizio Virtual Private Cloud (VPC)
- Identity-Aware Proxy (IAP) per l'accesso SSH e RDP
- IAP per le app web
App e risorse
Le sezioni seguenti descrivono come applicare i livelli di accesso ai diversi tipi di app e risorse e come i processi differiscono tra i diversi tipi.
Google Workspace e altre app e servizi al di fuori di Google Cloud
Le app e i servizi al di fuori di Google Cloud che supportano l'accesso sensibile al contesto includono quanto segue:
- Console di amministrazione Google
- App Google Workspace come Gmail, Google Meet e Google Calendar
- Altre app Google come Gemini o Looker Studio
- App SAML personalizzate
Per limitare l'accesso a Google Workspace e ad app e servizi al di fuori di Google Cloud, configura l'accesso sensibile al contesto per ogni servizio o app singolarmente nella Console di amministrazione. Nella Console di amministrazione, esegui le seguenti operazioni:
Definisci l'ambito a cui vuoi applicare un livello di accesso. Un ambito è una combinazione di quanto segue:
- Un servizio o un'app SAML specifici da proteggere.
- Un'unità organizzativa (UO) o un gruppo contenente gli utenti pertinenti.
Seleziona il livello di accesso da applicare all'ambito selezionato.
Quando assegni un livello di accesso, puoi anche modificarne le impostazioni. Puoi specificare che il livello di accesso si applichi solo quando gli utenti accedono direttamente all'app web. In alternativa, puoi specificare che il livello si applichi anche quando app mobile e altre app accedono all'API. Per maggiori dettagli, vedi Comportamento delle app in base alle impostazioni del livello di accesso in "Assegnare i livelli di accesso sensibile al contesto alle app".
Potrebbe esserci più di un'assegnazione che si applica a un determinato utente e app. Ad esempio, un utente potrebbe essere membro dell'unità organizzativa Dipendenti e del team all-apac. L'unità organizzativa e il gruppo corrispondenti potrebbero avere livelli di accesso diversi. In questo caso, Cloud Identity e Google Workspace applicano solo una delle assegnazioni, ovvero quella con la priorità più alta:
- Le assegnazioni basate sui gruppi hanno una priorità più alta rispetto a quelle basate sulle unità organizzative.
- All'interno dei gruppi, puoi personalizzare la priorità relativa.
- All'interno delle OU, la OU radice ha la priorità relativa più bassa.
Cloud Identity e Google Workspace ti consentono di esaminare e analizzare gli eventi di accesso sensibile al contesto nel log di accesso sensibile al contesto.
La console Google Cloud e le API Google Cloud
Puoi configurare l'accesso sensibile al contesto alla console Google Cloud e alle APIGoogle Cloud utilizzando i binding di accesso.
Le APIGoogle Cloud utilizzano OAuth 2.0 per l'autenticazione. Per utilizzare un'API Google Cloud, gli utenti hanno bisogno di un token di accesso OAuth valido emesso da Google e il token deve essere emesso per uno degli Google Cloud ambiti OAuth. I binding di accesso limitano la capacità degli utenti di acquisire questi token di accesso. Di conseguenza, i binding di accesso limitano l'accesso alla console Google Cloud e a tutte le app OAuth che utilizzano Google Cloud ambiti OAuth, ad esempio:
- gcloud CLI
- Strumenti di terze parti come Terraform
- App OAuth che hai creato tu e che utilizzano un Google Cloud ambito OAuth
Un'associazione di accesso collega un gruppo a un livello di accesso. Ogni gruppo può avere un solo binding di accesso. Ogni associazione di accesso può definire le seguenti configurazioni:
- Un elenco
scopedAccessSettingsche assegna i livelli di accesso alle singole app OAuth. - Un livello di accesso predefinito.
Se un'associazione di accesso specifica sia un'impostazione di accesso con ambito sia un livello di accesso predefinito, i due livelli di accesso vengono combinati utilizzando la semantica OR.
Quindi, un utente deve soddisfare solo uno dei livelli di accesso per accedere all'app OAuth.
Un binding di accesso si applica sia ai membri diretti che a quelli indiretti del gruppo. Se
un utente è membro di più gruppi, potrebbero essere applicati più binding di accesso
che potrebbero comportare più livelli di accesso. In questo caso, i livelli di accesso vengono combinati utilizzando la semantica OR, il che significa che l'utente deve soddisfare solo uno dei livelli di accesso.
Perimetri di servizio VPC
Quando crei un perimetro di servizio VPC, specifichi un elenco di servizi limitati. È possibile accedere ai servizi limitati dall'interno del perimetro di servizio, ma per impostazione predefinita non è possibile accedervi dall'esterno del perimetro di servizio.
Per consentire l'accesso dall'esterno del perimetro di servizio, utilizza le regole di ingresso. Le regole in entrata ti consentono di specificare le condizioni in base alle quali vuoi consentire l'accesso esterno. Puoi utilizzare i livelli di accesso per consentire a una regola in entrata di applicare l'accesso sensibile al contesto.
Un perimetro di servizio VPC può avere più regole in entrata. Di conseguenza, a un determinato utente e a una determinata app potrebbero essere applicate più regole di ingresso e queste regole potrebbero richiedere livelli di accesso diversi. In questo caso, i livelli di accesso vengono
valutati utilizzando la semantica OR e l'utente deve soddisfare solo uno dei livelli di accesso.
Puoi combinare i binding di accesso con le regole in entrata del perimetro di servizio VPC. Se
le associazioni di accesso e le regole di ingresso specificano livelli di accesso diversi per un
utente e un'app particolari, i livelli vengono combinati utilizzando la semantica AND. In
questo caso, l'utente deve soddisfare entrambi i livelli di accesso.
Per esaminare e analizzare i tentativi di accesso alle risorse in un perimetro di servizio VPC, puoi utilizzare gli audit log dei Controlli di servizio VPC o lo strumento di analisi delle violazioni dei Controlli di servizio VPC.
Accesso SSH e RDP alle VM
Puoi configurare l'accesso sensibile al contesto per l'accesso SSH e RDP alle VM utilizzando l'inoltro TCP di IAP.
L'inoltro TCP di IAP supporta i binding di accesso e le regole in entrata del perimetro di servizio VPC. I tuoi binding di accesso per la console Google Cloud e le API Cloud vengono applicati automaticamente all'inoltro TCP di IAP.
Se il perimetro di servizio include il servizio
iaptunnel.googleapis.com come servizio con limitazioni, le regole di ingresso si applicano automaticamente all'inoltro TCP di IAP. Per maggiori dettagli sulle best
practice, consulta
Includi l'inoltro TCP IAP come servizio con limitazioni.
Puoi anche configurare l'accesso sensibile al contesto utilizzando le condizioni IAM. Puoi utilizzare le condizioni IAM come alternativa ai binding di accesso e alle regole in entrata del perimetro di servizio VPC oppure utilizzarli tutti insieme.
Concedi a un utente o a un gruppo il ruolo Utente del tunnel con protezione IAP (
roles/iap.tunnelResourceAccessor). Poi, nel binding del ruolo, aggiungi un'espressione di condizione IAM che richiede all'utente di soddisfare un determinato livello di accesso. Ad esempio, l'espressione potrebbe essere simile alla seguente:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levelsSe vuoi, puoi personalizzare la condizione IAM per richiedere più livelli di accesso o includere altri controlli.
Un determinato utente e una determinata app possono essere soggetti a un'associazione di accesso,
a una regola di ingresso e a una condizione IAM quando l'utente e l'app
accedono all'inoltro TCP di IAP. In questo scenario, i livelli di accesso vengono
combinati utilizzando la semantica AND e l'utente deve soddisfare tutti i livelli di accesso.
Per esaminare e analizzare i tentativi di accesso all'inoltro TCP di IAP, devi abilitare gli audit log dell'accesso ai dati per IAP.
App web
Puoi configurare l'accesso sensibile al contesto per le app web utilizzando IAP.
IAP per le app web è diverso dalla sua controparte di inoltro TCP IAP:
- I binding di accesso non si applicano alle app web configurate con IAP perché l'app OAuth utilizzata da IAP non utilizza ambiti OAuth. Google Cloud
- Le regole in entrata del perimetro di servizio VPC non si applicano alle app web configurate con IAP perché IAP non è un'APIGoogle Cloud e non può essere configurata come servizio limitato.
Per configurare l'accesso sensibile al contesto per le app web utilizzando IAP, devi utilizzare le condizioni IAM:
Concedi a un utente o a un gruppo il ruolo Utente applicazione web con protezione IAP (
roles/iap.httpsResourceAccessor). Poi, nel binding del ruolo, aggiungi un'espressione di condizione IAM che richiede all'utente di soddisfare un determinato livello di accesso. Ad esempio, l'espressione potrebbe essere simile alla seguente:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levelsSe vuoi, puoi personalizzare la condizione IAM per richiedere più livelli di accesso o includere altri controlli.
Per esaminare e analizzare i tentativi di accesso alle app web configurate con IAP, devi abilitare gli audit log di accesso ai dati per IAP.
Passaggi successivi
- Best practice per proteggere app e risorse utilizzando l'accesso sensibile al contesto.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora Cloud Architecture Center.
Collaboratori
Autore: Johannes Passing | Cloud Solutions Architect
Altro collaboratore: Ido Flatow | Cloud Solutions Architect