Crie níveis de acesso baseados em dispositivos

Este documento mostra como os administradores podem criar níveis de acesso com base em atributos do dispositivo (níveis de acesso baseados no dispositivo) através do Gestor de acesso sensível ao contexto.

Um nível de acesso é um conjunto de atributos que é usado para permitir o acesso a recursos com base em informações contextuais sobre o pedido. Enquanto administrador, pode criar níveis de acesso básicos ou níveis de acesso personalizados através dos atributos do dispositivo recolhidos pela validação de pontos finais.

Antes de começar

Crie um nível de acesso

Consola

  1. Na Google Cloud consola, aceda à página Access Context Manager.

    Aceda ao Gestor de acesso sensível ao contexto

  2. Se lhe for pedido, selecione a sua organização.

  3. Na página Access Context Manager, clique em Criar nível de acesso.

  4. No painel Novo nível de acesso, crie um nível de acesso básico ou um nível de acesso personalizado. Para obter instruções, expanda a secção necessária.

    Crie um nível de acesso básico

    1. Na caixa Título do nível de acesso, introduza um título para o nível de acesso.

      O título tem de ter, no máximo, 50 carateres, começar por uma letra e só pode conter números, letras, sublinhados e espaços.

    2. Na secção Criar condições em, selecione Modo básico

      .
    3. Na secção Condições, selecione os atributos do dispositivo:
      1. Clique em Política de dispositivos.
      2. Selecione os atributos obrigatórios.

        Por exemplo, se quiser aplicar a aprovação do administrador nos dispositivos, selecione Exigir aprovação do administrador.

    4. Clique em Guardar.

    O nível de acesso recém-criado é apresentado na página Gestor de contexto de acesso.

    Crie um nível de acesso personalizado

    1. Na caixa Título do nível de acesso, introduza um título para o nível de acesso.

      O título tem de ter, no máximo, 50 carateres, começar por uma letra e só pode conter números, letras, sublinhados e espaços.

    2. Na secção Criar condições em, selecione Modo avançado.
    3. Na secção Condições, introduza as expressões para o seu nível de acesso personalizado. A condição tem de ser resolvida para um único valor booleano.

      Para encontrar os atributos do dispositivo disponíveis para a sua expressão CEL, consulte os atributos do dispositivo recolhidos pela validação de pontos finais.

      A seguinte expressão CEL permite o acesso apenas a partir dos dispositivos encriptados:

      device.encryption_status == DeviceEncryptionStatus.ENCRYPTED

      Para ver exemplos e mais informações sobre o suporte do idioma de expressão comum (IEC) e os níveis de acesso personalizados, consulte a especificação do nível de acesso personalizado.

    4. Clique em Guardar.

    O nível de acesso recém-criado é apresentado na página Gestor de contexto de acesso.

CLI gcloud

Para criar níveis de acesso, use o método gcloud access-context-manager levels create.

  1. Crie um ficheiro .yaml.

    • Para um nível de acesso básico, especifique os atributos da política do dispositivo para o nível de acesso.

      Exemplo: para limitar o acesso apenas a utilizadores com armazenamento de dispositivos encriptado, introduza o seguinte no ficheiro .yaml.

        - devicePolicy:
            allowedEncryptionStatuses
              - ENCRYPTED
      
    • Para um nível de acesso personalizado, especifique uma expressão CEL formatada como um par de chave-valor único: expression: "CEL_EXPRESSION"

      Exemplo: para limitar o acesso apenas a utilizadores com armazenamento do dispositivo encriptado e com o estado do dispositivo aprovado, introduza o seguinte no ficheiro .yaml.

      expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && device.is_admin_approved_device"
      

    Para ver uma lista dos atributos do nível de acesso da política do dispositivo e o respetivo formato YAML, consulte o artigo Atributos da política do dispositivo. Para ver um ficheiro YAML abrangente de todos os atributos possíveis, consulte este ficheiro YAML de nível de acesso de exemplo.

    Para encontrar os atributos de dispositivos disponíveis para especificações de nível personalizado, consulte o artigo Atributos de dispositivos recolhidos pela validação de pontos finais.

  2. Crie o nível de acesso.

    • Para um nível de acesso básico, execute o seguinte comando:

      gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
      --title=TITLE \
      --basic-level-spec=FILE_NAME.yaml\
      --policy=POLICY_NAME
    • Para um nível de acesso personalizado, execute o seguinte comando:

      gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
      --title=TITLE \
      --custom-level-spec=FILE_NAME.yaml\
      --policy=POLICY_NAME

    Onde:

    • ACCESS_LEVEL_NAME é o nome exclusivo do nível de acesso. Tem de ter o seguinte formato: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.

    • LEVEL_ID é um nome para o nível de acesso. O nome tem de ter, no máximo, 50 carateres, começar por uma letra e só pode conter números, letras e sublinhados.

    • TITLE é um título legível. Tem de ser exclusivo da política.

    • FILE_NAME é o nome do ficheiro .yaml. Para um nível de acesso básico, contém atributos de política do dispositivo. Para um nível de acesso personalizado, contém uma expressão de IEC formatada como um par de chave-valor único: `expression: "CEL_EXPRESSION".

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

    Vê um resultado semelhante ao seguinte:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

Crie um nível de acesso através do método accessPolicies.accessLevels.create.

Crie um nível de acesso básico

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • POLICY_ID: o ID da política de acesso da sua organização.
  • LEVEL_ID: um nome para o nível de acesso. O nome tem de ter, no máximo, 50 carateres, começar por uma letra e só pode conter números, letras e sublinhados.
  • ACCESS_LEVEL_NAME: o nome exclusivo do nível de acesso. Tem de ter o seguinte formato: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: um título legível. Tem de ser exclusivo da política.
  • DESCRIPTION: uma descrição do nível de acesso e da respetiva utilização.
  • CONDITION: uma lista de requisitos para a concessão do nível de acesso.

Método HTTP e URL:

POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels

Corpo JSON do pedido:


For basic access levels:

{
"name": ACCESS_LEVEL_NAME,
"title": TITLE,
  "description": DESCRIPTION,


  "basic": {
  "conditions": [
    {
    CONDITION
    }
   ],
  }
 },
}

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Deve receber uma resposta JSON semelhante à seguinte:


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

Crie um nível de acesso personalizado

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • POLICY_ID: o ID da política de acesso da sua organização.
  • LEVEL_ID: um nome para o nível de acesso. O nome tem de ter, no máximo, 50 carateres, começar por uma letra e só pode conter números, letras e sublinhados.
  • ACCESS_LEVEL_NAME: o nome exclusivo do nível de acesso. Tem de ter o seguinte formato: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: um título legível. Tem de ser exclusivo da política.
  • DESCRIPTION: uma descrição do nível de acesso e da respetiva utilização.
  • CEL_EXPRESSION: uma expressão IEC que é avaliada como um valor booleano.

Método HTTP e URL:

POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels

Corpo JSON do pedido:


{
"name": ACCESS_LEVEL_NAME,
"title": TITLE,
  "description": DESCRIPTION,

  "custom": {
   "conditions": [
     {
      "expr": {
     CEL_EXPRESSION
     }
    }
   ]
  }
 },
}

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Deve receber uma resposta JSON semelhante à seguinte:



{
  "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 mais informações sobre a criação de níveis de acesso com várias condições e dependências de níveis de acesso, consulte o artigo Crie um nível de acesso básico.

O que se segue?