Criar um nível de acesso básico

Esta página descreve, de forma geral, como criar níveis de acesso básicos. Para criar níveis de acesso personalizados e usar o modo avançado na Google Cloud consola, consulte o artigo Criar um nível de acesso personalizado.

Esta página inclui implementações mais focadas dos níveis de acesso. Veja os exemplos seguintes:

Antes de começar

Crie um nível de acesso básico

Consola

Para criar um nível de acesso básico:

  1. Abra a página Access Context Manager na Google Cloud consola.

    Abra a página Gestor de acesso sensível ao contexto

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

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

  4. No painel Novo nível de acesso:

    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, leia acerca dos 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 IP Subnetworks e, em seguida, defina a condição como FALSE.

    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 FALSO.

      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

Antes de começar

Para criar um nível de acesso através da ferramenta de linhas de comando gcloud, use o comando gcloud access-context-manager levels create.

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

Onde:

  • 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 são as opções obrigató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 ao nível do gcloud.

ficheiro YAML basic-level-spec

Quando usa a ferramenta de linha de comandos 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, leia acerca dos 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

Antes de começar

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

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

Onde:

  • 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.

Exemplos de implementações

Os exemplos seguintes abrangem algumas das formas práticas como a sua organização pode querer implementar níveis de acesso. Estes 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/16 ou 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. Abra a página Access Context Manager na Google Cloud consola.

    Abra a página Gestor de acesso sensível ao contexto

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

  3. Na parte superior da página Gestor de contexto de acesso, 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 nome do ficheiro é 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

    Onde:

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

    Onde:

    • 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
    

    Onde:

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

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 Gestor de contexto de acesso 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. Abra a página Access Context Manager na Google Cloud consola.

    Abra a página Gestor de acesso sensível ao contexto

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

  3. Na parte superior da página Gestor de contexto de acesso, 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 Chrome OS 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 nome do ficheiro é 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

    Onde:

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

    Onde:

    • 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
    

    Onde:

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

Conceda acesso por utilizador ou conta de serviço

A concessão de acesso com base na identidade é frequentemente útil em conjunto com contas de serviço, por exemplo, para permitir que uma Cloud Function aceda a dados.

Este exemplo descreve como conceder acesso a utilizadores e contas de serviço específicos, ao mesmo tempo que inclui níveis de acesso existentes para mostrar um exemplo de níveis de acesso aninhados. Neste caso, os utilizadores especificados são incluídos neste nível de acesso, independentemente de cumprirem as condições especificadas nos níveis de acesso existentes. Este novo nível de acesso pode ser considerado um nível menos restritivo do que os níveis de acesso existentes.

Consola

Atualmente, a consola Google Cloud não suporta a adição de responsáveis aos níveis de acesso. Se quiser adicionar responsáveis aos níveis de acesso, tem de usar a ferramenta de linha de comandos gcloud ou a API.

gcloud

  1. Crie um ficheiro YAML que contenha uma condição que liste os principais aos quais quer conceder acesso.

    Neste exemplo, quer adicionar o administrador do sistema (sysadmin@example.com) e uma conta de serviço (service@project.iam.gserviceaccount.com).

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
  2. Adicione uma condição que liste os níveis de acesso existentes que quer incluir neste nível de acesso.

    Neste exemplo, vamos assumir que os níveis de acesso se chamam Device_Trust e IP_Trust, e que 247332951433 é o nome da sua política de acesso.

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
    - requiredAccessLevels:
        - accessPolicies/247332951433/accessLevels/Device_Trust
        - accessPolicies/247332951433/accessLevels/IP_Trust
    
  3. Guarde o ficheiro. Neste exemplo, o nome do ficheiro é CONDITIONS.yaml.

  4. Crie o nível de acesso com o comando create.

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

    Onde:

    • 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.

    • A definição de combine-function é OR. O valor predefinido, AND, requer que todas as condições sejam cumpridas antes de ser concedido um nível de acesso. O valor OR concede aos principais acesso, mesmo que outras condições não sejam cumpridas.

    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 condição que liste os principais aos quais quer conceder acesso.

    Neste exemplo, quer adicionar o administrador do sistema (sysadmin@example.com) e uma conta de serviço (service@project.iam.gserviceaccount.com).

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         }
       ]
     }
    }

    Onde:

    • 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. Adicione uma condição que liste os níveis de acesso existentes que quer incluir neste nível de acesso.

    Neste exemplo, vamos assumir que os níveis de acesso se chamam Device_Trust e IP_Trust, e que 247332951433 é o nome da sua política de acesso.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ]
     }
    }
  3. Defina combiningFunction como OR.

    O valor predefinido para combiningFunction, AND, requer que todas as condições sejam cumpridas antes de ser concedido um nível de acesso. O valor OR concede aos principais acesso, mesmo que outras condições, como o endereço IP ou as condições herdadas de outros níveis de acesso obrigatórios, não sejam cumpridas.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ],
       "combiningFunction": "OR"
     }
    }
  4. Crie o nível de acesso chamando accessLevels.create.

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

    Onde:

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