Os grupos de endereços permitem 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 (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 | compute.networkAdmin
|
networksecurity.addressGroups.* |
Descobrir e ver grupos de endereços | compute.networkUser |
networksecurity.addressGroups.list
|
Para mais informações sobre quais papéis incluem permissões do IAM específicas, consulte a Referência de permissões do IAM.
Criar ou modificar grupos de endereços
As seções a seguir explicam como criar, adicionar e remover endereços de grupos de endereços e como excluir grupos de endereços.
Criar um grupo de endereços
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 capacidade máxima 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 para ser menor ou igual à capacidade máxima mais baixa entre esses produtos.
No console do Google Cloud, acesse a página Grupos de endereços.
No menu do seletor de projetos, se disponível, selecione seu projeto.
Clique em Criar grupo de endereços.
Digite um nome no campo Nome.
(Opcional) No campo Descrição, adicione uma descrição.
Em Escopo, escolha Global.
Em Tipo, escolha IPv4 ou IPv6.
Em Finalidade, escolha Cloud Armor. Como alternativa, escolha 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 especificação do grupo de endereços.
No campo Capacidade, insira a capacidade do grupo de endereços.
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
.Clique em Criar.
Use o exemplo de comando gcloud network-security address-groups create
a seguir para criar um grupo de endereços chamado GROUP_NAME com uma
capacidade de 1.000 endereços IPv4
, que pode ser usado com o
Google Cloud Armor ou o Cloud NGFW:
gcloud network-security address-groups createGROUP_NAME \ --location global \ --description "address group description" \ --capacity 1000 \ --type IPv4 \ --purpose DEFAULT,CLOUD_ARMOR
Como alternativa, você pode criar um grupo de endereços com uma capacidade maior definindo
a finalidade exclusivamente como CLOUD_ARMOR
. No exemplo abaixo, você cria
um grupo de endereços com capacidade para 10.000 intervalos de endereços IP IPv6
:
gcloud network-security address-groups createGROUP_NAME \ --location global \ --description "address group description" \ --capacity 10000 \ --type IPv6 \ --purpose CLOUD_ARMOR
Adicionar itens a um grupo de endereços
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
.
No console do Google Cloud, acesse a página Grupos de endereços.
No menu do seletor de projetos, se disponível, selecione seu projeto.
Para editar um grupo de endereços, clique no nome dele.
Clique em Editar.
No campo Endereços IP, adicione os novos itens à lista de endereços IP separados por vírgulas. Você também pode clicar em Importar endereços para fazer upload de um arquivo CSV com uma lista de endereços IP.
Clique em Salvar.
No exemplo abaixo, 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 de itens separados por vírgulas com a flag --item
:
gcloud network-security address-groups add-itemsGROUP_NAME \ --location global \ --items 192.168.1.2,192.168.1.8,192.168.1.9
Remover itens de um grupo de endereços
É possível remover itens de um grupo de endereços usando o console do Google Cloud
ou o
comando gcloud network-security address-groups remove-items
.
No console do Google Cloud, acesse a página Grupos de endereços.
No menu do seletor de projetos, se disponível, selecione seu projeto.
Para editar um grupo de endereços, clique no nome dele.
Clique em Editar.
No campo Endereços IP, exclua os itens que você quer remover da lista de endereços IP separados por vírgulas.
Clique em Salvar.
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-itemsGROUP_NAME \ --location global \ --items 192.168.1.2,192.168.1.8,192.168.1.9
Excluir um grupo de endereços
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:
No console do Google Cloud, acesse a página Grupos de endereços.
No menu do seletor de projetos, se disponível, selecione seu projeto.
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.
Clique em Excluir, depois em Excluir novamente para confirmar.
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 deleteGROUP_NAME \ --location global
Usar grupos de endereços 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 este exemplo, imagine que você tenha um grupo de endereços IP chamado
BAD_IPS com 10.000 endereços IP que você sabe que são 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('BAD_IPS ', origin.ip)
Reutilizar um grupo de intervalos de endereços IP em várias políticas de segurança
Para este exemplo, imagine que você tenha a mesma lista de 10.000 endereços IP do
exemplo anterior, mas que alguns dos endereços IP sejam conhecidos como
rastreadores da Web. 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:
- Crie uma política de segurança de back-end chamada POLICY_1 e anexe-a a BACKEND_SERVICE_1.
Em POLICY_1, crie uma regra
deny
com a seguinte condição de correspondência:evaluateAddressGroup('
BAD_IPS ', origin.ip)Crie uma segunda política de segurança de back-end chamada POLICY_2 e anexe-a a BACKEND_SERVICE_2.
Em POLICY_2, crie uma regra
deny
com a seguinte condição de correspondência, que exclui66.249.77.32/27
e66.249.77.64/27
:evaluateAddressGroup('
BAD_IPS ', origin.ip, [66.249.77.32/27, 66.249.77.64/27])
Usar um grupo de endereços para fazer correspondência com endereços IP do usuário
Para este exemplo, imagine que você tenha um grupo de endereços IP chamado
BAD_IPS com 10.000 endereços IP que você sabe que são 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 deny
de política de segurança com a seguinte condição
de correspondência:
evaluateAddressGroup('BAD_IPS ', origin.user_ip)
Para mais informações sobre endereços IP do usuário, consulte atributos de idioma de regras.