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 forza 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 postura di sicurezza complessiva. Per informazioni dettagliate sulle best practice, consulta Best practice per la protezione di app e risorse utilizzando l'accesso sensibile al contesto.
Per proteggere le tue app e le tue Google Cloud risorse, puoi definire controlli di accesso granulari basati su una varietà e una combinazione 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 tutti i professionisti della sicurezza responsabili di Identity and Access Management (IAM) e della sicurezza di Google Cloud risorse e app. Questo documento presuppone che tu abbia già familiarità con Gestore contesto accesso, Google Cloud, e la gestione di 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 di requisiti più rigorosi 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 alcuni 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 questi requisiti. Un livello di accesso è come un elemento di configurazione riutilizzabile a cui puoi fare riferimento quando configuri l'accesso a app o risorse specifiche.
Google Cloud ti consente di utilizzare i livelli di accesso per diversi tipi di app o risorse, tra cui le seguenti, descritte in questo documento:
- Google Workspace e altre app e servizi al di fuori di Google Cloud
- La Google Cloud console e le Google Cloud API
- 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 in che modo 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:
- Console di amministrazione Google
- App Google Workspace come Gmail, Google Meet e Google Calendar
- Altre app Google come Gemini o Data Studio
- App SAML personalizzate
Per limitare l'accesso a Google Workspace e alle app e ai 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, procedi nel seguente modo:
Definisci l'ambito per cui vuoi applicare un livello di accesso. Un ambito è una combinazione di:
- Un servizio specifico o un'app SAML da proteggere.
- Un'unità organizzativa (UO) o un gruppo che contiene 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 le app mobile e altre app accedono all'API. Per informazioni dettagliate, vedi Comportamento delle app in base alle impostazioni del livello di accesso in "Assegnare i livelli di accesso sensibile al contesto alle app".
Potrebbe esistere più di un'assegnazione che si applica a un determinato utente e a una determinata app. Ad esempio, un utente potrebbe essere membro dell'UO Dipendenti e del team all-apac. La rispettiva UO e il rispettivo gruppo potrebbero avere livelli di accesso diversi assegnati. In questo caso, Cloud Identity e Google Workspace applicano solo una delle assegnazioni, quella con la priorità più alta:
- Le assegnazioni basate sui gruppi hanno una priorità maggiore rispetto a quelle basate sulle UO.
- All'interno dei gruppi, puoi personalizzare la loro priorità relativa.
- All'interno delle UO, l'UO principale 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 Google Cloud console e le Google Cloud API
Puoi configurare l'accesso sensibile al contesto alla Google Cloud console e alle Google Cloud API utilizzando le associazioni di accesso.
Google Cloud Le API utilizzano OAuth 2.0 per l'autenticazione. Per utilizzare un' Google Cloud API, 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. Le associazioni di accesso limitano la capacità degli utenti di acquisire questi token di accesso. Di conseguenza, le associazioni di accesso limitano l'accesso alla Google Cloud console e a tutte le app OAuth che utilizzano gli ambiti OAuth, ad esempio: Google Cloud
- 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 una sola associazione 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.
Un utente deve soddisfare solo uno dei livelli di accesso per accedere all'app OAuth.
Un'associazione di accesso si applica sia ai membri diretti sia a quelli indiretti del gruppo. Se un utente è membro di più gruppi, potrebbero essere applicate più associazioni di accesso, il che potrebbe comportare più livelli di accesso. In questo caso, i livelli di accesso vengono combinati anche 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 in entrata. 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 in entrata e queste regole in entrata 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 le associazioni di accesso con le regole in entrata del perimetro di servizio VPC. Se le associazioni di accesso e le regole in entrata specificano livelli di accesso diversi per un determinato utente e una determinata app, 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 le associazioni di accesso e le regole in entrata del perimetro di servizio VPC. Le associazioni di accesso per la Google Cloud console e le API Cloud si applicano automaticamente all'inoltro TCP di IAP.
Se il perimetro di servizio include il
iaptunnel.googleapis.com servizio
come servizio limitato, le regole in entrata
si applicano automaticamente all'inoltro TCP di IAP. Per informazioni dettagliate sulle best
practice, vedi
Includere l'inoltro TCP di IAP come servizio limitato.
Puoi anche configurare l'accesso sensibile al contesto utilizzando le condizioni IAM. Puoi utilizzare le condizioni IAM come alternativa alle associazioni di accesso e alle regole in entrata del perimetro di servizio VPC oppure utilizzarle tutte insieme.
Concedi a un utente o a un gruppo il ruolo Utente del tunnel con protezione IAP (
roles/iap.tunnelResourceAccessor). Poi, nell'associazione di ruolo, aggiungi un' espressione di condizione IAM che richieda 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_levels(Facoltativo) Puoi personalizzare la condizione IAM in modo da richiedere più livelli di accesso o includere altri controlli.
Un determinato utente e una determinata app possono essere soggetti a un'associazione di accesso, una regola in entrata e 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 degli accessi 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 di IAP:
- Le associazioni di accesso non si applicano alle app web configurate con IAP perché l'app OAuth utilizzata da IAP non utilizza alcun Google Cloud ambito OAuth.
- Le regole in entrata del perimetro di servizio VPC non si applicano alle app web che sono configurate con IAP perché IAP non è un' Google Cloud API e non può essere configurato 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, nell'associazione di ruolo, aggiungi un' espressione di condizione IAM che richieda 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_levels(Facoltativo) Puoi personalizzare la condizione IAM in modo da 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 degli accessi ai dati per IAP.
Passaggi successivi
- Best practice per la protezione di app e risorse utilizzando l'accesso sensibile al contesto.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Johannes Passing | Cloud Solutions Architect
Altro collaboratore: Ido Flatow | Cloud Solutions Architect