Questo documento mostra come gli amministratori possono creare livelli di accesso in base agli attributi dei dispositivi (livelli di accesso basati sui dispositivi) utilizzando Gestore contesto accesso.
Un livello di accesso è un insieme di attributi utilizzati per consentire l'accesso alle risorse in base a informazioni contestuali relative alla richiesta. In qualità di amministratore, puoi creare livelli di accesso di base o livelli di accesso personalizzati utilizzando gli attributi dei dispositivi raccolti mediante la verifica degli endpoint.
Prima di iniziare
Per completare l'attività in questa pagina, devi avere uno dei seguenti ruoli:
- Amministratore Gestore contesto accesso (
roles/accesscontextmanager.policyAdmin
) - Editor Gestore contesto accesso (
roles/accesscontextmanager.policyEditor
)
- Amministratore Gestore contesto accesso (
Esegui l'upgrade all'abbonamento a pagamento di BeyondCorp Enterprise.
Crea un livello di accesso
Console
Nella console Google Cloud, vai alla pagina Gestore contesto accesso.
Se ti viene richiesto, seleziona la tua organizzazione.
Nella pagina Gestore contesto accesso, fai clic su
Crea livello di accesso.Nel riquadro Nuovo livello di accesso, crea un livello di accesso di base o un livello di accesso personalizzato. Per istruzioni, espandi la sezione obbligatoria.
Creare un livello di accesso di base
Nella casella 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 Crea condizioni in, seleziona Modalità di base
.- Nella sezione Condizioni, seleziona gli attributi del dispositivo:
- Fai clic su Device Policy.
Seleziona gli attributi obbligatori.
Ad esempio, se vuoi applicare in modo forzato l'approvazione dell'amministratore ai dispositivi, seleziona Richiedi l'approvazione dell'amministratore.
- Fai clic su Salva.
Il livello di accesso appena creato viene visualizzato nella pagina Gestore contesto accesso.
Creare un livello di accesso personalizzato
Nella casella 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 Crea condizioni in, seleziona Modalità avanzata.
Nella sezione Condizioni, inserisci le espressioni per il livello di accesso personalizzato. La condizione deve risolversi in un singolo valore booleano.
Per trovare gli attributi dei dispositivi disponibili per l'espressione CEL, consulta gli attributi del dispositivo raccolti da Endpoint Verification.
La seguente espressione CEL consente l'accesso solo dai dispositivi criptati:
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED
Per esempi e ulteriori informazioni sul supporto di Common Expression Language (CEL) e sui livelli di accesso personalizzati, consulta la specifica dei livelli di accesso personalizzati.
- Fai clic su Salva.
Il livello di accesso appena creato viene visualizzato nella pagina Gestore contesto accesso.
Interfaccia a riga di comando gcloud
Per creare livelli di accesso, utilizza il metodo gcloud access-context-manager livelli create.
Crea un file
.yaml
.Per un livello di accesso di base, specifica gli attributi dei criteri dei dispositivi per il livello di accesso.
Esempio: per limitare l'accesso solo agli utenti con spazio di archiviazione criptato del dispositivo, inserisci quanto segue nel file
.yaml
.- devicePolicy: allowedEncryptionStatuses - ENCRYPTED
Per un livello di accesso personalizzato, specifica un'espressione CEL formattata come singola coppia chiave-valore:
expression: "CEL_EXPRESSION"
Esempio: per limitare l'accesso solo agli utenti con spazio di archiviazione criptato del dispositivo e con lo stato del dispositivo approvato, inserisci quanto segue nel file
.yaml
.expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && device.is_admin_approved_device"
Per un elenco degli attributi del livello di accesso dei criteri relativi ai dispositivi e il relativo formato YAML, consulta Attributi dei criteri relativi ai dispositivi. Per un file YAML completo di tutti i possibili attributi, consulta questo file YAML di livello di accesso di esempio.
Per trovare gli attributi dei dispositivi disponibili per le specifiche di livello personalizzato, consulta Attributi del dispositivo raccolti tramite la verifica degli endpoint.
Crea il livello di accesso.
Per un livello di accesso di base, esegui questo comando:
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title=TITLE \ --basic-level-spec=FILE_NAME.yaml\ --policy=POLICY_NAME
Per un livello di accesso personalizzato, esegui questo comando:
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title=TITLE \ --custom-level-spec=FILE_NAME.yaml\ --policy=POLICY_NAME
Dove:
ACCESS_LEVEL_NAME è il nome univoco del livello di accesso. Deve avere il seguente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
.LEVEL_ID è un nome per il livello di accesso. Il nome deve contenere al massimo 50 caratteri, iniziare con una lettera e può contenere solo numeri, lettere e trattini bassi.
TITLE è un titolo leggibile. Deve essere univoco per il criterio.
FILE_NAME è il nome del file
.yaml
. Per un livello di accesso di base, contiene gli attributi dei criteri relativi ai dispositivi. Per un livello di accesso personalizzato, contiene un'espressione CEL formattata come singola coppia chiave-valore: `expression: "CEL_Espressione.POLICY_NAME è il nome del criterio di accesso della tua organizzazione.
Vedrai un output simile al seguente:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crea un livello di accesso utilizzando il metodo accessPolicies.accessLevels.create.
Creare un livello di accesso di base
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- POLICY_ID: l'ID del criterio di accesso della tua organizzazione.
- LEVEL_ID: un nome per il livello di accesso. Il nome deve contenere al massimo 50 caratteri, iniziare con una lettera e può contenere solo numeri, lettere e trattini bassi.
- ACCESS_LEVEL_NAME: nome univoco del livello di accesso. Deve avere il seguente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
. - TITLE: un titolo leggibile. Deve essere univoco per il criterio.
- DESCRIPTION: una descrizione del livello di accesso e del suo utilizzo.
- CONDITION: un elenco di requisiti per il livello di accesso da concedere.
Metodo HTTP e URL:
POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels
Corpo JSON richiesta:
For basic access levels: { "name": ACCESS_LEVEL_NAME, "title": TITLE, "description": DESCRIPTION, "basic": { "conditions": [ { CONDITION } ], } }, }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciare
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "operations/accessPolicies/84961948973/accessLevels/deviceEncrypted/create/1666896068847514", "metadata": { "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessContextManagerOperationMetadata" }, "done": true, "response": { "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessLevel", "name": "accessPolicies/84961948973/accessLevels/deviceEncrypted", "title": "accessPolicies/84961948973/accessLevels/deviceEncrypted", "basic": { "conditions": [ { "devicePolicy": { "allowedEncryptionStatuses": [ "ENCRYPTED" ] } } ] } } }
Creare un livello di accesso personalizzato
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- POLICY_ID: l'ID del criterio di accesso della tua organizzazione.
- LEVEL_ID: un nome per il livello di accesso. Il nome deve contenere al massimo 50 caratteri, iniziare con una lettera e può contenere solo numeri, lettere e trattini bassi.
- ACCESS_LEVEL_NAME: nome univoco del livello di accesso. Deve avere il seguente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
. - TITLE: un titolo leggibile. Deve essere univoco per il criterio.
- DESCRIPTION: una descrizione del livello di accesso e del suo utilizzo.
- CEL_EXPRESSION: un'espressione CEL che restituisce un valore booleano.
Metodo HTTP e URL:
POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels
Corpo JSON richiesta:
{ "name": ACCESS_LEVEL_NAME, "title": TITLE, "description": DESCRIPTION, "custom": { "conditions": [ { "expr": { CEL_EXPRESSION } } ] } }, }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciare
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "operations/accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelName/create/1666936427127701", "metadata": { "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessContextManagerOperationMetadata" }, "done": true, "response": { "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessLevel", "name": "accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelName", "title": "accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelTitle", "custom": { "expr": { "expression": "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED" } } } }
Per saperne di più sulla creazione di livelli di accesso con varie condizioni e dipendenze dei livelli di accesso, consulta Creare un livello di accesso di base.