Este documento mostra como os administradores podem criar níveis de acesso com base em atributos do dispositivo (níveis de acesso baseados em dispositivos) usando o Access Context Manager.
Um nível de acesso é um conjunto de atributos usado para permitir o acesso a recursos com base em 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
Para concluir a tarefa nesta página, você precisa ter uma das seguintes funções:
- Administrador do Access Context Manager (
roles/accesscontextmanager.policyAdmin
) - Editor do Access Context Manager (
roles/accesscontextmanager.policyEditor
)
- Administrador do Access Context Manager (
Faça upgrade para a assinatura paga do Chrome Enterprise Premium.
Criar um nível de acesso
Console
No console do Google Cloud, acesse a página Access Context Manager.
Se necessário, selecione sua organização.
Na página Access Context Manager, clique em
Criar nível de acesso.No painel Novo nível de acesso, crie um nível de acesso básico ou personalizado. Para ver instruções, abra a seção necessária.
Criar um nível de acesso básico
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.
Na seção Criar condições em, selecione Modo básico.
.- Na seção Condições, selecione os atributos do dispositivo:
- Clique em Política do dispositivo.
Selecione os atributos necessários.
Por exemplo, se você quiser aplicar a aprovação do administrador nos dispositivos, selecione Exigir a aprovação do administrador.
- Clique em Salvar.
O nível de acesso recém-criado aparece na página do Access Context Manager.
Criar um nível de acesso personalizado
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.
- Na seção Criar condições em, selecione Modo avançado.
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 encontrar os atributos de dispositivo disponíveis para sua expressão CEL, consulte os atributos de dispositivo coletados pela Verificação de endpoints.
A expressão CEL a seguir permite o acesso apenas a partir dos dispositivos criptografados:
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED
Para conferir 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.
- Clique em Salvar.
O nível de acesso recém-criado aparece na página do Access Context Manager.
CLI da gcloud
Para criar níveis de acesso, use o método gcloud access-context-manager levels create.
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 aos usuários com armazenamento criptografado no dispositivo, 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 aos usuários com armazenamento criptografado e com o status de dispositivo aprovado, insira 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 um arquivo YAML abrangente de 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 de dispositivo coletados pela Verificação de endpoints.
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 de 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 abaixo, 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, começar com 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 por humanos. Ele precisa ser exclusivo para a política.
- DESCRIPTION: uma descrição do nível de acesso e do uso dele.
- CONDITION: uma lista de requisitos para conceder o nível de acesso.
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 com o nome 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 com o nome 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 abaixo, 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, começar com 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 por humanos. Ele precisa ser exclusivo para a política.
- DESCRIPTION: uma descrição do nível de acesso e do uso dele.
- CEL_EXPRESSION: uma expressão CEL que avalia para 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 com o nome 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 com o nome 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, consulte Criar um nível de acesso básico.