En este documento se explica cómo pueden crear los administradores niveles de acceso basados en atributos de dispositivos (niveles de acceso basados en dispositivos) mediante el Administrador de contextos de acceso.
Un nivel de acceso es un conjunto de atributos que se usa para permitir el acceso a los recursos en función de la información contextual de la solicitud. Como administrador, puedes crear niveles de acceso básicos o personalizados usando los atributos de dispositivo que recoge Endpoint Verification.
Antes de empezar
Para completar la tarea de esta página, debes tener uno de los siguientes roles:
- Administrador de contextos de acceso (
roles/accesscontextmanager.policyAdmin
) - Editor del Administrador de contextos de acceso (
roles/accesscontextmanager.policyEditor
)
- Administrador de contextos de acceso (
Cambiarse a la suscripción de pago de Chrome Enterprise Premium.
Crear un nivel de acceso
Consola
En la consola de Google Cloud , ve a la página Administrador de contextos de acceso.
Si se te solicita, selecciona tu organización.
En la página Administrador de contextos de acceso, haz clic en
Crear nivel de acceso.En el panel Nuevo nivel de acceso, crea un nivel de acceso básico o personalizado. Para obtener instrucciones, despliega la sección correspondiente.
Crear un nivel de acceso básico
En el cuadro Título del nivel de acceso, escribe un título para el nivel de acceso.
El título debe tener un máximo de 50 caracteres, empezar por una letra y solo puede contener números, letras, guiones bajos y espacios.
En la sección Crear condiciones en, selecciona Modo básico.
.- En la sección Condiciones, selecciona los atributos del dispositivo:
- Haz clic en Política de dispositivos.
Seleccione los atributos obligatorios.
Por ejemplo, si quieres que los administradores aprueben los dispositivos, selecciona Requerir que un administrador apruebe dispositivos móviles.
- Haz clic en Guardar.
El nivel de acceso que acabas de crear se muestra en la página Administrador de contextos de acceso.
Crear un nivel de acceso personalizado
En el cuadro Título del nivel de acceso, escribe un título para el nivel de acceso.
El título debe tener un máximo de 50 caracteres, empezar por una letra y solo puede contener números, letras, guiones bajos y espacios.
- En la sección Crear condiciones en, selecciona Modo avanzado.
En la sección Condiciones, introduce las expresiones de tu nivel de acceso personalizado. La condición debe resolverse en un único valor booleano. value.
Para consultar los atributos de dispositivo disponibles para tu expresión CEL, consulta los atributos de dispositivo que recoge la verificación de endpoints.
La siguiente expresión CEL permite el acceso solo desde los dispositivos cifrados:
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED
Para ver ejemplos y obtener más información sobre la compatibilidad con el lenguaje de expresión común (CEL) y los niveles de acceso personalizados, consulta la especificación de niveles de acceso personalizados.
- Haz clic en Guardar.
El nivel de acceso que acabas de crear se muestra en la página Administrador de contextos de acceso.
CLI de gcloud
Para crear niveles de acceso, usa el método gcloud access-context-manager levels create.
Crea un archivo
.yaml
.En el caso de un nivel de acceso básico, especifica los atributos de la política de dispositivos del nivel de acceso.
Por ejemplo, para limitar el acceso solo a los usuarios con almacenamiento de dispositivos cifrado, introduce lo siguiente en el archivo
.yaml
.- devicePolicy: allowedEncryptionStatuses - ENCRYPTED
En el caso de los niveles de acceso personalizados, especifica una expresión CEL con el formato de un solo par clave-valor:
expression: "CEL_EXPRESSION"
Ejemplo: Para limitar el acceso solo a los usuarios que tengan el almacenamiento del dispositivo cifrado y el estado del dispositivo aprobado, introduce lo siguiente en el archivo
.yaml
.expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && device.is_admin_approved_device"
Para ver una lista de los atributos de nivel de acceso de políticas de dispositivos y su formato YAML, consulta Atributos de políticas de dispositivos. Para ver un archivo YAML completo con todos los atributos posibles, consulta este archivo YAML de nivel de acceso de ejemplo.
Para ver los atributos de dispositivo disponibles para las especificaciones de nivel personalizado, consulta el artículo Atributos de dispositivos recogidos mediante la verificación de endpoints.
Crea el nivel de acceso.
Para un nivel de acceso básico, ejecuta el siguiente comando:
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title=TITLE \ --basic-level-spec=FILE_NAME.yaml\ --policy=POLICY_NAME
Para un nivel de acceso personalizado, ejecuta el siguiente comando:
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title=TITLE \ --custom-level-spec=FILE_NAME.yaml\ --policy=POLICY_NAME
Donde:
ACCESS_LEVEL_NAME es el nombre único del nivel de acceso. Debe tener el siguiente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
.LEVEL_ID es el nombre del nivel de acceso. El nombre debe tener 50 caracteres como máximo, empezar por una letra y solo puede incluir números, letras y guiones bajos.
TITLE es un título legible por humanos. Debe ser único en la política.
FILE_NAME es el nombre del archivo
.yaml
. En el caso de un nivel de acceso básico, contiene atributos de políticas de dispositivos. En el caso de un nivel de acceso personalizado, contiene una expresión CEL con el formato de un par clave-valor: `expression: "CEL_EXPRESSION"`.POLICY_NAME es el nombre de la política de acceso de tu organización.
Verá un resultado similar al siguiente:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crea un nivel de acceso con el método accessPolicies.accessLevels.create.
Crear un nivel de acceso básico
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- POLICY_ID: el ID de la política de acceso de tu organización.
- LEVEL_ID: un nombre para el nivel de acceso. El nombre debe tener 50 caracteres como máximo, empezar por una letra y solo puede incluir números, letras y guiones bajos.
- ACCESS_LEVEL_NAME: nombre único del nivel de acceso. Debe tener el siguiente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
. - TITLE: un título legible por humanos. Debe ser único en la política.
- DESCRIPTION: una descripción del nivel de acceso y su uso.
- CONDITION: una lista de requisitos para que se conceda el nivel de acceso.
Método HTTP y URL:
POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels
Cuerpo JSON de la solicitud:
For basic access levels: { "name": ACCESS_LEVEL_NAME, "title": TITLE, "description": DESCRIPTION, "basic": { "conditions": [ { CONDITION } ], } }, }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" ] } } ] } } }
Crear un nivel de acceso personalizado
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- POLICY_ID: el ID de la política de acceso de tu organización.
- LEVEL_ID: un nombre para el nivel de acceso. El nombre debe tener 50 caracteres como máximo, empezar por una letra y solo puede incluir números, letras y guiones bajos.
- ACCESS_LEVEL_NAME: nombre único del nivel de acceso. Debe tener el siguiente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
. - TITLE: un título legible por humanos. Debe ser único en la política.
- DESCRIPTION: una descripción del nivel de acceso y su uso.
- CEL_EXPRESSION: una expresión CEL que da como resultado un valor booleano.
Método HTTP y URL:
POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels
Cuerpo JSON de la solicitud:
{ "name": ACCESS_LEVEL_NAME, "title": TITLE, "description": DESCRIPTION, "custom": { "conditions": [ { "expr": { CEL_EXPRESSION } } ] } }, }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" } } } }
Para obtener más información sobre cómo crear niveles de acceso con varias condiciones y dependencias, consulta el artículo Crear un nivel de acceso básico.