Configure grupos de endereços

Os grupos de endereços permitem-lhe combinar vários endereços IP e intervalos de endereços IP numa única unidade lógica com nome, que pode usar em vários produtos. Este documento mostra como usar grupos de endereços com políticas de segurança do Google Cloud Armor. Precisa de uma subscrição ativa do Google Cloud Armor Enterprise para usar grupos de endereços.

Antes de começar

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

Funções de IAM

Para criar e gerir um grupo de endereços, precisa da função de administrador de rede de computação (roles/compute.networkAdmin). Também pode definir uma função personalizada com um conjunto equivalente de autorizações.

A tabela seguinte fornece uma lista de autorizações da gestão de identidade e de acesso (IAM) necessárias para realizar um conjunto de tarefas em grupos de endereços.

Tarefa Nome da função de IAM Autorizações de IAM
Crie e faça a gestão de grupos de endereços Administrador de rede de Calcular (roles/compute.networkAdmin) networksecurity.addressGroups.*
Descubra e veja grupos de endereços Utilizador da rede de computação (roles/compute.networkUser) networksecurity.addressGroups.list

networksecurity.addressGroups.get

networksecurity.addressGroups.use

Para mais informações sobre as funções que incluem autorizações de IAM específicas, consulte o índice de funções e autorizações de IAM.

Use grupos de endereços ao nível do projeto

As secções seguintes explicam como usar a Google Cloud consola ou a CLI Google Cloud para criar e modificar grupos de endereços ao nível do projeto, e como usar grupos de endereços ao nível do projeto com as suas políticas de segurança.

Crie ou modifique grupos de endereços ao nível do projeto

As secções seguintes explicam como criar grupos de endereços ao nível do projeto, como adicionar e remover endereços de grupos de endereços ao nível do projeto e como eliminar grupos de endereços ao nível do projeto.

Crie um grupo de endereços com âmbito do projeto

Quando cria um grupo de endereços, tem de especificar a respetiva capacidade e versão do endereço IP através dos flags --capacity e --type, respetivamente. Não pode alterar estes valores depois de criar o grupo de moradas.

Além disso, a capacidade máxima do Cloud Armor pode ser superior à capacidade máxima de outros produtos, como a firewall de nova geração do Google Cloud. Por conseguinte, se quiser usar o mesmo grupo de endereços em mais do que um produto, tem de definir a capacidade como inferior ou igual à capacidade máxima mais baixa entre esses produtos.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

  2. No menu do seletor de projetos, se disponível, selecione o seu projeto.
  3. Clique em Criar grupo de moradas.
  4. No campo Nome, introduza um nome.
  5. (Opcional): no campo Descrição, adicione uma descrição.
  6. Para Âmbito, escolha Global.
  7. Em Tipo, escolha IPv4 ou IPv6.
  8. Para Finalidade, escolha Cloud Armor; em alternativa, escolha Firewall e Cloud Armor se também planear usar o grupo de endereços com políticas de firewall de nova geração do Google Cloud.

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

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

  10. No campo Endereços IP, liste os endereços IP ou os intervalos de IP que 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 IP ou intervalos de IP não pode exceder a capacidade configurada.

  11. Clique em Criar.

gcloud

O exemplo seguinte usa o comando gcloud network-security address-groups create para criar um grupo de endereços denominado GROUP_NAME com uma capacidade de 1000 endereços IPv4, que podem ser usados com o 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

Em alternativa, pode criar um grupo de endereços com uma capacidade maior definindo o objetivo exclusivamente como CLOUD_ARMOR. No exemplo seguinte, cria um grupo de endereços com uma capacidade de 10 000 intervalos de IPv6endereços IP:

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

Adicione itens a um grupo de endereços com âmbito do projeto

Depois de criar um grupo de endereços, pode adicionar artigos.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

  2. No menu do seletor de projetos, se disponível, selecione o seu projeto.
  3. Para editar um grupo de moradas, clique no nome do grupo de moradas.
  4. Clique em Edit.
  5. No campo Endereços IP, adicione os novos itens à lista de endereços IP separados por vírgulas. Em alternativa, pode clicar em Importar endereços para carregar um ficheiro CSV com uma lista de endereços IP.
  6. Clique em Guardar.

gcloud

No exemplo seguinte, 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. Fornece uma lista de itens separados por vírgulas 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

Remova itens de um grupo de endereços ao nível do projeto

Siga estes passos para remover itens de um grupo de endereços:

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

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

gcloud

O exemplo seguinte usa o comando gcloud network-security address-groups remove-items para remover os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 que 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

Clone um grupo de endereços com âmbito do projeto

Siga estes passos para clonar itens de um grupo de endereços:

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

  2. No menu do seletor de projetos, se disponível, selecione o seu projeto.
  3. Para clonar um grupo de moradas, clique no nome do grupo de moradas.
  4. Clique em Clonar.
  5. No campo Nome, introduza o nome do grupo de moradas clonado a criar.
  6. Clique em Clonar.

gcloud

No exemplo seguinte, usa o comando gcloud network-security address-groups clone-items para clonar os endereços IP de um grupo de endereços de origem SOURCE_GROUP_NAME para um grupo de endereços de destino GROUP_NAME:

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

Elimine um grupo de endereços com âmbito do projeto

Não pode eliminar um grupo de endereços se for referenciado por um recurso, incluindo uma política de firewall ou uma política de segurança. Siga estes passos para eliminar um grupo de endereços:

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

  2. No menu do seletor de projetos, se disponível, selecione o seu projeto.
  3. Selecione a caixa de verificação junto ao grupo de moradas que quer eliminar. Certifique-se de que o grupo de endereços selecionado não é referenciado por nenhuma firewall ou política de segurança.
  4. Clique em Eliminar e, de seguida, clique novamente em Eliminar para confirmar.

gcloud

O exemplo seguinte usa o comando gcloud network-security address-groups delete para eliminar um grupo de endereços denominado GROUP_NAME.

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

Use grupos de endereços com âmbito do projeto com políticas de segurança

Depois de criar um grupo de endereços e adicionar-lhe endereços IP, pode usá-lo com qualquer política de segurança de back-end do Cloud Armor existente. Os exemplos que se seguem mostram duas formas diferentes de usar grupos de moradas.

Recuse um grupo de endereços IP

Para este exemplo, imagine que tem um grupo de endereços IP denominado MALICIOUS_IPS com 10 000 endereços IP que sabe que são maliciosos. Pode negar todos estes endereços IP através de uma única regra de política de segurança deny com a seguinte condição de correspondência:

evaluateAddressGroup('MALICIOUS_IPS', origin.ip)

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

Para este exemplo, imagine que tem a mesma lista de 10 000 endereços IP do exemplo anterior, mas que alguns dos endereços IP são conhecidos por serem motores de rastreio da Web. Quer bloquear todos estes endereços IP de alguns serviços de back-end, mas permitir que os motores de rastreio da Web acedam a outros serviços de back-end para melhorar a otimização do motor de pesquisa (SEO). Siga estes passos para negar o acesso de todos os endereços a BACKEND_SERVICE_1, ao mesmo tempo que permite que os intervalos de endereços IP 66.249.77.32/27 e 66.249.77.64/27 acedam a BACKEND_SERVICE_2:

  1. Crie uma política de segurança do back-end denominada 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 do back-end denominada 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])
    

Use um grupo de endereços para fazer a correspondência com os endereços IP dos utilizadores

Para usar um grupo de endereços para fazer a correspondência com os endereços IP do cliente de origem ("utilizador"), tem de configurar userIpRequestHeaders[] na política de segurança.

É importante ter em atenção que, nas seguintes condições, recebe o endereço IP de origem do pedido e não o endereço IP do cliente de origem, porque o valor de origin.user_ip é predefinido para o valor de origin.ip:

  • Não configurar 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.

Para este exemplo, imagine que tem um grupo de endereços IP denominado MALICIOUS_IPS com 10 000 endereços IP que sabe que são maliciosos. Além disso, usa um proxy a montante, que inclui informações sobre os clientes de origem no cabeçalho. Pode negar todos estes endereços IP através de uma única regra deny da política de segurança com a seguinte condição de correspondência:

evaluateAddressGroup('MALICIOUS_IPS', origin.user_ip)

Para mais informações sobre os endereços IP dos utilizadores, consulte a secção Atributos.

Use grupos de moradas ao nível da organização

As secções seguintes explicam como criar e modificar grupos de endereços com âmbito da organização através da Google Cloud consola ou da CLI Google Cloud, e como usar grupos de endereços com âmbito da organização com as suas políticas de segurança.

Crie ou modifique grupos de moradas ao nível da organização

Pode usar grupos de endereços com âmbito da organização com políticas de segurança ao nível do serviço e políticas de segurança hierárquicas.

As secções seguintes explicam como criar grupos de moradas ao nível da organização, como adicionar e remover moradas de grupos de moradas ao nível da organização e como eliminar grupos de moradas ao nível da organização.

Crie um grupo de endereços ao nível da organização

Quando cria um grupo de endereços, tem de especificar a respetiva capacidade e versão do endereço IP através dos flags --capacity e --type, respetivamente. Não pode alterar estes valores depois de criar o grupo de moradas.

Além disso, a capacidade máxima do Cloud Armor pode ser superior à capacidade máxima de outros produtos, como a firewall de nova geração do Google Cloud. Por conseguinte, se quiser usar o mesmo grupo de endereços em mais do que um produto, tem de definir a capacidade como inferior ou igual à capacidade máxima mais baixa entre esses produtos.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

  2. No menu do seletor de projetos, se disponível, selecione a sua organização.
  3. Clique em Criar grupo de moradas.
  4. No campo Nome, introduza um nome.
  5. Opcional: no campo Descrição, adicione uma descrição.
  6. Para Âmbito, escolha Global.
  7. Em Tipo, escolha IPv4 ou IPv6.
  8. Para Finalidade, escolha Cloud Armor; em alternativa, escolha Cloud NGFW e Cloud Armor se também planear usar o grupo de endereços com políticas de firewall de nova geração na nuvem.

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

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

  10. No campo Endereços IP, liste os endereços IP ou os intervalos de IP que 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 IP ou intervalos de IP não pode exceder a capacidade configurada.

  11. Clique em Criar.

gcloud

O exemplo seguinte usa o comando gcloud network-security org-address-groups create para criar um grupo de endereços com âmbito da organização denominado GROUP_NAME com uma capacidade de 1000 endereços IPv4, que pode ser usado com o 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

Em alternativa, pode criar um grupo de endereços ao nível da organização com uma capacidade superior definindo a finalidade exclusivamente como CLOUD_ARMOR. No exemplo seguinte, cria um grupo de endereços com uma capacidade de 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

Adicione itens a um grupo de moradas ao nível da organização

Depois de criar um grupo de endereços ao nível da organização, pode adicionar itens.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

  2. No menu do seletor de projetos, se disponível, selecione a sua organização.
  3. Para editar um grupo de moradas, clique no nome do grupo de moradas.
  4. Clique em Edit.
  5. No campo Endereços IP, adicione os novos itens à lista de endereços IP separados por vírgulas. Em alternativa, pode clicar em Importar endereços para carregar um ficheiro CSV com uma lista de endereços IP.
  6. Clique em Guardar.

gcloud

No exemplo seguinte, 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 âmbito da organização GROUP_NAME. Fornece uma lista de itens separados por vírgulas 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

Remova itens de um grupo de endereços ao nível da organização

Siga estes passos para remover itens de um grupo de endereços com âmbito na organização:

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

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

gcloud

O exemplo seguinte usa o comando gcloud network-security org-address-groups remove-items para remover os endereços IP 192.168.1.2, 192.168.1.8 e 192.168.1.9 que 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

Clone um grupo de moradas ao nível da organização

Siga estes passos para clonar itens de um grupo de endereços:

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

  2. No menu do seletor de projetos, se disponível, selecione a sua organização.
  3. Para clonar um grupo de moradas, clique no nome do grupo de moradas.
  4. Clique em Clonar.
  5. No campo Nome, introduza o nome do grupo de moradas clonado a criar.
  6. Clique em Clonar.

gcloud

No exemplo seguinte, usa o comando gcloud network-security org-address-groups clone-items para clonar os endereços IP de um grupo de endereços de origem SOURCE_GROUP_NAME num grupo de endereços de destino GROUP_NAME:

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

Elimine um grupo de endereços com âmbito da organização

Não pode eliminar um grupo de endereços ao nível da organização se for referenciado por um recurso, incluindo uma política de firewall ou uma política de segurança. Siga os passos seguintes para eliminar um grupo de moradas:

Consola

  1. Na Google Cloud consola, aceda à página Grupos de endereços.

    Aceda a Grupos de endereços

  2. No menu do seletor de projetos, se disponível, selecione a sua organização.
  3. Selecione a caixa de verificação junto ao grupo de moradas que quer eliminar. Certifique-se de que o grupo de endereços selecionado não é referenciado por nenhuma política de firewall ou de segurança.
  4. Clique em Eliminar e, de seguida, clique novamente em Eliminar para confirmar.

gcloud

O exemplo seguinte usa o comando gcloud network-security org-address-groups delete para eliminar um grupo de endereços denominado GROUP_NAME.

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

Use grupos de endereços com âmbito da organização com políticas de segurança

Depois de criar um grupo de endereços e adicionar-lhe endereços IP, pode usá-lo com qualquer política de segurança de back-end do Cloud Armor existente. Os exemplos seguintes mostram duas formas diferentes de usar grupos de moradas.

Recuse um grupo de endereços IP para todos os serviços de back-end numa organização

Para este exemplo, imagine que tem um grupo de endereços IP ao nível da organização denominado MALICIOUS_IPS com 10 000 endereços IP que sabe serem maliciosos. Pode negar todos estes endereços IP para todos os serviços de back-end na sua organização através de uma única política de segurança hierárquica. Crie uma política de segurança hierárquica e, em seguida, adicione uma regra com a seguinte condição de correspondência:deny

evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)

Por último, associe a política de segurança hierárquica a todos os serviços de back-end na sua 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 beta compute org-security-policies associations create \
      --security-policy=POLICY_NAME \
      --organization=ORGANIZATION_ID

Reutilize um grupo de intervalos de endereços IP para todos os serviços de back-end numa organização

Para este exemplo, imagine que tem a mesma lista de 10 000 endereços IP do exemplo anterior, mas que alguns dos endereços IP são conhecidos por serem motores de rastreio da Web. Quer bloquear os endereços IP do motor de rastreio não Web de aceder a todos os serviços de back-end na sua organização, mas quer permitir que as políticas de segurança ao nível do projeto determinem se os motores de rastreio da Web podem aceder aos seus serviços de back-end para melhorar a otimização do motor de pesquisa (SEO).

Siga estes passos para negar o acesso de todos os endereços a BACKEND_SERVICE_1, ao mesmo tempo que permite que os intervalos de endereços IP 66.249.77.32/27 e 66.249.77.64/27 acedam a BACKEND_SERVICE_2:

  1. Crie uma política de segurança do back-end denominada 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 seguinte comando 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 do back-end denominada 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 seguinte comando para associar BACKEND_POLICY_2 a 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
    

Use um grupo de endereços para fazer a correspondência com os endereços IP dos utilizadores para todos os serviços de back-end numa organização

Para este exemplo, imagine que tem um grupo de endereços IP denominado MALICIOUS_IPS com 10 000 endereços IP que sabe que são maliciosos. Além disso, usa um proxy a montante, que inclui informações sobre o endereço IP do cliente de origem no cabeçalho. Pode negar o acesso de todos estes endereços IP a todos os serviços de back-end na sua organização através de 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 os endereços IP dos utilizadores, consulte a secção Atributos.

O que se segue?