Como criar um nível de acesso personalizado

Depois que um nível de acesso personalizado é criado, ele pode ser gerenciado da mesma maneira que os níveis de acesso básico.

Para detalhes sobre como criar expressões de linguagem de expressão comum (CEL, na sigla em inglês) para níveis de acesso personalizados, consulte a especificação personalizada de nível de acesso.

Console

Para criar um nível de acesso personalizado:

  1. Abra a página Access Context Manager no console do Google Cloud.

    Abrir a página do Access Context Manager

  2. Se solicitado, selecione a organização.

  3. Na parte superior da página do Access Context Manager, clique em Novo.

  4. No painel Novo nível de acesso, faça o seguinte:

    1. Na caixa Título do nível de acesso, digite um título para o nível de acesso. O título precisa ter no máximo 50 caracteres, começar com uma letra e pode conter apenas números, letras, sublinhados e espaços.

    2. Ao lado de Criar condições em, selecione Modo avançado.

    3. Na seção Condições, insira as expressões para seu nível de acesso personalizado. A condição precisa ser resolvida como um único valor booleano.

      Para ver exemplos e mais informações sobre o suporte à Common Expression Language (CEL) e os níveis de acesso personalizados, consulte a Especificação do nível de acesso personalizado.

    4. Clique em Save.

gcloud

Antes de começar

Para criar um nível de acesso personalizado usando a ferramenta de linha de comando gcloud, use o 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

Onde:

  • LEVEL_NAME é um nome exclusivo para o nível de acesso. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados; O nome pode ter no máximo 50 caracteres.

  • TITLE é o título curto e legível para o nível de acesso.

  • FILE é um arquivo .yaml em que está sua expressão CEL formatada como um único par de chave-valor: expression: "CEL_EXPRESSION".

    Para ver exemplos e mais informações sobre o suporte à Common Expression Language (CEL) e os níveis de acesso personalizados, consulte a Especificação do nível de acesso personalizado.

  • DESCRIPTION (opcional) é uma descrição legível do nível de acesso.

  • POLICY_NAME é o nome numérico da política de acesso da organização.

Se quiser, inclua qualquer uma das sinalizações de gcloud.

custom-level-spec Arquivo YAML

Ao usar a ferramenta de linha de comando gcloud para criar um nível de acesso personalizado, é necessário fornecer um arquivo .yaml para a opção custom-level-spec. O arquivo .yaml define uma expressão CEL que resolve para um único valor booleano. O arquivo .yaml precisa conter um único par de chave-valor formatado como expression: "CEL_EXPRESSION". O valor de expression precisa ser uma string.

Exemplo de arquivo YAML

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

Exemplo de 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

Antes de começar

Para criar um nível de acesso personalizado, use o método accessPolicies.accessLevels.create.

Corpo da solicitação

No corpo da solicitação da chamada, inclua uma instância do objeto AccessLevel.

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

Para o campo custom, crie um objeto que inclua as expressões CEL para seu nível de acesso personalizado. A expressão completa precisa ser resolvida com um valor booleano. Os campos title e description são opcionais.

Exemplo

{
  "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 começar

Para criar um nível de acesso personalizado, chame CreateAccessLevel.

Para o campo access_level, inclua uma instância de AccessLevel.

Campos
name
Tipo string
Descrição

Obrigatório.

O nome do recurso para o nível de acesso. O POLICY_ID é o nome numérico da política de acesso da organização. O SHORT_NAME precisa começar com uma letra e incluir apenas letras, números e sublinhados.

Formato:

                accessPolicies/policy_id/accessLevels/short_name
                

title
Tipo string
Descrição

Um rótulo legível para o nível de acesso. Os níveis de acesso precisam ter nomes exclusivos.

description
Tipo string
Descrição

Uma descrição do nível de acesso.

custom
Tipo string
Descrição

As expressões CEL para seu nível de acesso personalizado. A expressão completa precisa resolver para um valor booleano.