Crear un nivel de acceso personalizado

Después de crear un nivel de acceso personalizado, se puede administrar de la misma manera que los niveles de acceso básicos.

Si deseas obtener detalles sobre cómo compilar Common Expression Language (CEL) para niveles de acceso personalizados, consulta la especificación de nivel de acceso personalizado.

Console

Para crear un nivel de acceso personalizado, sigue estos pasos:

  1. Abre la página de Access Context Manager en la consola de Google Cloud.

    Abrir la página de Access Context Manager

  2. Si se le solicita, selecciona tu organización.

  3. En la parte superior de la página Access Context Manager, haz clic en Nuevo.

  4. En el panel Nivel de acceso nuevo, haz lo siguiente:

    1. 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.

    2. En Crear condiciones en, selecciona Modo avanzado.

    3. 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 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.

    4. Haga clic en Save.

gcloud

Antes de comenzar

Para crear un nivel de acceso personalizado con la herramienta de línea de comandos de gcloud, usa el comando gcloud access-context-manager levels create.

gcloud access-context-manager levels create LEVEL_NAME \
  --title=TITLE \
  --custom-level-spec=FILE \
  --description=DESCRIPTION \
  --policy=POLICY_NAME

Aquí:

  • LEVEL_NAME es el nombre único para el nivel de acceso. Debe comenzar con una letra y, además, incluir solo letras, números y guiones bajos. El nombre puede tener un máximo de 50 caracteres.

  • TITLE es el título corto y legible para el nivel de acceso.

  • FILE es un archivo .yaml que contiene tu expresión CEL con el formato de un par clave-valor único: expression: "CEL_EXPRESSION".

    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.

  • DESCRIPTION es una descripción legible del nivel de acceso (opcional).

  • POLICY_NAME es el nombre numérico de la política de acceso de tu organización.

De manera opcional, puedes incluir cualquiera de las marcas para todo gcloud.

Archivo YAML custom-level-spec

Cuando usas la herramienta de línea de comandos de gcloud con el fin de crear un nivel de acceso personalizado, debes proporcionar un archivo .yaml para la opción custom-level-spec. El archivo .yaml define una expresión CEL que se resuelve en un solo valor booleano. El archivo .yaml debe contener un solo par clave-valor con el formato expression: "CEL_EXPRESSION". El valor de expression debe ser una string.

Ejemplo de archivo YAML

expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && (origin.region_code in ['US'] || device.is_admin_approved_device)"

Comando de ejemplo

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

Antes de comenzar

Para crear un nivel de acceso personalizado, usa el método accessPolicies.accessLevels.create.

Cuerpo de la solicitud

En el cuerpo de la solicitud de la llamada, incluye una instancia del objeto AccessLevel.

{
  "name": string,
  "title": string,
  "description": string,
  "custom": {
    "expr": {
      "expression": string,
      "title": string,
      "description": string
    }
  }
}

En el campo custom, crea un objeto que incluya las expresiones CEL para tu nivel de acceso personalizado. La expresión completa debe resolverse como un valor booleano. Los campos title y description son opcionales.

Ejemplo

{
  "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

Antes de comenzar

Para crear un nivel de acceso personalizado, llama a CreateAccessLevel.

En el campo access_level, incluye una instancia de AccessLevel.

Campos
name
Tipo string
Descripción

Obligatorio

El nombre del recurso del nivel de acceso. POLICY_ID es el nombre numérico de la política de acceso de tu organización. La SHORT_NAME debe comenzar con una letra e incluir solo letras, números y guiones bajos.

Formato:

                accessPolicies/policy_id/accessLevels/short_name
                

title
Tipo string
Descripción

Una etiqueta legible para el nivel de acceso. Los niveles de acceso deben tener nombres únicos.

description
Tipo string
Descripción

Una descripción del nivel de acceso.

custom
Tipo string
Descripción

Las expresiones CEL para tu nivel de acceso personalizado. La expresión completa debe resolverse en un valor booleano.