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 Access Context Manager no Console do 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.

      Por padrão, você cria condições no Modo básico. Se você quiser criar condições usando o Modo avançado, consulte Como criar um nível de acesso personalizado.

    2. Na seção Condições, clique em Adicionar atributo e selecione o atributo a ser adicionado à condição.

      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.

    3. Use a opção Quando a condição for atendida para especificar se o nível de acesso precisa exigir que uma solicitação atenda a todos os atributos especificados (VERDADEIRO) ou se a solicitação precisa atender a qualquer critério, menos 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. Na seção Condições, use a opção Combinar condições para especificar se você quer que o nível de acesso exija uma solicitação para atender a todas as condições do nível de acesso (AND) ou apenas uma das condições (OR).

    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_NAME

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 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 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_NAME é o nome da política de acesso da organização.

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, você precisa fornecer 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.

Para uma lista completa dos atributos que podem ser incluídos no arquivo .yaml, veja 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'

API

Antes de começar

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

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

Onde:

  • POLICY_NAME é o nome 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.

Corpo da resposta

Se bem-sucedido, o corpo da resposta da chamada conterá um recurso 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 Access Context Manager no Console do 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 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 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_NAME
    

    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_NAME é o nome da política de acesso da organização.

    Você verá uma saída como:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/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.

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

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

    Onde:

    • POLICY_NAME é o nome da política de acesso da organização.

Limitar o acesso por dispositivos em uma rede

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 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 do dispositivo com restrições de SO.

    Neste exemplo, para permitir somente 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_NAME
    

    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_NAME é o nome da política de acesso da organização.

    Você verá uma saída como:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/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_NAME/accessLevels
    

    Onde:

    • POLICY_NAME é o nome da política de acesso da organização.

Limitar o 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.

Neste exemplo, você verá como conceder acesso a usuários e contas de serviço específicos que não se enquadram nos critérios de outros níveis de acesso. Neste exemplo, suponha que você tenha um administrador do sistema e uma conta de serviço que queira fornecer acesso aos serviços de um projeto, independentemente das condições especificadas em outros níveis de acesso.

Console

No momento, o Console do Cloud não suporta a adição de membros aos níveis de acesso. Se você 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 lista os membros a receberem 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 que você não quer aplicar aos membros. A negação é conseguida definindo a função de combinação como OR na etapa 4.

    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.

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

    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_NAME é o nome da política de acesso da organização.

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

    Você verá uma saída como:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/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 condição que liste os membros aos quais você quer fornecer 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 que você não quer aplicar aos membros. A negação é conseguida definindo a função de combinação como OR na etapa seguinte.

    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_NAME/accessLevels
    

    Onde:

    • POLICY_NAME é o nome da política de acesso da organização.