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 botão adicionar do tipo de atributo que você quer incluir e insira os valores a serem aplicados a esse 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 atributo de cada tipo. Alguns atributos incluem outras opções, como o atributo da Política do dispositivo.

      Os níveis de acesso aceitam condições com base na identidade do usuário. No entanto, para adicionar identidades a uma condição, você precisa 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, retornar para especificar se você quer que a condição exija que uma solicitação atenda a todos os atributos especificados (VERDADEIRO) ou se a solicitação precisa atender a qualquer coisa exceto a esses atributos (FALSO).

      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 você quer que o nível de acesso exija que uma solicitação atenda a pelo menos uma das condições (OU) ou a todas as condições (E).

    6. Clique em Save.

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

Em que:

  • 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 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 é 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 com 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 arquivo 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 ou não na condição.

Para uma lista completa dos atributos que podem ser incluídos no 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 a condição foi atendida ou não.

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.

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 IP, digite 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.

  6. Clique em Save.

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 o seguinte no arquivo YAML:

    - ipSubnetworks:
      - 203.0.113.0/25
    
  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
    

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

    Você verá um resultado semelhante a este:

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

    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.

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

gcloud

  1. Crie um arquivo YAML para um nível de acesso 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 ChromeOS 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
    

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

    Você verá um resultado semelhante a este:

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

    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.

  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 em conjunto 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 contas de serviço específicos, além de incluir níveis de acesso atuais para mostrar um exemplo de níveis de acesso aninhados. Nesse caso, os usuários especificados são incluídos nesse nível de acesso, mesmo que não atendam às condições especificadas nos níveis de acesso atuais. Esse novo nível de acesso pode ser considerado um nível menos restritivo do que os níveis de acesso atuais.

Console

No momento, o console do Google Cloud não é compatível com a adição de principais a 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. Crie um arquivo YAML contendo uma condição que liste os principais a que 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 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.

    - 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 um conjunto de políticas padrão, 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 valor OR dará acesso aos principais mesmo que outras condições não sejam atendidas.

    Você verá um resultado semelhante a este:

    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 gerar um recurso AccessLevel que inclua uma condição que liste 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"
           ]
         }
       ]
     }
    }
    

    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.

  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.