Criar níveis de acesso baseados no dispositivo

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Neste documento, mostramos como os administradores podem criar níveis de acesso com base nos atributos do dispositivo (níveis de acesso no dispositivo) usando o Access Context Manager.

Um nível de acesso é um conjunto de atributos usados para permitir o acesso aos recursos com base nas informações contextuais sobre a solicitação. Como administrador, você pode criar níveis de acesso básicos ou personalizados usando os atributos do dispositivo coletados pela Verificação de endpoints.

Antes de começar

Criar um nível de acesso

Console

  1. No Console do Google Cloud, acesse a página Access Context Manager.

    Acessar o Access Context Manager

  2. Se for solicitado, selecione 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 personalizado. Expanda as seções obrigatórias para ver instruções.

    Criar um nível de acesso básico

    1. Na caixa Título do nível de acesso, insira 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. Na seção Criar condições em, selecione Modo básico.

      .
    3. Na seção Condições, selecione os atributos do dispositivo:
      1. Clique em Device Policy.
      2. Selecione os atributos obrigatórios.

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

    4. Clique em Save.

    O nível de acesso recém-criado é exibido na página do Access Context Manager.

    Criar um nível de acesso personalizado

    1. Na caixa Título do nível de acesso, insira 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. Na seção Criar condições em, selecione Modo avançado.
    3. Na seção Condições, insira as expressões do seu nível de acesso personalizado. A condição precisa ser resolvida com um único valor booleano.

      Para encontrar os atributos de dispositivo disponíveis para sua expressão de CEL, consulte os atributos de dispositivo coletados pela verificação de endpoints.

      A expressão CEL a seguir permite o acesso somente de dispositivos criptografados:

      device.encryption_status == DeviceEncryptionStatus.ENCRYPTED

      Para exemplos e mais informações sobre a compatibilidade com a 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.

    O nível de acesso recém-criado é exibido na página do Access Context Manager.

CLI da gcloud

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

  1. Crie um arquivo .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 usuários com armazenamento criptografado em dispositivos, insira o seguinte no arquivo .yaml.

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

      Exemplo: para limitar o acesso apenas a usuários com armazenamento criptografado no dispositivo e com o status de dispositivo aprovado, digite o seguinte no arquivo .yaml.

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

    Para ver uma lista de atributos de nível de acesso da política do dispositivo e seu formato YAML, consulte Atributos da política do dispositivo. Para ver um arquivo YAML abrangente com todos os atributos possíveis, consulte este exemplo de arquivo YAML de nível de acesso.

    Para encontrar os atributos de dispositivo disponíveis para especificações de nível personalizado, consulte Atributos do dispositivo coletados pela verificação de endpoints.

  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
      

    Em que:

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

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

    • TITLE é um título legível. Ele precisa ser exclusivo para a política.

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

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

    Você verá uma saída semelhante a esta:

    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 usando o método accessPolicies.accessLevels.create.

Criar um nível de acesso básico

Antes de usar os dados da solicitação, faça as substituições a seguir:

  • 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 precisa ter no máximo 50 caracteres, iniciado por uma letra e pode conter apenas números, letras e sublinhados.
  • ACCESS_LEVEL_NAME: o nome exclusivo do nível de acesso. Ele precisa ter o seguinte formato: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: um título legível. Ele precisa ser exclusivo à política.
  • DESCRIPTION: uma descrição do nível de acesso e o uso dele.
  • CONDITION: uma lista de requisitos para o nível de acesso a ser concedido.

Método HTTP e URL:

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

Corpo JSON da solicitação:


For basic access levels:

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

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:


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

Criar um nível de acesso personalizado

Antes de usar os dados da solicitação, faça as substituições a seguir:

  • 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 precisa ter no máximo 50 caracteres, iniciado por uma letra e pode conter apenas números, letras e sublinhados.
  • ACCESS_LEVEL_NAME: o nome exclusivo do nível de acesso. Ele precisa ter o seguinte formato: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: um título legível. Ele precisa ser exclusivo à política.
  • DESCRIPTION: uma descrição do nível de acesso e o uso dele.
  • CEL_EXPRESSION: uma expressão de CEL avaliada em um booleano.

Método HTTP e URL:

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

Corpo JSON da solicitação:


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

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:


{
  "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 como criar níveis de acesso com várias condições e dependências de nível de acesso, consulte Criar um nível de acesso básico.

A seguir