En este documento, se muestra cómo los administradores pueden crear niveles de acceso basados en atributos de dispositivos (niveles de acceso basados en dispositivos) con Access Context Manager.
Un nivel de acceso es un conjunto de atributos que se usa para permitir el acceso a los recursos según la información contextual de la solicitud. Como administrador, puedes crear niveles de acceso básicos o personalizados con los atributos del dispositivo que recopila Endpoint Verification.
Antes de comenzar
Para completar la tarea de esta página, debes tener uno de los siguientes roles:
-
Administrador de Access Context Manager (
roles/accesscontextmanager.policyAdmin
) - Editor de Access Context Manager (
roles/accesscontextmanager.policyEditor
)
-
Administrador de Access Context Manager (
Actualiza a la suscripción pagada de Chrome Enterprise Premium.
Crea un nivel de acceso
Console
En la consola de Google Cloud, ve a la página Access Context Manager.
Si se te solicita, selecciona tu organización.
En la página Access Context Manager, haz clic en
Crear nivel de acceso.En el panel Nuevo nivel de acceso, crea un nivel de acceso básico o uno personalizado. Para obtener instrucciones, expande la sección requerida.
Crea un nivel de acceso básico
En el cuadro de texto Título del nivel de acceso, ingresa un título para el nivel de acceso.
El título debe tener un máximo de 50 caracteres y comenzar con 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 dispositivo.
Selecciona los atributos obligatorios.
Por ejemplo, si deseas aplicar la aprobación del administrador en los dispositivos, selecciona Requerir aprobación del administrador.
- Haz clic en Guardar.
El nivel de acceso creado recientemente se muestra en la página Access Context Manager.
Crea un nivel de acceso personalizado
En el cuadro de texto Título del nivel de acceso, ingresa un título para el nivel de acceso.
El título debe tener un máximo de 50 caracteres y comenzar con 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, ingresa las expresiones para tu nivel de acceso personalizado. La condición debe resolverse en un solo valor booleano.
Para encontrar los atributos de dispositivo disponibles para tu expresión CEL, consulta los atributos de dispositivo que recopila Endpoint Verification.
La siguiente expresión CEL permite el acceso solo desde los dispositivos encriptados:
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED
Para obtener ejemplos y más información sobre la compatibilidad con Common Expression Language (CEL) y los niveles de acceso personalizados, consulta la especificación del nivel de acceso personalizado.
- Haz clic en Guardar.
El nivel de acceso creado recientemente se muestra en la página Access Context Manager.
gcloud CLI
Para crear niveles de acceso, usa el método gcloud access-context-manager levels create.
Crea un archivo
.yaml
.Para un nivel de acceso básico, especifica los atributos de la política del dispositivo para el nivel de acceso.
Ejemplo: Para limitar el acceso solo a los usuarios con almacenamiento encriptado por dispositivo, ingresa lo siguiente en el archivo
.yaml
.- devicePolicy: allowedEncryptionStatuses - ENCRYPTED
Para un nivel de acceso personalizado, especifica una expresión CEL con el formato de un par clave-valor único:
expression: "CEL_EXPRESSION"
Ejemplo: Para limitar el acceso solo a los usuarios con almacenamiento encriptado por dispositivo y con el estado de dispositivo aprobado, ingresa lo siguiente en el archivo
.yaml
.expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && device.is_admin_approved_device"
Para obtener una lista de los atributos de nivel de acceso a la política de dispositivos y su formato YAML, consulta Atributos de política de dispositivo. Para obtener un archivo YAML integral de todos los atributos posibles, consulta este ejemplo de archivo YAML de nivel de acceso.
Para encontrar los atributos de dispositivo disponibles para las especificaciones de niveles personalizados, consulta Atributos de dispositivos recopilados por Endpoint Verification.
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
Aquí:
ACCESS_LEVEL_NAME es el nombre único para el nivel de acceso. Debe tener el siguiente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
.LEVEL_ID es un nombre para el nivel de acceso. El nombre debe tener un máximo de 50 caracteres, comenzar con una letra y solo puede contener números, letras y guiones bajos.
TITLE es un título legible. Debe ser único para la política.
FILE_NAME es el nombre del archivo
.yaml
. En el caso de un nivel de acceso básico, contiene atributos de la política de dispositivo. Para un nivel de acceso personalizado, contiene una expresión CEL con el formato de un solo par clave-valor: "expression: "CEL_EXPRESSION".POLICY_NAME es el nombre de la política de acceso de tu organización.
Verás 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.
Crea un nivel de acceso básico
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- POLICY_ID: El ID de la política de acceso de tu organización.
- LEVEL_ID: Es un nombre para el nivel de acceso. El nombre debe tener un máximo de 50 caracteres, comenzar con una letra y solo puede contener números, letras y guiones bajos.
- ACCESS_LEVEL_NAME: Es el nombre único del nivel de acceso. Debe tener el siguiente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
. - TITLE: Es un título legible por humanos. Debe ser único para la política.
- DESCRIPTION: Una descripción del nivel de acceso y su uso.
- CONDITION: Es una lista de requisitos para que se otorgue 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 que se muestra a continuación:
{ "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" ] } } ] } } }
Crea un nivel de acceso personalizado
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- POLICY_ID: El ID de la política de acceso de tu organización.
- LEVEL_ID: Es un nombre para el nivel de acceso. El nombre debe tener un máximo de 50 caracteres, comenzar con una letra y solo puede contener números, letras y guiones bajos.
- ACCESS_LEVEL_NAME: Es el nombre único del nivel de acceso. Debe tener el siguiente formato:
accessPolicies/POLICY_ID/accessLevels/LEVEL_ID
. - TITLE: Es un título legible por humanos. Debe ser único para la política.
- DESCRIPTION: Una descripción del nivel de acceso y su uso.
- CEL_EXPRESSION: Es una expresión CEL que se evalúa como 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 que se muestra a continuación:
{ "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 de nivel de acceso, consulta Crea un nivel de acceso básico.