Dopo la creazione, un livello di accesso personalizzato può essere gestito allo stesso modo dei livelli di accesso di base.
Per informazioni dettagliate sulla creazione di espressioni Common Expression Language (CEL) per livelli di accesso personalizzati, consulta le specifiche del livello di accesso personalizzato.
Console
Per creare un livello di accesso personalizzato:
Apri la pagina Gestore contesto accesso nella Google Cloud console.
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 casella Titolo livello di accesso, inserisci un titolo per il livello di accesso. Il titolo deve avere una lunghezza massima di 50 caratteri, iniziare con una lettera e contenere solo numeri, lettere, trattini bassi e spazi.
Dopo Crea condizioni in, seleziona Modalità avanzata.
Nella sezione Condizioni, inserisci le espressioni per il livello di accesso personalizzato. La condizione deve restituire un singolo valore booleano.
Per esempi e ulteriori informazioni sul supporto di Common Expression Language (CEL) e sui livelli di accesso personalizzati, consulta le specifiche del livello di accesso personalizzato.
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 personalizzato utilizzando lo strumento a riga di comando gcloud, utilizza il
gcloud access-context-manager levels create comando.
gcloud access-context-manager levels create LEVEL_NAME \ --title=TITLE \ --custom-level-spec=FILE \ --description=DESCRIPTION \ --policy=POLICY_NAME
Dove:
LEVEL_NAME è un nome univoco per il 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.
TITLE è il titolo breve e leggibile per il livello di accesso.
FILE è un file .yaml che contiene l'espressione CEL formattata come una singola coppia chiave-valore:
expression: "CEL_EXPRESSION".Per esempi e ulteriori informazioni sul supporto di Common Expression Language (CEL) e sui livelli di accesso personalizzati, consulta le specifiche del livello di accesso personalizzato.
DESCRIPTION (facoltativo) è una descrizione leggibile del livello di accesso.
POLICY_NAME è il nome numerico della policy di accesso della tua organizzazione.
Facoltativamente, puoi includere uno qualsiasi dei
gcloud-wide flags.
File YAML custom-level-spec
Quando utilizzi lo strumento a riga di comando gcloud per creare un livello di accesso personalizzato, devi fornire un file .yaml per l'opzione custom-level-spec. Il file .yaml definisce un'espressione CEL che restituisce un singolo valore booleano. Il file .yaml
deve contenere una singola coppia chiave-valore formattata come
expression: "CEL_EXPRESSION". Il valore di expression deve essere una stringa.
Esempio di file YAML
expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && (origin.region_code in ['US'] || device.is_admin_approved_device)"
Esempio di comando
gcloud access-context-manager levels create Custom_Trust \
--custom-level-spec=customspec.yaml \
--description="Custom access level for corp." \
--title="Custom Trust Level" \
--policy=1521580097614100
REST
Prima di iniziare
- Se non esiste ancora, crea una policy di accesso per la tua organizzazione.
Per creare un livello di accesso personalizzato, utilizza il
accessPolicies.accessLevels.create
metodo.
Corpo della richiesta
Nel corpo della richiesta per la chiamata, includi un'istanza dell'oggetto AccessLevel.
{
"name": string,
"title": string,
"description": string,
"custom": {
"expr": {
"expression": string,
"title": string,
"description": string
}
}
}
Per il campo custom, crea un oggetto che includa le espressioni CEL per il livello di accesso personalizzato. L'espressione completa deve restituire un valore booleano. I campi title e description sono facoltativi.
Esempio
{
"name": "example_custom_level",
"title": "Example custom level",
"description": "An example custom access level.",
"custom": {
"expr": {
"expression": "device.is_corp_owned == true || (device.os_type != OsType.OS_UNSPECIFIED && device.is_admin_approved_device == true)",
"title": "Check for known devices",
"description": "Permits requests from corp-owned devices and admin-approved devices with a known OS."
}
}
}
RPC
Prima di iniziare
- Se non esiste ancora, crea una policy di accesso per la tua organizzazione.
Per creare un livello di accesso personalizzato, chiama
CreateAccessLevel.
Per il campo access_level, includi un'istanza di AccessLevel.
| Campi | |||||
|---|---|---|---|---|---|
name
|
|
||||
title
|
|
||||
description
|
|
||||
custom
|
|
||||
Esempi di livelli di accesso personalizzati
Questa sezione fornisce esempi di livelli di accesso personalizzati.
Limitare l'accesso in base al progetto di origine
Puoi limitare l'accesso alle risorse in modo da consentire solo le richieste provenienti da progetti Google Cloud specifici e dai relativi progetti tenant. La limitazione dell'accesso basata sul progetto è utile per proteggere le interazioni dei account di servizio.
La seguente espressione concede l'accesso se la richiesta proviene da projects/123456789:
originatesFromProjects(origin, ["projects/123456789"])