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
|
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
- No console Google Cloud , acesse a página Grupos de endereços.
- No menu do seletor de projetos, selecione seu projeto, se disponível.
- 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 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.
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
.O número de endereços ou intervalos de IP não pode exceder a capacidade configurada.
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
- No console Google Cloud , acesse a página Grupos de endereços.
- No menu do seletor de projetos, selecione seu projeto, se disponível.
- 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. Se preferir, clique 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ê 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
- No console Google Cloud , acesse a página Grupos de endereços.
- No menu do seletor de projetos, selecione seu projeto, se disponível.
- 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.
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
- No console Google Cloud , acesse a página Grupos de endereços.
- No menu do seletor de projetos, selecione seu projeto, se disponível.
- 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.
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
:
- Crie uma política de segurança de back-end chamada
POLICY_1
e anexe-a aBACKEND_SERVICE_1
. Em
POLICY_1
, crie uma regradeny
com 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_2
e anexe-a aBACKEND_SERVICE_2
.Em
POLICY_2
, crie uma regradeny
com a seguinte condição de correspondência, que exclui66.249.77.32/27
e66.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
- No console Google Cloud , acesse a página Grupos de endereços.
- No menu do seletor de projetos, selecione sua organização, se disponível.
- 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 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.
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
.O número de endereços ou intervalos de IP não pode exceder a capacidade configurada.
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
- No console Google Cloud , acesse a página Grupos de endereços.
- No menu do seletor de projetos, selecione sua organização, se disponível.
- 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. Se preferir, clique 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ê 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
- No console Google Cloud , acesse a página Grupos de endereços.
- No menu do seletor de projetos, selecione sua organização, se disponível.
- 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.
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
- No console Google Cloud , acesse a página Grupos de endereços.
- No menu do seletor de projetos, selecione sua organização, se disponível.
- 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.
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
:
- Crie uma política de segurança de back-end chamada
BACKEND_POLICY_1
. Adicione uma regra
deny
aBACKEND_POLICY_1
com a seguinte condição de correspondência, que bloqueia todos os endereços IP emMALICIOUS_IPS
:evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)
Use o comando a seguir para associar
BACKEND_POLICY_1
aBACKEND_SERVICE_1
:gcloud compute backend-services update BACKEND_SERVICE_1 \ --security-policy BACKEND_POLICY_1
Crie uma segunda política de segurança de back-end chamada
BACKEND_POLICY_2
.Adicione uma regra
deny
aBACKEND_POLICY_2
com a seguinte condição de correspondência, que bloqueia todos os endereços IP emMALICIOUS_IPS
, exceto66.249.77.32/27
e66.249.77.64/27
:evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip, [`66.249.77.32/27`, `66.249.77.64/27`])
Use o comando a seguir para associar
BACKEND_POLICY_2
aBACKEND_SERVICE_2
. SubstituaORG_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.