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 |
Administrador de rede do Compute |
networksecurity.addressGroups.* |
| Descobrir e visualizar |
Usuário da rede do Compute |
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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de projeto.
- Clique em Criar grupo de endereços.
- No campo Nome, digite um nome.
- (Opcional): no campo Descrição, adicione uma descrição.
- Em Escopo, escolha Global.
- Em Tipo, selecione IPv4 ou IPv6.
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.
No campo Capacidade, informe a capacidade do grupo de endereços.
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.
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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de projeto.
- Para editar um grupo de endereços, clique no nome do grupo.
- Clique em Editar.
- 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.
- 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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de projeto.
- Para editar um grupo de endereços, clique no nome do grupo.
- Clique em Editar.
- No campo Endereços IP, exclua os itens que deseja remover da lista de endereços IP separada por vírgulas.
- 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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de projeto.
- Para clonar um grupo de endereços, clique no nome do grupo.
- Clique em Clonar.
- No campo Nome, insira o novo nome para o grupo de endereços clonado.
- 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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de projeto.
- 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.
- 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:
- Crie uma política de segurança de back-end chamada
POLICY_1e anexe-a aoBACKEND_SERVICE_1. Na
POLICY_1, crie uma regradenycom a seguinte condição de correspondência:evaluateAddressGroup('MALICIOUS_IPS', origin.ip)Crie uma segunda política de segurança de back-end chamada
POLICY_2e anexe-a aoBACKEND_SERVICE_2.Na
POLICY_2, crie uma regradenycom a seguinte condição de correspondência, que exclui66.249.77.32/27e66.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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de organização.
- Clique em Criar grupo de endereços.
- No campo Nome, digite um nome.
- Opcional: no campo Descrição, adicione uma descrição.
- Em Escopo, escolha Global.
- Em Tipo, selecione IPv4 ou IPv6.
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.
No campo Capacidade, informe a capacidade do grupo de endereços.
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.
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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de organização.
- Para editar um grupo de endereços, clique no nome do grupo.
- Clique em Editar.
- 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.
- 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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de organização.
- Para editar um grupo de endereços, clique no nome do grupo.
- Clique em Editar.
- No campo Endereços IP, exclua os itens que deseja remover da lista de endereços IP separada por vírgulas.
- 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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de organização.
- Para clonar um grupo de endereços, clique no nome do grupo.
- Clique em Clonar.
- No campo Nome, insira o novo nome para o grupo de endereços clonado.
- 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
- No console do Google Cloud , acesse a página Grupos de endereços.
- Se disponível, selecione seu projeto no menu de seleção de organização.
- 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.
- 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:
- Crie uma política de segurança de back-end chamada
BACKEND_POLICY_1. Adicione uma regra
denyàBACKEND_POLICY_1com a seguinte condição de correspondência, que bloqueia todos os endereços IP no grupoMALICIOUS_IPS:evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)Use o seguinte comando para associar
BACKEND_POLICY_1aoBACKEND_SERVICE_1:gcloud compute backend-services update BACKEND_SERVICE_1 \ --security-policy BACKEND_POLICY_1Crie uma segunda política de segurança de back-end chamada
BACKEND_POLICY_2.Adicione uma regra
denyàBACKEND_POLICY_2com a seguinte condição de correspondência, que bloqueia todos os endereços IP no grupoMALICIOUS_IPS, exceto66.249.77.32/27e66.249.77.64/27:evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip, [`66.249.77.32/27`, `66.249.77.64/27`])Use o comando apresentado a seguir para associar
BACKEND_POLICY_2aoBACKEND_SERVICE_2: SubstituaORG_IDpelo 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.