Defina políticas de acesso através de níveis de acesso

Esta página explica como definir políticas de acesso sensível ao contexto através de níveis de acesso.

Um nível de acesso é um conjunto de atributos atribuídos a pedidos com base na respetiva origem. Usando informações como o tipo de dispositivo, o endereço IP e a identidade do utilizador, pode designar o nível de acesso a conceder. Por exemplo, pode atribuir um nível High_Trust às ligações a partir da sua rede empresarial e um nível Medium_Trust aos dispositivos externos que executam sistemas operativos aprovados.

Uma política de acesso é um contentor para todos os seus recursos do Access Context Manager, como níveis de acesso e perímetros de serviço.

Para mais informações acerca dos níveis de acesso e das políticas de acesso, consulte a vista geral do Gestor de contexto de acesso.

Limitações

Quando define um nível de acesso, aplicam-se as seguintes limitações:

  • Não pode usar um endereço IP como atributo para ligações Docker, nem pode usar endereços IP privados quando se liga a clusters privados através do kubectl ou de uma instância do Looker gerida.
  • O Looker Studio tem sempre acesso ilimitado às Google Cloud APIs, independentemente das políticas do Gestor de contexto de acesso.
  • Os atributos do dispositivo não estão disponíveis para aplicações cliente OAuth não pertencentes à Google.
  • Não pode usar um nível de acesso com âmbito.

Defina a sua política através de níveis de acesso

Consola

Crie um nível de acesso básico:

  1. Na Google Cloud consola, abra a página Access Context Manager.

    Aceda à página Gestor de acesso sensível ao contexto

  2. Se lhe for pedido, selecione um projeto.

  3. Na página Gestor de contexto de acesso, clique em Novo.

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

    1. No campo 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 Condições, clique no botão Adicionar para o tipo de atributo que quer adicionar e, em seguida, indique os valores que quer aplicar a esse atributo.

      Para ver uma lista completa dos atributos que pode adicionar, consulte os atributos do nível de acesso.

      Por exemplo, se quiser que o nível de acesso considere a origem de um pedido na sua rede, selecione o atributo Sub-redes de IP.

      Repita este passo para adicionar vários atributos à mesma condição. Quando uma condição tem vários atributos, todos os atributos têm de ser cumpridos pelo pedido de acesso.

      Uma condição de nível de acesso pode incluir um de cada tipo de atributo. Alguns atributos incluem opções adicionais, como o atributo Política de dispositivos.

      Os níveis de acesso suportam condições baseadas na identidade do utilizador. No entanto, para adicionar identidades a uma condição, tem de criar ou atualizar o nível de acesso através da CLI gcloud ou da API.

    3. Use a opção Quando a condição for cumprida, devolva para especificar se quer que a condição exija que um pedido cumpra todos os atributos especificados (VERDADEIRO) ou se o pedido tem de cumprir tudo, exceto esses atributos (FALSO).

      Por exemplo, se quiser recusar pedidos de um determinado intervalo de endereços IP da sua rede, especifique o intervalo de endereços IP através do atributo Sub-redes IP e, em seguida, defina a condição como FALSO.

    4. Opcionalmente, clique em Adicionar outra condição para adicionar uma condição adicional ao seu nível de acesso e, de seguida, repita os dois passos anteriores.

      Por exemplo, se quiser negar o acesso a um subconjunto de endereços IP num intervalo de endereços IP mais amplo, crie uma nova condição, especifique o intervalo de endereços IP do subconjunto para o atributo Sub-redes de IP e defina a condição para devolver FALSE.

      Repita este passo para adicionar várias condições ao mesmo nível de acesso.

    5. Se criou mais do que uma condição, use a opção Combinar condição com para especificar se quer que o nível de acesso exija que um pedido cumpra, pelo menos, uma das condições (OU) ou todas as condições (E).

    6. Clique em Guardar.

gcloud

Se não tiver uma política de acesso para a sua organização, crie uma antes de continuar.

Use o comando gcloud access-context-manager levels create para criar um nível de acesso:

gcloud access-context-manager levels create LEVEL_NAME OPTIONS \
    --policy=POLICY

Substitua o seguinte:

  • LEVEL_NAME: o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados. O nome pode ter um máximo de 50 carateres.

  • OPTIONS: as opções necessárias da tabela seguinte.

    Opções
    basic-level-spec

    Um ficheiro YAML que especifica uma ou mais condições para o nível de acesso.

    title

    Um título curto para o nível de acesso. O título do nível de acesso é apresentado na Google Cloud consola.

    combine-function

    (Opcional) Determina como as condições são combinadas.

    Valores válidos: AND, OR

    description

    (Opcional) Uma descrição detalhada do nível de acesso.

  • POLICY: o ID da política de acesso da sua organização. Se tiver uma política predefinida definida, este parâmetro é opcional.

Opcionalmente, pode incluir qualquer uma das flags gcloud.

ficheiro YAML basic-level-spec

Quando usa a CLI gcloud para criar um nível de acesso, tem de fornecer um ficheiro YAML para a opção basic-level-spec. O ficheiro YAML define uma ou mais condições para o nível de acesso. As condições têm de conter, pelo menos, um atributo. Quando uma condição contém mais do que um atributo, estes são combinados como uma operação AND (todos têm de ser verdadeiros) ou como uma operação NAND (nenhum pode ser verdadeiro), consoante o atributo negate esteja incluído na condição.

Para ver uma lista completa dos atributos que pode incluir no seu ficheiro YAML, consulte os atributos do nível de acesso.

Para mais informações sobre os níveis de acesso e o YAML, consulte o exemplo de YAML para um nível de acesso.

Exemplo de comando

gcloud access-context-manager levels create Device_Trust \
    --basic-level-spec=corpdevspec.yaml \
    --combine-function=AND \
    --description='Access level that conforms to corporate spec.' \
    --title='Device_Trust Extended' \
    --policy=1521580097614100

API

Se não tiver uma política de acesso para a sua organização, crie uma antes de continuar.

Para criar um nível de acesso, chame accessLevels.create.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels

POLICY é o ID da política de acesso da sua organização.

Corpo do pedido

O corpo do pedido tem de incluir um recurso AccessLevel que especifique as condições pretendidas para o novo nível de acesso. Cada Condition tem um ou mais atributos que são avaliados como uma operação AND (todos têm de ser verdadeiros) ou como uma operação NAND (nenhum pode ser verdadeiro), consoante o campo negate esteja definido como true. A avaliação resultante determina se a condição é cumprida ou não.

Corpo da resposta

Se for bem-sucedido, o corpo da resposta da chamada contém um recurso Operation que fornece detalhes sobre a operação POST.

Configurações de políticas comuns

Os exemplos seguintes abrangem algumas das formas práticas que a sua organização pode querer implementar níveis de acesso. Os exemplos pressupõem que a sua organização já tem uma política de acesso.

Limite o acesso numa rede empresarial

Este exemplo descreve como criar uma condição de nível de acesso que permite o acesso apenas a partir de um intervalo especificado de endereços IP (por exemplo, os que se encontram numa rede empresarial).

Ao restringir o intervalo de endereços IP aos quais é concedido acesso, pode dificultar a exfiltração de dados por parte de um atacante que esteja dentro ou fora da sua organização.

Para este exemplo, suponha que quer criar um nível de acesso que permita a um grupo de auditores internos aceder ao serviço Cloud Logging para um projeto denominado sensitive-data. Todos os dispositivos dos auditores têm IPs atribuídos numa sub-rede que varia entre 203.0.113.0 e 203.0.113.127. Sabe que não vão ser atribuídos dispositivos a essa sub-rede, exceto os usados pelos auditores.

Se quiser usar um intervalo de endereços IP privados (por exemplo, 192.168.0.0/16ou 172.16.0.0/12), consulte o artigo Permita o acesso a recursos protegidos a partir de um endereço IP interno para ver informações adicionais e um exemplo de implementação através dos VPC Service Controls.

Consola

  1. Na Google Cloud consola, abra o Gestor de contexto de acesso.

    Aceda à página Gestor de acesso sensível ao contexto

  2. Se lhe for pedido, selecione o projeto.

  3. Na parte superior da página Chrome Enterprise Premium, clique em Novo.

  4. No painel Novo nível de acesso, na secção Condições, clique em Adicionar atributo e, de seguida, clique em Sub-redes de IP.

  5. Na caixa Sub-redes IP, selecione IP público ou IP privado.

    • Se selecionar IP público, introduza um ou mais intervalos IPv4 ou IPv6 formatados como blocos CIDR.

      Neste exemplo, para limitar o acesso apenas aos auditores, introduza 203.0.113.0/25 na caixa Sub-redes de IP.

    • Se selecionar IP privado, clique em Selecionar redes de VPC. Pode especificar redes de VPC através de uma das três opções disponíveis na lista Opções de importação.

      • Opção 1:

        1. Selecione Procurar redes de VPC na sua organização e selecione as redes de VPC.

        2. Clique em Adicionar redes de VPC selecionadas.

        3. Clique em Selecionar sub-redes de IP e selecione as sub-redes.

        4. Clique em Adicionar sub-redes IP.

      • Opção 2:

        1. Selecione Introduzir manualmente o endereço da rede de VPC e introduza uma ou mais redes de VPC.

        2. Clique em Adicionar rede de VPC.

        3. Clique em Selecionar sub-redes de IP e selecione as sub-redes.

        4. Clique em Adicionar sub-redes IP.

      • Option 3:

        1. Selecione Carregar ficheiro CSV (substitui as redes existentes).

          Se usar um ficheiro CSV para adicionar redes VPC e sub-redes a um nível de acesso, o Access Context Manager substitui as redes VPC e as sub-redes selecionadas anteriormente.

        2. Clique em Procurar e carregue o ficheiro CSV. No ficheiro CSV, tem de especificar as redes VPC e as sub-redes no seguinte formato:

          VPC_NETWORK_NAME_1       | IP_RANGE_1       | IP_RANGE_2       | ...
          VPC_NETWORK_NAME_2       | .                | .                | ...
          .                        | .                | .                | ...
          .                        | .                | .                | ...
          
        3. Clique em Importar redes.

          Com o ficheiro CSV, o Access Context Manager preenche os nomes das redes VPC e as informações das sub-redes nas caixas Endereço da rede VPC e Sub-redes IP, respetivamente.

      Para informações sobre o nome da rede VPC e o formato do endereço IP privado, consulte o artigo Use o endereço IP interno nos níveis de acesso.

  6. Clique em Guardar.

gcloud

  1. Crie um ficheiro YAML para um nível de acesso que inclua um ou mais intervalos IPv4 ou IPv6 formatados como blocos CIDR.

    Neste exemplo, para limitar o acesso apenas aos auditores, introduziria o seguinte no ficheiro YAML:

    - ipSubnetworks:
      - 203.0.113.0/25
    

    Se quiser usar um endereço IP privado, tem de introduzir as seguintes informações no ficheiro YAML:

    - vpcNetworkSources:
      - vpcSubnetwork:
          network: VPC_NETWORK_NAME
          vpcIpSubnetworks:
          - IP_RANGE
    

    Substitua VPC_NETWORK_NAME e IP_RANGE pelos valores descritos na secção Use o endereço IP interno nos níveis de acesso.

  2. Guarde o ficheiro. Neste exemplo, o ficheiro tem o nome CONDITIONS.yaml.

  3. Crie o nível de acesso.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY

    Substitua o seguinte:

    • NAME: o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.

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

    • POLICY: o ID da política de acesso da sua organização. Se tiver uma política predefinida definida, este parâmetro é opcional.

    Deverá ver uma saída semelhante à seguinte:

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

API

  1. Crie um corpo do pedido para criar um recurso AccessLevel que inclua um ou mais intervalos IPv4 ou IPv6 formatados como blocos CIDR.

    Neste exemplo, para limitar o acesso apenas aos auditores, introduziria o seguinte no corpo do pedido:

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "ipSubnetworks": [
             "203.0.113.0/25"
           ]
         }
       ]
     }
    }

    Substitua o seguinte:

    • NAME: o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.

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

    Se quiser usar um endereço IP privado, tem de introduzir as seguintes informações no corpo do pedido:

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "vpcNetworkSources": [
            {
              "vpcSubnetwork": {
                "network": VPC_NETWORK_NAME,
                "vpcIpSubnetworks": [
                  IP_RANGE
                ]
              }
            }
           ]
         }
       ]
     }
    }

    Substitua VPC_NETWORK_NAME e IP_RANGE pelos valores descritos na secção Use o endereço IP interno nos níveis de acesso.

  2. Crie o nível de acesso chamando accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    POLICY é o ID da política de acesso da sua organização.

Depois de criar o nível de acesso, tem de o aplicar através de uma associação de acesso para que seja aplicado.

Limite o acesso por atributos do dispositivo

Este exemplo descreve como criar um nível de acesso que concede acesso apenas a dispositivos que cumprem um conjunto especificado de requisitos, como uma determinada versão do sistema operativo (SO).

As informações sobre os dispositivos são fornecidas ao Chrome Enterprise Premium através da validação de pontos finais. Podem ser verificados os seguintes critérios ao determinar se deve ser concedido acesso:

  • O bloqueio de ecrã está ativado
  • A encriptação de armazenamento está ativada
  • O dispositivo está a executar um tipo e uma versão especificados do sistema operativo

Para este exemplo, vamos assumir que a sua organização usa apenas máquinas com o ChromeOS ou o Windows instalados. Para adicionar uma camada de segurança, quer criar um nível de acesso que impeça o acesso por parte de qualquer pessoa que use outros sistemas operativos. Além disso, para gerir o risco, quer certificar-se de que apenas determinadas versões dos SOs podem obter acesso.

Consola

  1. Na Google Cloud consola, abra a página Gestor de contexto de acesso.

    Aceda à página Gestor de acesso sensível ao contexto

  2. Se lhe for pedido, selecione um projeto.

  3. Na parte superior da página Chrome Enterprise Premium, clique em Novo.

  4. No painel Novo nível de acesso, na secção Condições, clique em Adicionar atributo e, de seguida, clique em Política de dispositivos.

  5. Adicione os atributos da política de dispositivos:

    1. Clique em Adicionar política de SO e, de seguida, em Política do ChromeOS.

    2. Na caixa Versão mínima, introduza a versão mínima do ChromeOS que quer permitir.

    3. Repita os passos 1 e 2 para a Política do SO Windows.

  6. Clique em Guardar.

gcloud

  1. Crie um ficheiro YAML para um nível de acesso que inclua uma política do dispositivo com restrições do SO.

    Neste exemplo, para permitir apenas dispositivos com uma versão mínima aceitável do ChromeOS e do Windows, introduziria o seguinte no ficheiro YAML:

    - devicePolicy:
        osConstraints:
          - osType: DESKTOP_CHROME_OS
            minimumVersion: 11316.165.0
          - osType: DESKTOP_WINDOWS
            minimumVersion: 10.0.1809
    
  2. Guarde o ficheiro. Neste exemplo, o ficheiro tem o nome CONDITIONS.yaml.

  3. Crie o nível de acesso.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY

    Substitua o seguinte:

    • NAME: o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.

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

    • POLICY: o ID da política de acesso da sua organização. Se tiver uma política predefinida definida, este parâmetro é opcional.

    Deverá ver uma saída semelhante à seguinte:

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

API

  1. Crie um corpo do pedido para criar um recurso AccessLevel que inclua uma política de dispositivos com restrições do SO.

    Neste exemplo, para permitir apenas dispositivos com uma versão mínima aceitável do ChromeOS e do Windows, introduziria o seguinte no corpo do pedido:

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "devicePolicy": {
             "osConstraints": [
               {
                 "osType": "DESKTOP_CHROME_OS",
                 "minimumVersion": "11316.165.0"
               },
               {
                 "osType": "DESKTOP_WINDOWS",
                 "minimumVersion": "10.0.1809"
               }
             ]
           {
         }
       ]
     }
    }

    Substitua o seguinte:

    • NAME: o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.

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

  2. Crie o nível de acesso chamando accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    POLICY é o ID da política de acesso da sua organização.

Depois de criar o nível de acesso, tem de o aplicar através de uma associação de acesso para que seja aplicado.

Limite o acesso a dispositivos empresariais fidedignos com certificados válidos

Pode usar o acesso baseado em certificados (CBA) para exigir certificados X.509 validados para aceder a Google Cloud recursos. A credencial adicional fornece um sinal mais forte da identidade do dispositivo e ajuda a proteger a sua organização contra o roubo de credenciais ou a perda acidental, exigindo que as credenciais do utilizador e o certificado do dispositivo original estejam presentes antes de conceder acesso.

Antes de continuar, certifique-se de que a extensão do Chrome de validação de pontos finais e a app auxiliar de validação de pontos finais estão implementadas em todos os dispositivos que requerem acesso a recursosGoogle Cloud . Estes tornam-se dispositivos fidedignos aos quais pode conceder acesso. Consulte o artigo Implemente a validação de pontos finais para usar com o acesso baseado em certificados para ver detalhes.

Para criar uma política que exija acesso baseado em certificados, tem de ter um nível de acesso com uma especificação de nível de acesso personalizada.

Consola

  1. Na Google Cloud consola, abra a página Access Context Manager.

    Aceda à página Gestor de acesso sensível ao contexto

  2. Se lhe for pedido, selecione um projeto.

  3. Clique em Criar nível de acesso.

  4. No painel Novo nível de acesso, selecione Modo avançado. Tem de ter uma licença do Chrome Enterprise Premium para usar este modo.

  5. Na secção Condições, introduza a seguinte expressão na caixa Expressão de IEC.

    certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE
    
  6. Clique em Guardar.

gcloud

  1. Crie um ficheiro YAML para um nível de acesso que inclua a aplicação de certificados.

    expression: "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE"
    
  2. Guarde o ficheiro. Neste exemplo, o ficheiro tem o nome CONDITIONS.yaml.

  3. Crie o nível de acesso.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY

Substitua o seguinte:

  • NAME: o nome exclusivo do nível de acesso. O nome tem de começar com uma letra e incluir apenas letras, números e sublinhados.

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

  • POLICY: o ID da política de acesso da sua organização. Se tiver uma política predefinida definida, este parâmetro é opcional.

Deverá ver uma saída semelhante à seguinte:

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

API

  1. Crie um ficheiro de corpo do pedido para um nível de acesso que inclua uma política de dispositivo com restrições do SO.

    {
     "name": "require_certificate",
     "title": "Certificate-Based Access",
     "description": "An example certificate-based access level.",
     "custom": {
       "expr": {
         "expression": "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE",
         "title": "Require a valid certificate",
         "description": "Permits requests from a device with a valid mTLS certificate."
        }
      }
    }
  2. Crie o nível de acesso chamando accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    POLICY é o ID da política de acesso da sua organização.

Depois de criar o nível de acesso, tem de o aplicar através de uma associação de acesso para que seja aplicado.