In questa pagina viene spiegato come definire le policy di accesso sensibile al contesto utilizzando i livelli di accesso.
Un livello di accesso è un insieme di attributi assegnati alle richieste in base alla loro origine. Utilizzando informazioni come il tipo di dispositivo, l'indirizzo IP e l'identità dell'utente, puoi stabilire il livello di accesso da concedere. Ad esempio, potresti assegnare un livello High_Trust alle connessioni provenienti dalla tua rete aziendale e un livello Medium_Trust ai dispositivi esterni che eseguono sistemi operativi approvati.
Una policy di accesso è un container per tutte le risorse di Gestore contesto accesso, come i livelli di accesso e i perimetri di servizio.
Per saperne di più sui livelli di accesso e sulle policy di accesso, consulta la panoramica di Gestore contesto accesso.
Limitazioni
Quando definisci un livello di accesso, si applicano le seguenti limitazioni:
- Non puoi utilizzare un indirizzo IP come attributo per le connessioni Docker, né puoi utilizzare indirizzi IP privati quando ti connetti a cluster privati utilizzando
kubectlo un'istanza di Looker gestita. - Data Studio è sempre autorizzato ad accedere senza limitazioni alle APIGoogle Cloud , indipendentemente dalle policy di Gestore contesto accesso.
- Gli attributi del dispositivo non sono disponibili per le applicazioni client OAuth non Google.
- Non puoi utilizzare un livello di accesso con ambito.
Definisci la policy utilizzando i livelli di accesso
Console
Crea un livello di accesso di base:
Nella console Google Cloud , apri la pagina Gestore contesto accesso.
Se ti viene chiesto, seleziona un progetto.
Nella pagina Gestore contesto accesso, fai clic su Nuovo.
Nel riquadro Nuovo livello di accesso, procedi nel seguente modo:
Nel campo Titolo livello di accesso, inserisci un titolo per il livello di accesso. Il titolo deve contenere al massimo 50 caratteri, iniziare con una lettera e può contenere solo numeri, lettere, trattini bassi e spazi.
Nella sezione Condizioni, fai clic sul pulsante Aggiungi per il tipo di attributo che vuoi aggiungere, quindi fornisci i valori che vuoi applicare all'attributo.
Per un elenco completo degli attributi che puoi aggiungere, consulta Attributi dei livelli di accesso.
Ad esempio, se vuoi che il livello di accesso consideri la provenienza di una richiesta all'interno della tua rete, seleziona l'attributo Subnet IP.
Ripeti questo passaggio per aggiungere più attributi alla stessa condizione. Quando una condizione ha più attributi, tutti gli attributi devono essere soddisfatti dalla richiesta di accesso.
Una condizione del livello di accesso può includere un attributo di ogni tipo. Alcuni attributi includono opzioni aggiuntive, come l'attributo Policy per i dispositivi.
I livelli di accesso supportano condizioni basate sull'identità dell'utente. Tuttavia, per aggiungere identità a una condizione, devi creare o aggiornare il livello di accesso utilizzando gcloud CLI o l'API.
Utilizza l'opzione Se la condizione viene soddisfatta, restituisci per specificare se la condizione viene valutata come un'operazione AND che richiede che una richiesta soddisfi tutti gli attributi specificati (TRUE) o come un'operazione negata (NAND) che viene soddisfatta quando una richiesta non soddisfa almeno un attributo specificato (FALSE).
Ad esempio, se vuoi rifiutare le richieste provenienti da un determinato intervallo di indirizzi IP della tua rete, specifica l'intervallo di indirizzi IP utilizzando l'attributo Subnet IP e imposta la condizione su FALSE.
Facoltativamente, fai clic su Aggiungi un'altra condizione per aggiungere un'altra condizione al livello di accesso, quindi ripeti i due passaggi precedenti.
Ad esempio, se vuoi negare l'accesso a un sottoinsieme di indirizzi IP all'interno di un intervallo di indirizzi IP più ampio, crea una nuova condizione, specifica l'intervallo di indirizzi IP del sottoinsieme per l'attributo Subnet IP e imposta la condizione in modo che restituisca FALSE.
Ripeti questo passaggio per aggiungere più condizioni allo stesso livello di accesso.
Se hai creato più di una condizione, utilizza Combina condizione con per specificare se vuoi che il livello di accesso richieda una richiesta per soddisfare almeno una delle condizioni (OR) o tutte le condizioni (AND).
Fai clic su Salva.
gcloud
Se non disponi di una policy di accesso per la tua organizzazione, creane una prima di continuare.
Utilizza il comando gcloud access-context-manager levels create per creare un livello di accesso:
gcloud access-context-manager levels create LEVEL_NAME OPTIONS \ --policy=POLICY
Sostituisci quanto segue:
LEVEL_NAME: il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi. Il nome può contenere un massimo di 50 caratteri.
OPTIONS: le opzioni obbligatorie della tabella seguente.
Opzioni basic-level-specUn file YAML che specifica una o più condizioni per il livello di accesso.
titleUn titolo breve per il livello di accesso. Il titolo del livello di accesso viene visualizzato nella console Google Cloud .
combine-function(Facoltativo) Determina il modo in cui vengono combinate le condizioni.
Valori validi:
AND,ORdescription(Facoltativo) Una descrizione dettagliata del livello di accesso.
POLICY: l'ID della policy di accesso della tua organizzazione. Se hai impostato una policy predefinita, questo parametro è facoltativo.
Se vuoi, puoi includere uno qualsiasi dei flag gcloud.
File YAML basic-level-spec
Quando utilizzi gcloud CLI per creare un livello di accesso, devi fornire un file YAML per l'opzione basic-level-spec. Il file YAML definisce una o più condizioni per il livello di accesso. Le condizioni devono contenere almeno un attributo. Quando una condizione contiene più di un attributo, questi vengono combinati come un'operazione AND (tutti devono essere veri) o come un'operazione NAND (almeno uno deve essere falso), a seconda che l'attributo negate sia impostato su true nella condizione.
Per un elenco completo degli attributi che puoi includere nel file YAML, consulta Attributi dei livelli di accesso.
Per ulteriori informazioni sui livelli di accesso e su YAML, consulta l'esempio di YAML per un livello di accesso.
Comando di esempio
gcloud access-context-manager levels create Device_Trust \
--basic-level-spec=corpdevspec.yaml \
--combine-function=AND \
--description='Access level that conforms to corporate spec.' \
--title='Device_Trust Extended' \
--policy=1521580097614100
API
Se non disponi di una policy di accesso per la tua organizzazione, creane una prima di continuare.
Per creare un livello di accesso, chiama accessLevels.create.
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY è l'ID della policy di accesso della tua organizzazione.
Corpo della richiesta
Il corpo della richiesta deve includere una risorsa AccessLevel che specifica le condizioni che vuoi per il nuovo livello di accesso.
Ogni Condition ha uno o più attributi che vengono valutati come un'operazione AND (tutti devono essere true) o come un'operazione NAND (almeno uno deve essere false) a seconda che il campo negate sia impostato su true. La valutazione risultante determina se la condizione è soddisfatta o meno.
Corpo della risposta
In caso di esito positivo, il corpo della risposta alla chiamata contiene una risorsa Operation che fornisce dettagli sull'operazione POST.
Configurazioni delle policy comuni
Gli esempi seguenti illustrano alcuni dei modi pratici in cui la tua organizzazione potrebbe voler implementare i livelli di accesso. Gli esempi presuppongono che la tua organizzazione abbia già una policy di accesso.
Limitare l'accesso su una rete aziendale
Questo esempio descrive come creare una condizione del livello di accesso che consente l'accesso solo da un intervallo specificato di indirizzi IP (ad esempio, quelli all'interno di una rete aziendale).
Limitando l'intervallo di indirizzi IP a cui viene concesso l'accesso, puoi rendere più difficile l'esfiltrazione dei dati per un aggressore che si trova all'interno o all'esterno della tua organizzazione.
Per questo esempio, supponiamo che tu voglia creare un livello di accesso che consenta a un gruppo di revisori interni di accedere al servizio Cloud Logging per un progetto denominato sensitive-data. A tutti i dispositivi dei revisori vengono assegnati IP su una subnet compresa tra 203.0.113.0 e 203.0.113.127. Sai che a questa subnet non verranno assegnati altri dispositivi oltre a quelli utilizzati dai revisori.
Se vuoi utilizzare un intervallo di indirizzi IP privati (ad esempio 192.168.0.0/16 o 172.16.0.0/12), consulta Consenti l'accesso alle risorse protette da un indirizzo IP interno per ulteriori informazioni e un esempio di implementazione utilizzando i Controlli di servizio VPC.
Console
Nella console Google Cloud , apri Gestore contesto accesso.
Se ti viene chiesto, seleziona un progetto.
Nella parte superiore della pagina Gestore contesto accesso, fai clic su Nuovo.
Nel riquadro Nuovo livello di accesso, nella sezione Condizioni, fai clic su Aggiungi attributo e poi su Subnet IP.
Nella casella Subnet IP, seleziona IP pubblico o IP privato.
Se selezioni IP pubblico, inserisci uno o più intervalli IPv4 o IPv6 formattati come blocchi CIDR.
In questo esempio, per limitare l'accesso solo ai revisori, inserisci
203.0.113.0/25nella casella Subnet IP.Se selezioni IP privato, fai clic su Seleziona reti VPC. Puoi specificare le reti VPC utilizzando una delle tre opzioni disponibili nell'elenco Opzioni di importazione.
Opzione 1:
Seleziona Sfoglia le reti VPC nella tua organizzazione e seleziona le reti VPC.
Fai clic su Aggiungi reti VPC selezionate.
Fai clic su Seleziona subnet IP e seleziona le subnet.
Fai clic su Aggiungi subnet IP.
Option 2:
Seleziona Inserisci manualmente l'indirizzo di rete VPC e inserisci una o più reti VPC.
Fai clic su Aggiungi rete VPC.
Fai clic su Seleziona subnet IP e seleziona le subnet.
Fai clic su Aggiungi subnet IP.
Opzione 3:
Seleziona Carica file CSV (sovrascrive le reti esistenti).
Se utilizzi un file CSV per aggiungere reti e subnet VPC a un livello di accesso, Gestore contesto accesso sovrascrive le reti e le subnet VPC selezionate in precedenza.
Fai clic su Sfoglia e carica il file CSV. Nel file CSV, devi specificare le reti e le subnet VPC nel seguente formato:
VPC_NETWORK_NAME_1 | IP_RANGE_1 | IP_RANGE_2 | ... VPC_NETWORK_NAME_2 | . | . | ... . | . | . | ... . | . | . | ...
Fai clic su Importa reti.
Utilizzando il file CSV, Gestore contesto accesso compila i nomi delle reti VPC e le informazioni sulle subnet rispettivamente nelle caselle Indirizzo di rete VPC e Subnet IP.
Per informazioni sul nome della rete VPC e sul formato dell'indirizzo IP privato, consulta Utilizza l'indirizzo IP interno nei livelli di accesso.
Fai clic su Salva.
gcloud
Crea un file YAML per un livello di accesso che includa uno o più intervalli IPv4 o IPv6 formattati come blocchi CIDR.
In questo esempio, per limitare l'accesso solo ai revisori, devi inserire quanto segue nel file YAML:
- ipSubnetworks: - 203.0.113.0/25Se vuoi utilizzare un indirizzo IP privato, devi inserire le seguenti informazioni nel file YAML:
- vpcNetworkSources: - vpcSubnetwork: network: VPC_NETWORK_NAME vpcIpSubnetworks: - IP_RANGESostituisci VPC_NETWORK_NAME e IP_RANGE con i valori descritti nella sezione Utilizza l'indirizzo IP interno nei livelli di accesso.
Salva il file. In questo esempio, il file è denominato
CONDITIONS.yaml.Crea il livello di accesso.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Sostituisci quanto segue:
NAME: il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.
TITLE: un titolo leggibile. Deve essere univoco per la policy.
POLICY: l'ID della policy di accesso della tua organizzazione. Se hai impostato una policy predefinita, questo parametro è facoltativo.
Dovresti vedere un output simile al seguente:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crea un corpo della richiesta per creare una risorsa
AccessLevelche includa uno o più intervalli IPv4 o IPv6 formattati come blocchi CIDR.In questo esempio, per limitare l'accesso solo ai revisori, devi inserire quanto segue nel corpo della richiesta:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "ipSubnetworks": [ "203.0.113.0/25" ] } ] } }
Sostituisci quanto segue:
NAME: il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.
TITLE: un titolo leggibile. Deve essere univoco per la policy.
Se vuoi utilizzare un indirizzo IP privato, devi inserire le seguenti informazioni nel corpo della richiesta:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "vpcNetworkSources": [ { "vpcSubnetwork": { "network": VPC_NETWORK_NAME, "vpcIpSubnetworks": [ IP_RANGE ] } } ] } ] } }
Sostituisci VPC_NETWORK_NAME e IP_RANGE con i valori descritti nella sezione Utilizza l'indirizzo IP interno nei livelli di accesso.
Crea il livello di accesso chiamando
accessLevels.create.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY è l'ID della policy di accesso della tua organizzazione.
Dopo aver creato il livello di accesso, devi applicarlo utilizzando un'associazione di accesso per applicarlo.
Limita l'accesso in base agli attributi del dispositivo
Questo esempio descrive come creare un livello di accesso che concede l'accesso solo ai dispositivi che soddisfano un insieme di requisiti specificati, come una determinata versione del sistema operativo (OS).
Le informazioni sui dispositivi vengono fornite a Gestore contesto accesso utilizzando Verifica endpoint. Per determinare se concedere l'accesso, è possibile controllare i seguenti criteri:
- Il blocco schermo è abilitato
- La crittografia dello spazio di archiviazione è abilitata
- Il dispositivo esegue un tipo e una versione specifici del sistema operativo
Per questo esempio, supponiamo che la tua organizzazione utilizzi solo macchine su cui è installato ChromeOS o Windows. Per aggiungere un livello di sicurezza, vuoi creare un livello di accesso che impedisca l'accesso a chiunque utilizzi altri sistemi operativi. Inoltre, per gestire i rischi, vuoi assicurarti che solo determinate versioni dei sistemi operativi possano ottenere l'accesso.
Console
Nella console Google Cloud , apri la pagina Gestore contesto accesso.
Se ti viene chiesto, seleziona un progetto.
Nella parte superiore della pagina Gestore contesto accesso, fai clic su Nuovo.
Nel riquadro Nuovo livello di accesso, nella sezione Condizioni, fai clic su Aggiungi attributo e poi su Policy per i dispositivi.
Aggiungi gli attributi della policy per i dispositivi:
Fai clic su Aggiungi policy del sistema operativo e poi su Policy di ChromeOS.
Nella casella Versione minima, inserisci la versione minima di ChromeOS che vuoi consentire.
Ripeti i passaggi 1 e 2 per Policy del sistema operativo Windows.
Fai clic su Salva.
gcloud
Crea un file YAML per un livello di accesso che includa una policy per i dispositivi con vincoli del sistema operativo.
In questo esempio, per consentire solo i dispositivi con una versione minima accettabile di ChromeOS e Windows, devi inserire quanto segue nel file YAML:
- devicePolicy: osConstraints: - osType: DESKTOP_CHROME_OS minimumVersion: 11316.165.0 - osType: DESKTOP_WINDOWS minimumVersion: 10.0.1809Salva il file. In questo esempio, il file è denominato
CONDITIONS.yaml.Crea il livello di accesso.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Sostituisci quanto segue:
NAME: il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.
TITLE: un titolo leggibile. Deve essere univoco per la policy.
POLICY: l'ID della policy di accesso della tua organizzazione. Se hai impostato una policy predefinita, questo parametro è facoltativo.
Dovresti vedere un output simile al seguente:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crea un corpo della richiesta per creare una risorsa
AccessLevelche includa una policy per i dispositivi con vincoli del sistema operativo.In questo esempio, per consentire solo i dispositivi con una versione minima accettabile di ChromeOS e Windows, devi inserire quanto segue nel corpo della richiesta:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "devicePolicy": { "osConstraints": [ { "osType": "DESKTOP_CHROME_OS", "minimumVersion": "11316.165.0" }, { "osType": "DESKTOP_WINDOWS", "minimumVersion": "10.0.1809" } ] { } ] } }
Sostituisci quanto segue:
NAME: il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.
TITLE: un titolo leggibile. Deve essere univoco per la policy.
Crea il livello di accesso chiamando
accessLevels.create.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY è l'ID della policy di accesso della tua organizzazione.
Dopo aver creato il livello di accesso, devi applicarlo utilizzando un'associazione di accesso per applicarlo.
Limita l'accesso ai dispositivi aziendali attendibili con certificati validi
Puoi utilizzare l'accesso basato su certificato (CBA) per richiedere certificati X.509 verificati per l'accesso alle risorse Google Cloud. La credenziale aggiuntiva fornisce un segnale più forte dell'identità del dispositivo e aiuta a proteggere la tua organizzazione dal furto o dalla perdita accidentale delle credenziali, richiedendo la presenza sia delle credenziali utente sia del certificato del dispositivo originale prima di concedere l'accesso.
Prima di continuare, assicurati che l'estensione di Chrome Verifica endpoint e l'app helper Verifica endpoint siano implementate su tutti i dispositivi che richiedono l'accesso alle risorseGoogle Cloud . Questi diventano dispositivi attendibili a cui puoi concedere l'accesso. Per maggiori dettagli, consulta Esegui il deployment di Verifica degli endpoint da utilizzare con l'accesso basato su certificato.
Per creare una policy che richiede l'accesso basato su certificato, devi disporre di un livello di accesso con una specifica del livello di accesso personalizzata.
Console
Nella console Google Cloud , apri la pagina Gestore contesto accesso.
Se ti viene chiesto, seleziona un progetto.
Fai clic su Crea livello di accesso.
Nel riquadro Nuovo livello di accesso, seleziona Modalità avanzata. Per utilizzare questa modalità, devi disporre di una licenza Chrome Enterprise Premium.
Nella sezione Condizioni, inserisci la seguente espressione nella casella Espressione CEL.
certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICEFai clic su Salva.
gcloud
Crea un file YAML per un livello di accesso che includa l'applicazione dei certificati.
expression: "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE"Salva il file. In questo esempio, il file è denominato
CONDITIONS.yaml.Crea il livello di accesso.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Sostituisci quanto segue:
NAME: il nome univoco del livello di accesso. Il nome deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.
TITLE: un titolo leggibile. Deve essere univoco per la policy.
POLICY: l'ID della policy di accesso della tua organizzazione. Se hai impostato una policy predefinita, questo parametro è facoltativo.
Dovresti vedere un output simile al seguente:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1234] to complete...done. Created level NAME.
API
Crea un file del corpo della richiesta per un livello di accesso che includa una policy per i dispositivi con vincoli del sistema operativo.
{ "name": "require_certificate", "title": "Certificate-Based Access", "description": "An example certificate-based access level.", "custom": { "expr": { "expression": "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE", "title": "Require a valid certificate", "description": "Permits requests from a device with a valid mTLS certificate." } } }
Crea il livello di accesso chiamando
accessLevels.create.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY è l'ID della policy di accesso della tua organizzazione.
Dopo aver creato il livello di accesso, devi applicarlo utilizzando un'associazione di accesso per applicarlo.