Como criar um nível de acesso básico

Nesta página, você verá, de maneira geral, como criar níveis de acesso básicos. Para criar níveis de acesso personalizados e usar o Modo avançado no console do Google Cloud, consulte Como criar um nível de acesso personalizado.

Nesta página, há implementações mais específicas dos níveis de acesso. Veja os exemplos a seguir:

Antes de começar

Criar um nível de acesso básico

Console

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

  1. Abra a página do Access Context Manager no console do Google Cloud.

    Abrir a página do Access Context Manager

  2. Se solicitado, selecione a organização.

  3. Na parte superior da página do Access Context Manager, clique em Novo.

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

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

    2. Na seção Condições, clique no add para o tipo de atributo que deseja adicionar e forneça os valores que você quer aplicar ao atributo.

      Para uma lista completa dos atributos que podem ser adicionados, veja atributos de nível de acesso.

      Por exemplo, se quiser que o nível de acesso leve em consideração a origem de uma solicitação que vem de dentro da rede, selecione o atributo Sub-redes de IP.

      Repita esse passo para adicionar vários atributos à mesma condição. Quando uma condição tiver vários atributos, todos eles precisarão ser atendidos pela solicitação de acesso.

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

      Os níveis de acesso aceitam condições baseadas em identidade do usuário. No entanto, para adicionar identidades a uma condição, é necessário criar ou atualizar o nível de acesso usando a CLI gcloud ou a API.

    3. Use a opção Quando a condição for atendida, retorne para especificar se você quer que a condição exija que uma solicitação atenda a atributos especificados (TRUE) ou se a solicitação precisa atendem a qualquer coisa, exceto esses atributos (FALSE).

      Por exemplo, se quiser negar solicitações de um determinado intervalo de endereços IP da rede, especifique-o usando o atributo Sub-redes de IP e defina a condição como FALSO.

    4. Outra opção é Adicionar outra condição ao nível de acesso e repetir as duas etapas anteriores. Basta clicar nessa opção.

      Por exemplo, para negar acesso a um subconjunto de endereços IP dentro de um intervalo de endereços IP mais amplo, crie uma nova condição, especifique o intervalo do subconjunto de endereços IP para o atributo Sub-rede de IP e defina a condição para retornar FALSO.

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

    5. Se você criou mais de uma condição, use Combinar condição com para especificar se o nível de acesso precisa exigir que uma solicitação atenda a pelo menos uma das condições (OR) ou a todas (AND).

    6. Clique em Salvar.

gcloud

Antes de começar

Para criar um nível de acesso usando a ferramenta de linha 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. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados; O nome pode ter no máximo 50 caracteres.

  • OPTIONS são as opções necessárias da tabela a seguir.

    Opções
    basic-level-spec

    Um arquivo YAML que especifica um 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 é exibido no console do Google Cloud.

    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 organização. Se você tiver um conjunto de políticas padrão, esse parâmetro será opcional.

Outra opção é incluir qualquer uma das sinalizações da gcloud.

arquivo YAML de especificação de nível básico

Ao usar a ferramenta de linha de comando gcloud para criar um nível de acesso, forneça um YAML para a opção basic-level-spec. O arquivo YAML define uma ou mais condições para o nível de acesso. As condições precisam conter pelo menos um atributo. Quando uma condição contém mais de um atributo, eles são combinados como uma operação AND (todos precisam ser verdadeiros) ou como uma operação NAND (nenhum pode ser verdadeiro), dependendo se o atributo negate está incluído na condição.

Para uma lista completa dos atributos que você pode incluir em seu arquivo YAML, leia sobre atributos de nível de acesso.

Para mais informações sobre níveis de acesso e YAML, consulte o exemplo 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, ligue para accessLevels.create.

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

Em que:

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

Corpo da solicitação

O corpo da solicitação precisa incluir um recurso AccessLevel que especifique as condições que você quer para o novo nível de acesso. Cada Condition tem um ou mais atributos que são avaliados como uma operação AND (todos precisam ser verdadeiros) ou como uma operação NAND (nenhum pode ser verdadeiro), dependendo se o campo negate está definido como true. A avaliação resultante determina se ou não for atendida.

Corpo da resposta

Caso a chamada seja bem-sucedida, o corpo da resposta incluirá um recurso de Operation que fornece detalhes sobre a operação POST.

Exemplos de implementações

Os exemplos a seguir abordam algumas maneiras práticas que sua organização pode usar para implementar os níveis de acesso. Eles pressupõem que a organização já tenha uma política de acesso.

Limitar o acesso em uma rede corporativa

Neste exemplo, você verá como criar uma condição de nível de acesso que permita o acesso apenas de um intervalo especificado de endereços IP (por exemplo, aqueles dentro de uma rede corporativa).

Ao restringir o intervalo de endereços IP que recebem acesso, é possível dificultar a extração de dados para um invasor que esteja dentro ou fora da organização.

Neste exemplo, suponha que você queira criar um nível de acesso que permita que um grupo de auditores internos acesse o serviço de Cloud Logging para um projeto chamado dados confidenciais. Todos os dispositivos para eles recebem IPs em uma sub-rede que varia entre 203.0.113.0 e 203.0.113.127. Você sabe que não haverá dispositivos designados para essa sub-rede além daqueles usados pelos auditores.

Se você quiser usar um intervalo de endereços IP particular, por exemplo, 192.168.0.0/16 ou 172.16.0.0/12), consulte Permitir o acesso a recursos protegidos de uma endereço IP para obter e um exemplo de implementação usando o VPC Service Controls.

Console

  1. Abra a página do Access Context Manager no console do Google Cloud.

    Abrir a página do Access Context Manager

  2. Se solicitado, selecione a organização.

  3. Na parte superior da página do Access Context Manager, clique em Novo.

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

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

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

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

    • Se você selecionar IP particular, clique em Selecionar redes VPC. É possível especificar redes VPC usando uma das três opções disponíveis na lista Import options.

      • Opção 1:

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

        2. Clique em Adicionar redes 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 Inserir manualmente o endereço da rede VPC e insira um ou mais nas redes VPC.

        2. Clique em Adicionar rede VPC.

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

        4. Clique em Adicionar sub-redes IP.

      • Opção 3:

        1. Selecione Fazer upload do arquivo CSV (substitui as redes atuais).

          Se você usar um arquivo CSV para adicionar redes e sub-redes VPC a um nível de acesso, o Access Context Manager substitui a VPC selecionada anteriormente redes e sub-redes.

        2. Clique em Procurar e faça o upload do arquivo CSV. No arquivo CSV, você deve especificar as redes e sub-redes VPC no seguinte formato:

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

          Com o arquivo CSV, o Access Context Manager preenche a rede VPC e informações de sub-rede em endereços de rede VPC e IPs sub-redes respectivamente.

      Para informações sobre o nome da rede VPC e os nomes formato do endereço IP, consulte Usar endereço IP interno no acesso níveis.

  6. Clique em Salvar.

gcloud

  1. Crie um arquivo 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, insira no arquivo YAML:

    - ipSubnetworks:
      - 203.0.113.0/25
    

    Se você quiser usar um endereço IP privado, insira as seguintes informações no arquivo YAML:

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

    Substitua VPC_NETWORK_NAME e IP_RANGE pelos valores descritos na seção Usar endereço IP interno em níveis de acesso.

  2. Salve o arquivo. Neste exemplo, o arquivo é denominado 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. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados;

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

    • POLICY é o ID da política de acesso da organização. Se você tiver uma política padrão definida, esse parâmetro será opcional.

    Você verá uma saída como:

    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 de solicitação 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, insira o seguinte no corpo da solicitação:

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

    Onde:

    • NAME é o nome exclusivo do nível de acesso. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados;

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

    Se você quiser usar um endereço IP particular, insira o seguinte no corpo da solicitação:

    {
     "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 seção Usar endereço IP interno em níveis de acesso.

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

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

    Em que:

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

Limitar o acesso por atributos de dispositivo

Neste exemplo, você verá como criar um nível de acesso que concede acesso somente a dispositivos que atendem a um conjunto de requisitos especificado, como uma determinada versão do sistema operacional (SO).

As informações sobre dispositivos são fornecidas para o Access Context Manager usando a verificação do endpoint. Os seguintes critérios podem ser verificados ao determinar se o acesso será concedido:

  • O bloqueio de tela está ativado.
  • A criptografia de armazenamento está ativada.
  • O dispositivo está executando um tipo de sistema operacional e uma versão especificados.

Para este exemplo, suponha que sua organização use apenas máquinas que tenham o Chrome OS ou o Windows instalado. Para adicionar uma camada de segurança, crie um nível de acesso que impeça o acesso de qualquer pessoa que use outros sistemas operacionais. Além disso, para gerenciar riscos, tenha certeza de que apenas determinadas versões dos sistemas operacionais possam ter acesso.

Console

  1. Abra a página Access Context Manager no console do Google Cloud.

    Abrir a página do Access Context Manager

  2. Se solicitado, selecione a organização.

  3. Na parte superior da página do Access Context Manager, clique em Novo.

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

  5. Adicione os atributos da política do dispositivo:

    1. Clique em Adicionar Política do SO e em Política do Chrome OS.

    2. Na caixa Versão mínima, insira a versão mínima do Chrome OS a ser permitida.

    3. Repita as etapas 1 e 2 para a Política do SO Windows.

  6. Clique em Salvar.

gcloud

  1. Crie um arquivo YAML para um nível de acesso que inclua uma política de 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, insira o seguinte no arquivo YAML:

    - devicePolicy:
        osConstraints:
          - osType: DESKTOP_CHROME_OS
            minimumVersion: 11316.165.0
          - osType: DESKTOP_WINDOWS
            minimumVersion: 10.0.1809
    
  2. Salve o arquivo. Neste exemplo, o arquivo é denominado 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. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados;

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

    • POLICY é o ID da política de acesso da organização. Se você tiver uma política padrão definida, esse parâmetro será opcional.

    Você verá uma saída como:

    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 de solicitação para criar um recurso AccessLevel que inclua uma política de dispositivo com restrições de SO.

    Neste exemplo, para permitir apenas dispositivos com uma versão mínima aceitável do Chrome OS e do Windows, insira o seguinte no corpo da solicitação:

    {
     "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. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados;

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

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

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

    Em que:

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

Conceder acesso por usuário ou conta de serviço

Conceder acesso com base na identidade geralmente é útil com contas de serviço, por exemplo, para permitir que uma Função do Cloud acesse dados.

Este exemplo descreve como conceder acesso a usuários e serviços contas, incluindo os níveis de acesso existentes para mostrar um exemplo de níveis de acesso aninhados. Nesse caso, os usuários especificados são incluídos de nível de acesso, mesmo que atendam às condições especificadas na os níveis de acesso atuais. Esse novo nível de acesso pode ser considerado uma categoria menos restritiva do que os níveis de acesso atuais.

Console

No momento, o console do Google Cloud não oferece suporte à adição de membros aos níveis de acesso. Se quiser adicionar membros aos níveis de acesso, use a ferramenta de linha de comando gcloud ou a API.

gcloud

  1. Criar um arquivo YAML com uma condição que lista os principais aos quais você quer conceder acesso.

    Neste exemplo, você 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 atuais que você quer incluir nesse nível.

    Neste exemplo, suponha que os níveis de acesso sejam nomeados Device_Trust e IP_Trust e que 247332951433 seja 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. Salve o arquivo. Neste exemplo, o arquivo é denominado CONDITIONS.yaml.

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

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

    Em que:

    • NAME é o nome exclusivo do nível de acesso. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados;

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

    • POLICY é o ID da política de acesso da organização. Se você tiver uma política padrão definida, esse parâmetro será opcional.

    • combine-function, definida como OR. O valor padrão, AND, requer que todas as condições sejam atendidas antes que um nível de acesso seja concedido. O OR dará acesso aos principais mesmo se outras condições forem ou não atendidos.

    Você verá uma saída como:

    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 de solicitação para criar uma AccessLevel. recurso que inclui uma condição que lista os principais aos quais você quer conceder acesso.

    Neste exemplo, você 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. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados;

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

  2. Adicione uma condição que liste os níveis de acesso atuais que você quer incluir nesse nível de acesso.

    Neste exemplo, suponha que os níveis de acesso sejam nomeados Device_Trust e IP_Trust e que 247332951433 seja 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 padrão para combiningFunction, AND, requer que todas as condições sejam atendidas antes que um nível de acesso seja concedido. O valor OR dará aos membros acesso mesmo se outras condições, como endereço IP ou aquelas herdadas de outros níveis de acesso necessários, não forem atendidas.

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

    Em que:

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