Configurar grupos de endereços

Com os grupos de endereços, é possível combinar vários endereços IP e intervalos de endereços IP em uma única unidade lógica nomeada, que pode ser usada em diferentes produtos. Este documento mostra como usar grupos de endereços com as políticas de segurança do Google Cloud Armor. Para usar os grupos de endereços, você precisa de uma assinatura ativa do Google Cloud Armor Enterprise.

Antes de começar

Antes de configurar os grupos de endereços, é necessário ativar a API Network Security em networksecurity.googleapis.com.

Papéis do IAM

Para criar e gerenciar um grupo de endereços, é necessário ter o papel Administrador de rede do Compute (roles/compute.networkAdmin). Você também pode definir um perfil personalizado com um conjunto equivalente de permissões.

A tabela a seguir apresenta as permissões do Identity and Access Management (IAM) necessárias para executar tarefas em grupos de endereços.

Tarefa Nome do papel do IAM Permissões do IAM
Criar e gerenciar grupos de endereços

Administrador de rede do Compute (roles/compute.networkAdmin)

networksecurity.addressGroups.*
Descobrir e visualizar grupos de endereços

Usuário da rede do Compute (roles/compute.networkUser)

networksecurity.addressGroups.list
networksecurity.addressGroups.get
networksecurity.addressGroups.use

Para mais informações sobre quais papéis incluem permissões específicas do IAM, confira o índice de papéis e permissões do IAM.

Usar grupos de endereços com escopo de projeto

As seções apresentadas a seguir explicam como usar o console do Google Cloud ou a CLI do Google Cloud para criar e modificar grupos de endereços com escopo de projeto, e como utilizar esses grupos em suas políticas de segurança.

Criar ou modificar grupos de endereços com escopo de projeto

As seções a seguir explicam como criar grupos de endereços com escopo de projeto, adicionar e remover endereços desses grupos, e como excluí-los.

Criar um grupo de endereços com escopo de projeto

Para criar um grupo de endereços, é necessário especificar a capacidade e a versão do endereço IP usando as flags --capacity e --type, respectivamente. Esses valores não podem ser alterados depois que o grupo de endereços for criado.

Além disso, a capacidade máxima do Cloud Armor pode ser maior que a de outros produtos, como o Cloud Next Generation Firewall. Dessa forma, se você quiser usar o mesmo grupo de endereços em mais de um produto, é necessário definir a capacidade igual ou inferior à menor capacidade máxima entre esses produtos.

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de projeto.
  3. Clique em Criar grupo de endereços.
  4. No campo Nome, digite um nome.
  5. (Opcional): no campo Descrição, adicione uma descrição.
  6. Em Escopo, escolha Global.
  7. Em Tipo, selecione IPv4 ou IPv6.
  8. Em Finalidade, escolha Cloud Armor ou Firewall e Cloud Armor, se também pretende usar o grupo de endereços com políticas do Cloud Next Generation Firewall.

    Para mais informações sobre como escolher uma finalidade, confira a especificação do grupo de endereços.

  9. No campo Capacidade, informe a capacidade do grupo de endereços.

  10. No campo Endereços IP, liste os endereços IP ou os intervalos de IP que você deseja incluir no grupo de endereços, separando-os por vírgulas. Por exemplo, 1.1.1.0/24,1.2.0.0.

    A quantidade de endereços IP ou intervalos de IP não pode ser maior do que a capacidade configurada.

  11. Clique em Criar.

gcloud

No exemplo abaixo, o comando gcloud network-security address-groups create é usado para criar um grupo de endereços chamado GROUP_NAME, com uma capacidade de 1.000 endereços IPv4, que podem ser usados tanto com o Cloud Armor quando com o Cloud NGFW:

 gcloud network-security address-groups create GROUP_NAME \
     --location global \
     --description  "address group description" \
     --capacity 1000 \
     --type IPv4 \
     --purpose DEFAULT,CLOUD_ARMOR

Outra opção é criar um grupo de endereços com capacidade ampliada, configurando a finalidade exclusivamente como CLOUD_ARMOR. No exemplo a seguir, você cria um grupo de endereços com capacidade para 10.000 intervalos de endereços IP IPv6:

 gcloud network-security address-groups create GROUP_NAME \
     --location global \
     --description  "address group description" \
     --capacity 10000 \
     --type IPv6 \
     --purpose CLOUD_ARMOR

Adicionar itens a um grupo de endereços com escopo de projeto

Depois de criar um grupo de endereços, é possível adicionar itens.

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de projeto.
  3. Para editar um grupo de endereços, clique no nome do grupo.
  4. Clique em Editar.
  5. No campo Endereços IP, adicione os novos itens à lista de endereços IP separada por vírgulas. Outra opção é clicar em Importar endereços para fazer upload de um arquivo CSV com uma lista de endereços IP.
  6. Clique em Salvar.

gcloud

No exemplo a seguir, você usa o comando gcloud network-security address-groups add-items para adicionar os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 ao grupo de endereços GROUP_NAME. Forneça uma lista de itens separada por vírgulas usando a flag --item:

 gcloud network-security address-groups add-items GROUP_NAME \
     --location global \
     --items 192.168.1.2,192.168.1.8,192.168.1.9

Remover itens de um grupo de endereços com escopo de projeto

Siga as etapas abaixo para remover itens de um grupo de endereços:

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de projeto.
  3. Para editar um grupo de endereços, clique no nome do grupo.
  4. Clique em Editar.
  5. No campo Endereços IP, exclua os itens que deseja remover da lista de endereços IP separada por vírgulas.
  6. Clique em Salvar.

gcloud

No exemplo abaixo, o comando gcloud network-security address-groups remove-items é usado para remover os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 adicionados com o comando anterior:

 gcloud network-security address-groups remove-items GROUP_NAME \
     --location global \
     --items 192.168.1.2,192.168.1.8,192.168.1.9

Clonar um grupo de endereços com escopo de projeto

Siga as etapas abaixo para clonar itens de um grupo de endereços:

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de projeto.
  3. Para clonar um grupo de endereços, clique no nome do grupo.
  4. Clique em Clonar.
  5. No campo Nome, insira o novo nome para o grupo de endereços clonado.
  6. Clique em Clonar.

gcloud

No exemplo a seguir, o comando gcloud network-security address-groups clone-items é usado para clonar os endereços IP de um grupo de endereços com a origem SOURCE_GROUP_NAME em um grupo de endereços com o destino GROUP_NAME:

 gcloud network-security address-groups clone-items GROUP_NAME \
     --location global \
     --source SOURCE_GROUP_NAME

Excluir um grupo de endereços com escopo de projeto

Não é possível excluir um grupo de endereços enquanto ele for referenciado por um recurso, como uma política de firewall ou de segurança. Siga as etapas abaixo para excluir um grupo de endereços:

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de projeto.
  3. Marque a caixa de seleção ao lado do grupo de endereços que você deseja excluir. Garanta que o grupo de endereços selecionado não esteja sendo referenciado por políticas de firewall ou de segurança.
  4. Clique em Excluir e depois em Excluir novamente para confirmar.

gcloud

No exemplo abaixo, o comando gcloud network-security address-groups delete é usado para excluir um grupo de endereços chamado GROUP_NAME.

 gcloud network-security address-groups delete GROUP_NAME \
     --location global

Usar grupos de endereços com escopo de projeto em políticas de segurança

Após criar um grupo de endereços e adicionar endereços IP a ele, você pode usá-lo em qualquer política de segurança de back-end do Cloud Armor existente. Os exemplos apresentados a seguir demonstram duas maneiras distintas de usar grupos de endereços.

Negar um grupo de endereços IP

Neste exemplo, imagine que você tem um grupo de endereços IP chamado MALICIOUS_IPS com 10.000 endereços IP mal-intencionados conhecidos. É possível negar todos esses endereços IP usando uma única regra deny, em um política de segurança, com a seguinte condição de correspondência:

evaluateAddressGroup('MALICIOUS_IPS', origin.ip)

Reutilizar um grupo de intervalos de endereços IP em várias políticas de segurança

Neste exemplo, considere que você tem mesma lista de 10.000 endereços IP usada no exemplo anterior, mas alguns desses endereços correspondem a rastreadores da web. Você deseja bloquear todos esses endereços IP de alguns serviços de back-end, mas permitir que os rastreadores da web acessem outros serviços para efetuar melhorias na otimização de mecanismos de pesquisa (SEO). Siga as etapas abaixo para negar o acesso de todos os endereços ao serviço BACKEND_SERVICE_1, enquanto autoriza que os intervalos de endereços IP 66.249.77.32/27 e 66.249.77.64/27 acessem BACKEND_SERVICE_2:

  1. Crie uma política de segurança de back-end chamada POLICY_1 e anexe-a ao BACKEND_SERVICE_1.
  2. Na POLICY_1, crie uma regra deny com a seguinte condição de correspondência:

    evaluateAddressGroup('MALICIOUS_IPS', origin.ip)
    
  3. Crie uma segunda política de segurança de back-end chamada POLICY_2 e anexe-a ao BACKEND_SERVICE_2.

  4. Na POLICY_2, crie uma regra deny com a seguinte condição de correspondência, que exclui 66.249.77.32/27 e 66.249.77.64/27:

    evaluateAddressGroup('MALICIOUS_IPS', origin.ip, [66.249.77.32/27, 66.249.77.64/27])
    

Usar um grupo de endereços para fazer a correspondência com endereços IP de usuários

Para usar um grupo de endereços na correspondência com os endereços IP de origem dos clientes (“usuário”), é necessário configurar userIpRequestHeaders[] na política de segurança.

Vale destacar que, nas condições apresentadas a seguir, o sistema retorna o endereço IP de origem da solicitação em vez do IP de origem do cliente, pois o valor de origin.user_ip usa, por padrão, o valor de origin.ip:

  • A opção userIpRequestHeaders[] não foi configurada.
  • Os cabeçalhos configurados não estão presentes.
  • Os cabeçalhos configurados contêm valores de endereços IP inválidos.

Neste exemplo, imagine que você tem um grupo de endereços IP chamado MALICIOUS_IPS com 10.000 endereços IP mal-intencionados conhecidos. Além disso, você usa um proxy que atua na etapa anterior da conexão, e contém informações sobre a origem dos clientes no cabeçalho. É possível negar todos esses endereços IP usando uma única regra deny, em um política de segurança, com a seguinte condição de correspondência:

evaluateAddressGroup('MALICIOUS_IPS', origin.user_ip)

Para mais informações sobre endereços IP, consulte Atributos.

Para mais informações sobre endereços IP de usuários, consulte Visão geral dos endereços IP de usuários.

Usar grupos de endereços com escopo de organização

As seções apresentadas a seguir explicam como criar e modificar grupos de endereços com escopo de organização usando o console do Google Cloud ou a CLI do Google Cloud, e como utilizar esses grupos em suas políticas de segurança.

Criar ou modificar grupos de endereços com escopo de organização

É possível usar grupos de endereços com escopo de organização tanto em políticas de segurança a nível de serviço quanto em políticas de segurança hierárquicas.

As seções a seguir explicam como criar grupos de endereços com escopo de organização, adicionar e remover endereços desses grupos, e como excluí-los.

Criar um grupo de endereços com escopo de organização

Para criar um grupo de endereços, é necessário especificar a capacidade e a versão do endereço IP usando as flags --capacity e --type, respectivamente. Esses valores não podem ser alterados depois que o grupo de endereços for criado.

Além disso, a capacidade máxima do Cloud Armor pode ser maior que a de outros produtos, como o Cloud Next Generation Firewall. Dessa forma, se você quiser usar o mesmo grupo de endereços em mais de um produto, é necessário definir a capacidade igual ou inferior à menor capacidade máxima entre esses produtos.

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de organização.
  3. Clique em Criar grupo de endereços.
  4. No campo Nome, digite um nome.
  5. Opcional: no campo Descrição, adicione uma descrição.
  6. Em Escopo, escolha Global.
  7. Em Tipo, selecione IPv4 ou IPv6.
  8. Em Finalidade, escolha Cloud Armor ou Cloud NGFW e Cloud Armor, se também pretende usar o grupo de endereços com políticas do Cloud Next Generation Firewall.

    Para mais informações sobre como escolher uma finalidade para um grupo de endereços, confira Especificação.

  9. No campo Capacidade, informe a capacidade do grupo de endereços.

  10. No campo Endereços IP, liste os endereços IP ou os intervalos de IP que você deseja incluir no grupo de endereços, separando-os por vírgulas. Por exemplo, 1.1.1.0/24,1.2.0.0.

    A quantidade de endereços IP ou intervalos de IP não pode ser maior do que a capacidade configurada.

  11. Clique em Criar.

gcloud

No exemplo abaixo, o comando gcloud network-security org-address-groups create é usado para criar um grupo de endereços chamado GROUP_NAME, com uma capacidade de 1.000 endereços IPv4, que podem ser usados tanto com o Cloud Armor quando com o Cloud NGFW:

 gcloud network-security org-address-groups create GROUP_NAME \
     --location global \
     --description  "org address group description" \
     --capacity 1000 \
     --type IPv4 \
     --purpose DEFAULT,CLOUD_ARMOR

Outra opção é criar um grupo de endereços com escopo de organização com capacidade ampliada, configurando a finalidade exclusivamente como CLOUD_ARMOR. No exemplo a seguir, você cria um grupo de endereços com capacidade para 10.000 intervalos de endereços IPv6:

 gcloud network-security org-address-groups create GROUP_NAME \
     --location global \
     --description  "org address group description" \
     --capacity 10000 \
     --type IPv6 \
     --purpose CLOUD_ARMOR

Adicionar itens a um grupo de endereços com escopo de organização

Depois de criar um grupo de endereços com escopo de organização, é possível adicionar itens.

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de organização.
  3. Para editar um grupo de endereços, clique no nome do grupo.
  4. Clique em Editar.
  5. No campo Endereços IP, adicione os novos itens à lista de endereços IP separada por vírgulas. Outra opção é clicar em Importar endereços para fazer upload de um arquivo CSV com uma lista de endereços IP.
  6. Clique em Salvar.

gcloud

No exemplo a seguir, você usa o comando gcloud network-security org-address-groups add-items para adicionar os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 ao grupo de endereços com escopo de organização GROUP_NAME. Forneça uma lista de itens separada por vírgulas usando a flag --items:

 gcloud network-security org-address-groups add-items GROUP_NAME \
     --location global \
     --items 192.168.1.2,192.168.1.8,192.168.1.9

Remover itens de um grupo de endereços com escopo de organização

Siga as etapas abaixo para remover itens de um grupo de endereços com escopo de organização:

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de organização.
  3. Para editar um grupo de endereços, clique no nome do grupo.
  4. Clique em Editar.
  5. No campo Endereços IP, exclua os itens que deseja remover da lista de endereços IP separada por vírgulas.
  6. Clique em Salvar.

gcloud

No exemplo abaixo, o comando gcloud network-security org-address-groups remove-items é usado para remover os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 adicionados com o comando anterior:

 gcloud network-security org-address-groups remove-items GROUP_NAME \
     --location global \
     --items 192.168.1.2,192.168.1.8,192.168.1.9

Clonar um grupo de endereços com escopo de organização

Siga as etapas abaixo para clonar itens de um grupo de endereços:

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de organização.
  3. Para clonar um grupo de endereços, clique no nome do grupo.
  4. Clique em Clonar.
  5. No campo Nome, insira o novo nome para o grupo de endereços clonado.
  6. Clique em Clonar.

gcloud

No exemplo a seguir, o comando gcloud network-security org-address-groups clone-items é usado para clonar os endereços IP de um grupo de endereços com a origem SOURCE_GROUP_NAME em um grupo de endereços com o destino GROUP_NAME:

 gcloud network-security org-address-groups clone-items GROUP_NAME \
     --location global \
     --source SOURCE_GROUP_NAME

Excluir um grupo de endereços com escopo de organização

Não é possível excluir um grupo de endereços com escopo de organização enquanto ele for referenciado por um recurso, como uma política de firewall ou de segurança. Siga as etapas abaixo para excluir um grupo de endereços:

Console

  1. No console do Google Cloud , acesse a página Grupos de endereços.

    Acessar a página Grupos de endereços

  2. Se disponível, selecione seu projeto no menu de seleção de organização.
  3. Marque a caixa de seleção ao lado do grupo de endereços que você deseja excluir. Garanta que o grupo de endereços selecionado não esteja sendo referenciado por políticas de firewall ou de segurança.
  4. Clique em Excluir e depois em Excluir novamente para confirmar.

gcloud

No exemplo abaixo, o comando gcloud network-security org-address-groups delete é usado para excluir um grupo de endereços chamado GROUP_NAME.

 gcloud network-security org-address-groups delete GROUP_NAME \
     --location global

Usar grupos de endereços com escopo de organização em políticas de segurança

Após criar um grupo de endereços e adicionar endereços IP a ele, você pode usá-lo em qualquer política de segurança de back-end do Cloud Armor existente. Os exemplos apresentados a seguir demonstram duas maneiras distintas de usar grupos de endereços.

Negar um grupo de endereços IP para todos os serviços de back-end em uma organização

Neste exemplo, imagine que você tem um grupo de endereços IP com escopo de organização chamado MALICIOUS_IPS com 10.000 endereços IP mal-intencionados conhecidos. É possível negar todos esses endereços IP para todos os serviços de back-end da sua organização usando uma única política de segurança hierárquica. Crie uma política de segurança hierárquica e depois adicione uma regra deny com a seguinte condição de correspondência:

evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)

Por último, associe a política de segurança hierárquica a todos os serviços de back-end da organização, substituindo POLICY_NAME pelo nome da sua política de segurança hierárquica e ORGANIZATION_ID pelo ID da sua organização:

  gcloud compute org-security-policies associations create \
      --security-policy=POLICY_NAME \
      --organization=ORGANIZATION_ID

Reutilizar um grupo de intervalos de endereços IP para todos os serviços de back-end em uma organização

Neste exemplo, considere que você tem mesma lista de 10.000 endereços IP usada no exemplo anterior, mas alguns desses endereços correspondem a rastreadores da web. Seu objetivo é bloquear o acesso de endereços IP de rastreadores que não são provenientes da web a todos os serviços de back-end da organização, mas permitir que as políticas de segurança com escopo de projeto determinem se os rastreadores da web podem acessar os serviços de back-end para efetuar melhorias na otimização de mecanismos de pesquisa (SEO).

Siga as etapas abaixo para negar o acesso de todos os endereços ao serviço BACKEND_SERVICE_1, enquanto autoriza que os intervalos de endereços IP 66.249.77.32/27 e 66.249.77.64/27 acessem BACKEND_SERVICE_2:

  1. Crie uma política de segurança de back-end chamada BACKEND_POLICY_1.
  2. Adicione uma regra deny à BACKEND_POLICY_1 com a seguinte condição de correspondência, que bloqueia todos os endereços IP no grupo MALICIOUS_IPS:

    evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)
    
  3. Use o seguinte comando para associar BACKEND_POLICY_1 ao BACKEND_SERVICE_1:

     gcloud compute backend-services update BACKEND_SERVICE_1 \
         --security-policy BACKEND_POLICY_1
    
  4. Crie uma segunda política de segurança de back-end chamada BACKEND_POLICY_2.

  5. Adicione uma regra deny à BACKEND_POLICY_2 com a seguinte condição de correspondência, que bloqueia todos os endereços IP no grupo MALICIOUS_IPS, exceto 66.249.77.32/27 e 66.249.77.64/27:

    evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip, [`66.249.77.32/27`, `66.249.77.64/27`])
    
  6. Use o comando apresentado a seguir para associar BACKEND_POLICY_2 ao BACKEND_SERVICE_2: Substitua ORG_ID pelo ID da sua organização:

     gcloud compute backend-services update BACKEND_SERVICE_2 \
         --security-policy BACKEND_POLICY_2
    

Usar um grupo de endereços para corresponder aos endereços IP dos usuários de todos os serviços de back-end em uma organização

Neste exemplo, imagine que você tem um grupo de endereços IP chamado MALICIOUS_IPS com 10.000 endereços IP mal-intencionados conhecidos. Além disso, você usa um proxy que atua na etapa anterior da conexão, e contém informações sobre os endereços IP dos clientes de origem no cabeçalho. É possível negar o acesso de todos esses endereços IP aos serviços de back-end da sua organização usando uma única regra deny em uma política de segurança, com a seguinte condição de correspondência:

evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.user_ip)

Para mais informações sobre endereços IP, consulte Atributos.

Para mais informações sobre endereços IP de usuários, consulte Visão geral dos endereços IP de usuários.

A seguir