Questa pagina descrive in generale come creare livelli di accesso di base. Per creare livelli di accesso personalizzati e utilizzare la modalità avanzata nella console Google Cloud , vedi Creare un livello di accesso personalizzato.
Questa pagina include implementazioni più mirate dei livelli di accesso. Vedi i seguenti esempi:
- Limitare l'accesso su una rete aziendale
- Limitare l'accesso in base agli attributi del dispositivo
- Concedi l'accesso per utente o service account
Prima di iniziare
- Scopri di più sui livelli di accesso.
Creare un livello di accesso base
Console
Per creare un livello di accesso base:
Apri la pagina Gestore contesto accesso nella console Google Cloud .
Se richiesto, seleziona la tua organizzazione.
Nella parte superiore della pagina Gestore contesto accesso, fai clic su Nuovo.
Nel riquadro Nuovo livello di accesso:
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 da aggiungere, quindi fornisci i valori da applicare all'attributo.
Per un elenco completo degli attributi che puoi aggiungere, scopri di più sugli attributi del livello di accesso.
Ad esempio, se vuoi che il livello di accesso tenga conto della 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 include 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 Device Policy.
I livelli di accesso supportano le 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 deve richiedere che una richiesta soddisfi tutti gli attributi specificati (TRUE) o se la richiesta deve soddisfare qualsiasi attributo tranne quelli (FALSE).
Ad esempio, se vuoi negare 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 poi imposta la condizione su FALSE.
(Facoltativo) Fai clic su Aggiungi un'altra condizione per aggiungere un'altra condizione al livello di accesso e 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 che una richiesta soddisfi almeno una delle condizioni (OR) o tutte le condizioni (AND).
Fai clic su Salva.
gcloud
Prima di iniziare
- Se non esiste ancora, crea una policy di accesso per la tua organizzazione.
Per creare un livello di accesso utilizzando lo strumento a riga di comando gcloud
, utilizza il
comando gcloud access-context-manager levels create
.
gcloud access-context-manager levels create LEVEL_NAME OPTIONS \ --policy=POLICY
Dove:
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 sono le opzioni obbligatorie della tabella seguente.
Opzioni basic-level-spec
Un file YAML che specifica una o più condizioni per il livello di accesso.
title
Un titolo breve per il livello di accesso. Il titolo del livello di accesso viene visualizzato nella console Google Cloud .
combine-function
(Facoltativo) Determina in che modo vengono combinate le condizioni.
Valori validi:
AND
,OR
description
(Facoltativo) Una descrizione dettagliata del livello di accesso.
POLICY è l'ID del criterio di accesso della tua organizzazione. Se hai impostato un criterio predefinito, questo parametro è facoltativo.
Se vuoi, puoi includere uno qualsiasi dei flag a livello di gcloud.
file YAML basic-level-spec
Quando utilizzi lo strumento a riga di comando gcloud
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 operazione AND (tutti devono essere veri) o come operazione NAND (nessuno può essere vero), a seconda che l'attributo negate
sia incluso nella condizione.
Per un elenco completo degli attributi che puoi includere nel file YAML, leggi l'articolo sugli attributi del livello di accesso.
Per saperne di più 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
Prima di iniziare
- Se non esiste ancora, crea una policy di accesso per la tua organizzazione.
Per creare un livello di accesso, chiama il numero accessLevels.create
.
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
Dove:
- POLICY è l'ID delle norme 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 operazione AND (tutti devono essere veri) o come
operazione NAND (nessuno può essere vero) 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
.
Esempi di implementazioni
Gli esempi che seguono riguardano alcuni modi pratici in cui la tua organizzazione potrebbe voler implementare i livelli di accesso. Questi esempi presuppongono che la tua organizzazione disponga già di un criterio di accesso.
Limitare l'accesso su una rete aziendale
Questo esempio descrive come creare una condizione di livello di accesso che consenta 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 di dati per un utente malintenzionato interno o esterno alla 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 per gli auditor vengono assegnati IP su una subnet compresa tra 203.0.113.0 e 203.0.113.127. Sai che a quella 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 Consentire l'accesso alle risorse protette da un indirizzo IP interno per ulteriori
informazioni e un'implementazione di esempio utilizzando Controlli di servizio VPC.
Console
Apri la pagina Gestore contesto accesso nella console Google Cloud .
Se richiesto, seleziona la tua organizzazione.
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/25
nella 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.
Opzione 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 VPC e subnet a un livello di accesso, Gestore contesto accesso sovrascrive le reti VPC e le subnet selezionate in precedenza.
Fai clic su Sfoglia e carica il file CSV. Nel file CSV devi specificare le reti VPC e le subnet 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 nelle caselle Indirizzo di rete VPC e Subnet IP rispettivamente.
Per informazioni sul nome della rete VPC e sul formato dell'indirizzo IP privato, consulta Utilizzare 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/25
Se vuoi utilizzare un indirizzo IP privato, devi inserire le seguenti informazioni nel file YAML:
- vpcNetworkSources: - vpcSubnetwork: network: VPC_NETWORK_NAME vpcIpSubnetworks: - IP_RANGE
Sostituisci VPC_NETWORK_NAME e IP_RANGE con i valori descritti nella sezione Utilizzare l'indirizzo IP interno nei livelli di accesso.
Salva il file. In questo esempio, il file si chiama CONDITIONS.yaml.
Crea il livello di accesso.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Dove:
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 il criterio.
POLICY è l'ID delle norme di accesso della tua organizzazione. Se hai impostato un criterio predefinito, questo parametro è facoltativo.
Dovresti visualizzare 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
AccessLevel
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 corpo della richiesta:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "ipSubnetworks": [ "203.0.113.0/25" ] } ] } }
Dove:
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 il criterio.
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 Utilizzare 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
Dove:
- POLICY è l'ID delle norme di accesso della tua organizzazione.
Limitare l'accesso in base agli attributi del dispositivo
Questo esempio descrive come creare un livello di accesso che conceda l'accesso solo ai dispositivi che soddisfano un insieme specificato di requisiti, ad esempio 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 è attivato
- La crittografia dell'archiviazione è attivata
- Il dispositivo esegue un tipo e una versione specifici del sistema operativo
Per questo esempio, supponiamo che la tua organizzazione utilizzi solo macchine con ChromeOS o Windows installato. 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 il rischio, vuoi assicurarti che solo determinate versioni dei sistemi operativi possano ottenere l'accesso.
Console
Apri la pagina Gestore contesto accesso nella console Google Cloud .
Se richiesto, seleziona la tua organizzazione.
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 Device Policy.
Aggiungi gli attributi dei criteri relativi ai 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 Windows OS Policy.
Fai clic su Salva.
gcloud
Crea un file YAML per un livello di accesso che includa una policy del dispositivo 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.1809
Salva il file. In questo esempio, il file si chiama CONDITIONS.yaml.
Crea il livello di accesso.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Dove:
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 il criterio.
POLICY è l'ID delle norme di accesso della tua organizzazione. Se hai impostato un criterio predefinito, questo parametro è facoltativo.
Dovresti visualizzare 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
AccessLevel
che includa una policy del dispositivo 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" } ] { } ] } }
Dove:
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 il criterio.
Crea il livello di accesso chiamando
accessLevels.create
.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
Dove:
- POLICY è l'ID delle norme di accesso della tua organizzazione.
Concedere l'accesso per utente o account di servizio
La concessione dell'accesso in base all'identità è spesso utile in combinazione con i service account, ad esempio per consentire a una Cloud Function di accedere ai dati.
Questo esempio descrive come concedere l'accesso a utenti e account di servizio specifici, includendo i livelli di accesso esistenti per mostrare un esempio di livelli di accesso nidificati. In questo caso, gli utenti specificati vengono inclusi in questo livello di accesso indipendentemente dal fatto che soddisfino le condizioni specificate nei livelli di accesso esistenti. Questo nuovo livello di accesso potrebbe essere considerato un livello meno restrittivo rispetto ai livelli di accesso esistenti.
Console
Al momento, la Google Cloud console non supporta l'aggiunta di principal ai
livelli di accesso. Se vuoi aggiungere principal ai livelli di accesso, devi
utilizzare lo strumento a riga di comando gcloud
o l'API.
gcloud
Crea un file YAML che contenga una condizione che elenca i principali a cui vuoi fornire l'accesso.
In questo esempio, vuoi aggiungere l'amministratore di sistema (
sysadmin@example.com
) e un account di servizio (service@project.iam.gserviceaccount.com
).- members: - user:sysadmin@example.com - serviceAccount:service@project.iam.gserviceaccount.com
Aggiungi una condizione che elenca i livelli di accesso esistenti che vuoi includere in questo livello di accesso.
In questo esempio, supponiamo che i livelli di accesso si chiamino
Device_Trust
eIP_Trust
e che247332951433
sia il nome della tua policy di accesso.- members: - user:sysadmin@example.com - serviceAccount:service@project.iam.gserviceaccount.com - requiredAccessLevels: - accessPolicies/247332951433/accessLevels/Device_Trust - accessPolicies/247332951433/accessLevels/IP_Trust
Salva il file. In questo esempio, il file si chiama CONDITIONS.yaml.
Crea il livello di accesso utilizzando il comando
create
.gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --combine-function=OR \ --policy=POLICY
Dove:
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 il criterio.
POLICY è l'ID delle norme di accesso della tua organizzazione. Se hai impostato un criterio predefinito, questo parametro è facoltativo.
combine-function
è impostato suOR
. Il valore predefinito,AND
, richiede che tutte le condizioni siano soddisfatte prima di concedere un livello di accesso. Il valoreOR
consentirà alle entità di accedere anche se le altre condizioni non sono soddisfatte.
Dovresti visualizzare 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
AccessLevel
che includa una condizione che elenca le entità a cui vuoi fornire l'accesso.In questo esempio, vuoi aggiungere l'amministratore di sistema (
sysadmin@example.com
) e un account di servizio (service@project.iam.gserviceaccount.com
).{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] } ] } }
Dove:
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 il criterio.
Aggiungi una condizione che elenca i livelli di accesso esistenti che vuoi includere in questo livello di accesso.
In questo esempio, supponiamo che i livelli di accesso si chiamino
Device_Trust
eIP_Trust
e che247332951433
sia il nome della tua policy di accesso.{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] }, { "requiredAccessLevels": [ "accessPolicies/247332951433/accessLevels/Device_Trust", "accessPolicies/247332951433/accessLevels/IP_Trust" ] } ] } }
Imposta
combiningFunction
suOR
.Il valore predefinito per
combiningFunction
,AND
, richiede che tutte le condizioni siano soddisfatte prima che venga concesso un livello di accesso. Il valoreOR
concede l'accesso ai principal anche se non vengono soddisfatte altre condizioni, come l'indirizzo IP o quelle ereditate da altri livelli di accesso richiesti.{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] }, { "requiredAccessLevels": [ "accessPolicies/247332951433/accessLevels/Device_Trust", "accessPolicies/247332951433/accessLevels/IP_Trust" ] } ], "combiningFunction": "OR" } }
Crea il livello di accesso chiamando
accessLevels.create
.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
Dove:
- POLICY è l'ID delle norme di accesso della tua organizzazione.