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 vários produtos. Este documento mostra como usar grupos de endereços com políticas de segurança do Google Cloud Armor. Você precisa de uma assinatura ativa do Google Cloud Armor Enterprise para usar grupos de endereços.

Antes de começar

Antes de configurar grupos de endereços, ative a API Network Security networksecurity.googleapis.com.

Papéis IAM

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

Veja na tabela a seguir uma lista de permissões do Identity and Access Management (IAM) necessárias para executar um conjunto de tarefas em grupos de endereços.

Tarefa Nome do papel do IAM Permissões IAM
Criar e gerenciar grupos de endereços Administrador de rede do Compute (roles/compute.networkAdmin) networksecurity.addressGroups.*
Descobrir e ver 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 do IAM específicas, consulte o Índice de papéis e permissões do IAM.

Usar grupos de endereços com escopo do projeto

As seções a seguir explicam como criar e modificar grupos de endereços com escopo de projeto e como usá-los com 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, como adicionar e remover endereços deles e como excluí-los.

Criar um grupo de endereços com escopo de projeto

Ao 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. Não é possível mudar esses valores depois de criar o grupo de endereços.

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

Console

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

    Acesse "Grupos de endereços"

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

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

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

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

    O número de endereços ou intervalos de IP não pode exceder a capacidade configurada.

  11. Clique em Criar.

gcloud

Use o seguinte exemplo de comando gcloud network-security address-groups create para criar um grupo de endereços chamado GROUP_NAME com capacidade para 1.000 endereços IPv4, que pode ser usado com o Google Cloud Armor ou 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

Como alternativa, é possível criar um grupo de endereços com uma capacidade maior definindo 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 usando o console do Google Cloud ou o comando gcloud network-security address-groups add-items.

Console

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

    Acesse "Grupos de endereços"

  2. No menu do seletor de projetos, selecione seu projeto, se disponível.
  3. Para editar um grupo de endereços, clique no nome dele.
  4. Clique em Editar.
  5. No campo Endereços IP, adicione os novos itens à lista de endereços IP separados por vírgulas. Se preferir, clique 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ê adiciona os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 ao grupo de endereços GROUP_NAME. Você fornece uma lista separada por vírgulas de itens com 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

É possível remover itens de um grupo de endereços usando o console Google Cloud ou o comando gcloud network-security address-groups remove-items.

Console

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

    Acesse "Grupos de endereços"

  2. No menu do seletor de projetos, selecione seu projeto, se disponível.
  3. Para editar um grupo de endereços, clique no nome dele.
  4. Clique em Editar.
  5. No campo Endereços IP, exclua os itens que você quer remover da lista de endereços IP separados por vírgulas.
  6. Clique em Salvar.

gcloud

O comando a seguir remove os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 que você adicionou no 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

Excluir um grupo de endereços com escopo de projeto

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

Console

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

    Acesse "Grupos de endereços"

  2. No menu do seletor de projetos, selecione seu projeto, se disponível.
  3. Marque a caixa de seleção ao lado do grupo de endereços que você quer excluir. Verifique se o grupo de endereços selecionado não é referenciado por nenhuma política de firewall ou de segurança.
  4. Clique em Excluir, depois em Excluir novamente para confirmar.

gcloud

O exemplo a seguir usa o comando gcloud network-security address-groups delete 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 do projeto com políticas de segurança

Depois de criar um grupo de endereços e adicionar endereços IP a ele, é possível usá-lo com qualquer política de segurança de back-end do Google Cloud Armor. Os exemplos a seguir mostram duas maneiras diferentes 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 que você sabe serem maliciosos. É possível negar todos esses endereços IP usando uma única regra de política de segurança deny 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, imagine que você tem a mesma lista de 10.000 endereços IP do exemplo anterior, mas que alguns deles são rastreadores da Web conhecidos. Você quer bloquear todos esses endereços IP de alguns serviços de back-end, mas permitir que os rastreadores da Web acessem outros serviços de back-end para melhorar a otimização de mecanismos de pesquisa (SEO). Siga estas etapas para negar o acesso de todos os endereços a BACKEND_SERVICE_1, permitindo 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 a BACKEND_SERVICE_1.
  2. Em 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 a BACKEND_SERVICE_2.

  4. Em 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 e fazer a correspondência com os endereços IP do cliente de origem ("usuário"), configure userIpRequestHeaders[] na política de segurança.

É importante observar que, nas seguintes condições, você recebe o endereço IP de origem da solicitação e não o endereço IP do cliente de origem, porque o valor de origin.user_ip é definido como padrão para o valor de origin.ip:

  • Não configure a opção userIpRequestHeaders[].
  • Os cabeçalhos configurados não estão presentes.
  • Os cabeçalhos configurados contêm valores de endereço IP inválidos.

Neste exemplo, imagine que você tem um grupo de endereços IP chamado MALICIOUS_IPS com 10.000 endereços IP que você sabe serem maliciosos. Além disso, você usa um proxy upstream, que inclui informações sobre os clientes de origem no cabeçalho. É possível negar todos esses endereços IP usando uma única regra de política de segurança deny com a seguinte condição de correspondência:

evaluateAddressGroup('MALICIOUS_IPS', origin.user_ip)

Para mais informações sobre endereços IP de usuários, consulte Atributos.

Usar grupos de endereços no escopo da organização

As seções a seguir explicam como criar e modificar grupos de endereços no escopo da organização e como usar esses grupos com suas políticas de segurança.

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

Os grupos de endereços com escopo da organização podem ser usados com políticas de segurança no nível do serviço e hierárquicas.

As seções a seguir explicam como criar, adicionar e remover endereços e excluir grupos de endereços no escopo da organização.

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

Ao 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. Não é possível mudar esses valores depois de criar o grupo de endereços.

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

Console

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

    Acesse "Grupos de endereços"

  2. No menu do seletor de projetos, selecione sua organização, se disponível.
  3. Clique em Criar grupo de endereços.
  4. Digite um nome no campo Nome.
  5. Opcional: no campo Descrição, adicione uma descrição.
  6. Em Escopo, escolha Global.
  7. Em Tipo, escolha IPv4 ou IPv6.
  8. Em Finalidade, escolha Cloud Armor ou Cloud NGFW e Cloud Armor se você também planeja 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, consulte Especificação.

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

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

    O número de endereços ou intervalos de IP não pode exceder a capacidade configurada.

  11. Clique em Criar.

gcloud

Use o seguinte exemplo de comando gcloud network-security org-address-groups create para criar um grupo de endereços no escopo da organização chamado GROUP_NAME com capacidade para 1.000 endereços IPv4, que pode ser usado com o Google Cloud Armor ou o Cloud NGFW:

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

Como alternativa, crie um grupo de endereços no escopo da organização com uma capacidade maior definindo 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 beta 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 no escopo da organização

Depois de criar um grupo de endereços no escopo da organização, é possível adicionar itens usando o console Google Cloud ou o comando gcloud network-security org-address-groups add-items.

Console

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

    Acesse "Grupos de endereços"

  2. No menu do seletor de projetos, selecione sua organização, se disponível.
  3. Para editar um grupo de endereços, clique no nome dele.
  4. Clique em Editar.
  5. No campo Endereços IP, adicione os novos itens à lista de endereços IP separados por vírgulas. Se preferir, clique 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ê adiciona os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 ao grupo de endereços no escopo da organização GROUP_NAME. Você fornece uma lista separada por vírgulas de itens com 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 no escopo da organização

É possível remover itens de um grupo de endereços no escopo da organização usando o console doGoogle Cloud ou o comando gcloud network-security org-address-groups remove-items.

Console

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

    Acesse "Grupos de endereços"

  2. No menu do seletor de projetos, selecione sua organização, se disponível.
  3. Para editar um grupo de endereços, clique no nome dele.
  4. Clique em Editar.
  5. No campo Endereços IP, exclua os itens que você quer remover da lista de endereços IP separados por vírgulas.
  6. Clique em Salvar.

gcloud

O comando a seguir remove os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 que você adicionou no 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

Excluir um grupo de endereços no escopo da organização

Não é possível excluir um grupo de endereços no escopo da organização se ele for referenciado por um recurso, incluindo uma política de firewall ou de segurança. Siga estas etapas para excluir um grupo de endereços:

Console

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

    Acesse "Grupos de endereços"

  2. No menu do seletor de projetos, selecione sua organização, se disponível.
  3. Marque a caixa de seleção ao lado do grupo de endereços que você quer excluir. Verifique se o grupo de endereços selecionado não é referenciado por nenhuma política de firewall ou de segurança.
  4. Clique em Excluir, depois em Excluir novamente para confirmar.

gcloud

O exemplo a seguir usa o comando gcloud network-security org-address-groups delete 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 no escopo da organização com políticas de segurança

Depois de criar um grupo de endereços e adicionar endereços IP a ele, é possível usá-lo com qualquer política de segurança de back-end do Google Cloud Armor. Os exemplos a seguir mostram duas maneiras diferentes 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 no escopo da organização chamado MALICIOUS_IPS com 10.000 endereços IP que você sabe que são maliciosos. É possível negar todos esses endereços IP para todos os serviços de back-end na sua organização usando uma única política de segurança hierárquica. Crie uma política de segurança hierárquica e adicione uma regra deny com a seguinte condição de correspondência:

evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)

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

  gcloud beta 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, imagine que você tem a mesma lista de 10.000 endereços IP do exemplo anterior, mas que alguns deles são rastreadores da Web conhecidos. Você quer bloquear o acesso de endereços IP de rastreadores não da Web a todos os serviços de back-end da sua organização, mas quer permitir que as políticas de segurança no escopo do projeto determinem se os rastreadores da Web podem acessar seus serviços de back-end para melhorar a otimização de mecanismos de pesquisa (SEO).

Siga estas etapas para negar o acesso de todos os endereços a BACKEND_SERVICE_1, permitindo 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 a BACKEND_POLICY_1 com a seguinte condição de correspondência, que bloqueia todos os endereços IP em MALICIOUS_IPS:

    evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)
    
  3. Use o comando a seguir para associar BACKEND_POLICY_1 a 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 a BACKEND_POLICY_2 com a seguinte condição de correspondência, que bloqueia todos os endereços IP em 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 a seguir para associar BACKEND_POLICY_2 a BACKEND_SERVICE_2. Substitua ORG_ID pelo ID da 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 que você sabe serem maliciosos. Além disso, você usa um proxy upstream, que inclui informações sobre o endereço IP do cliente de origem no cabeçalho. É possível negar o acesso de todos esses endereços IP a todos os serviços de back-end da sua organização usando uma única regra de política de segurança deny com a seguinte condição de correspondência:

evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.user_ip)

Para mais informações sobre endereços IP de usuários, consulte Atributos.

A seguir