As políticas de segurança de borda de rede permitem configurar regras para permitir ou bloquear o tráfego na borda da rede do Google. É possível configurar políticas de segurança de borda de rede para os seguintes tipos de front-end:
- Balanceadores de carga de rede de passagem externa
- Encaminhamento de protocolo
- VMs com endereços IP públicos
É possível usar políticas de segurança de borda de rede para filtrar por intervalos de endereços IP de origem e destino, de maneira semelhante ao Cloud Next Generation Firewall, mas sem consumir seus recursos. Além disso, uma política de segurança de borda de rede é o único tipo de política de segurança compatível com a filtragem de deslocamento de bytes.
Configurar regras personalizadas para políticas de segurança de borda de rede
Assim como as políticas de segurança de borda e de back-end, é possível configurar regras personalizadas para políticas de segurança de borda de rede. No exemplo a seguir, você cria uma política de segurança de borda de rede, configura uma regra personalizada para permitir o tráfego apenas de um determinado intervalo de endereços IP de origem e anexa a política ao serviço de back-end.
As políticas de segurança de borda de rede são compatíveis com vários filtros do Google Cloud Armor, incluindo filtros exclusivos, como filtragem de deslocamento de bytes. Para mais informações sobre os recursos compatíveis com as políticas de segurança de borda de rede, consulte a visão geral da política de segurança. Além disso, é possível implantar políticas de segurança de borda de rede no modo de visualização.
Antes de continuar, inscreva-se no Google Cloud Armor Enterprise e configure a proteção avançada contra DDoS de rede. Não é possível usar regras personalizadas para políticas de segurança de borda de rede sem uma assinatura ativa do Cloud Armor Enterprise e a proteção de rede avançada contra DDoS.
Para configurar regras personalizadas, siga estas etapas:
Crie uma nova política de segurança de borda de rede com o nome
POLICY_NAME
na regiãoREGION
. Não use a mesma política de segurança usada quando você ativou a proteção avançada contra DDoS de rede.gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR_NETWORK \ --region=REGION
Mude a regra padrão da política de
allow
paradeny
a fim de bloquear o tráfego que não é explicitamente permitido por outras regras.gcloud compute security-policies rules update 2147483647 \ --security-policy=POLICY_NAME \ --action=deny \ --region=REGION
Na mesma política de segurança, adicione uma regra de prioridade
RULE_PRIORITY
que permita solicitações no intervalo de endereços IP de origemRANGE
.gcloud compute security-policies rules create RULE_PRIORITY \ --security-policy=POLICY_NAME \ --network-src-ip-ranges=RANGE \ --action=allow \ --region=REGION
Associe a política de segurança ao serviço de back-end
BACKEND_SERVICE_NAME
.gcloud compute backend-services update BACKEND_SERVICE_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Outra possibilidade é associar a política de segurança a uma única instância de VM usando o seguinte comando:
gcloud beta compute instances network-interfaces update VM_NAME \ --security-policy=POLICY_NAME \ --security-policy-region=REGION \ --network-interface=NETWORK_INTERFACE \ --zone=ZONE_NAME
Opcional: é possível verificar se a política de segurança está anexada usando o comando a seguir. Se tiver êxito, o campo
securityPolicy
na saída terá um link para seu recurso da política de segurança.gcloud compute instances describe VM_NAME --zone=ZONE_NAME
Depois de criar o exemplo anterior, é possível continuar adicionando regras à
política de segurança de borda de rede usando o comando security-policies rules update
.
Os campos compatíveis com políticas de segurança de borda de rede são os seguintes:
Campo | Sinalização | Descrição |
---|---|---|
Endereço IP de origem | --network-src-ip-ranges |
Endereços IPv4/6 de origem ou prefixos CIDR no formato de texto padrão. |
Portas de origem | --network-src-ports |
Números de porta de origem para TCP/UDP/SCTP. Cada elemento pode ser um número (de 16 bits) ou um intervalo (como "0-1023"). |
Códigos de região de origem | --network-src-region-codes |
Código do país com duas letras (ISO 3166-1 alfa-2). |
ASNs de origem | --network-src-asns |
Número do sistema autônomo do BGP para o endereço IP de origem. |
Intervalos de endereços IP de destino | --network-dest-ip-ranges |
Endereços IPv4/6 de destino ou prefixos CIDR no formato de texto padrão. |
Portas de destino | --network-dest-ports |
Números de porta de destino para TCP/UDP/SCTP. Cada elemento pode ser um número (de 16 bits) ou um intervalo (como "0-1023"). |
Protocolos de endereço IP | --network-ip-protocols |
Protocolo IPv4 / próximo cabeçalho IPv6 (após cabeçalhos de extensão). Cada
elemento pode ser um número de 8 bits (como "6"), um intervalo (como "253-254") ou
um dos seguintes nomes de protocolo:
|
Filtragem de deslocamento de bytes | N/A | Consulte a próxima seção. |
Ao usar a flag --network-src-region-codes
com uma política de segurança de borda de rede, é possível usar códigos de região para os seguintes territórios sujeitos a sanções abrangentes dos EUA:
Territórios | Código atribuído |
---|---|
Crimeia | XC |
A chamada República Popular de Donetsk (DNR) e a chamada República Popular de Luhansk (LNR) |
XD |
Configurar a filtragem de deslocamento de bytes
Se você usa balanceadores de carga de rede de passagem externos, encaminhamento de protocolo ou VMs com endereços IP públicos, é possível usar o Google Cloud Armor para realizar uma inspeção profunda de pacotes no tráfego de entrada. É possível configurar uma regra de política de segurança que corresponda a um valor de deslocamento de bytes TCP/UDP específico. É possível configurar a regra para aplicar a ação de regra quando o valor configurado estiver presente ou, como alternativa, ausente.
O exemplo a seguir permite o tráfego quando o valor está presente e nega qualquer outro tráfego:
Crie uma nova política de segurança de borda de rede. Será possível pular esta etapa se você já tiver uma política de segurança de borda de rede.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR_NETWORK \ --region=REGION_NAME
Atualize sua política de segurança de borda de rede para adicionar campos definidos pelo usuário usando os seguintes parâmetros:
- Base: o valor pode ser
IPv4
,IPv6
,TCP
ouUDP
- Deslocamento: o deslocamento do campo da base em bytes
- Tamanho: o tamanho do campo em bytes (o valor máximo é
4
) - Máscara: a máscara dos bits no campo a serem correspondidos
É possível usar até oito campos definidos pelo usuário por política. No exemplo a seguir, você cria dois campos definidos pelo usuário.
gcloud compute security-policies add-user-defined-field POLICY_NAME \ --user-defined-field-name=USER_DEFINED_FIELD_NAME_TCP \ --base=TCP \ --offset=OFFSET \ --size=SIZE \ --mask=MASK \ --region=REGION_NAME
gcloud compute security-policies add-user-defined-field POLICY_NAME \ --user-defined-field-name=USER_DEFINED_FIELD_NAME_UDP \ --base=UDP \ --offset=OFFSET \ --size=SIZE \ --mask=MASK \ --region=REGION_NAME
- Base: o valor pode ser
Na política de segurança de borda de rede, adicione uma regra com o mesmo nome de campo personalizado usado no exemplo anterior. Substitua
VALUE1
eVALUE2
por valores que correspondem ao tráfego que você quer permitir.gcloud compute security-policies rules create RULE_PRIORITY \ --security-policy=POLICY_NAME \ --network-user-defined-fields="USER_DEFINED_FIELD_NAME_TCP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1,VALUE2" \ --action=allow \ --region=REGION_NAME
Defina a regra padrão na política de segurança de borda da rede como uma regra de negação. Pule esta etapa se a regra padrão na política de segurança já for uma regra de negação.
gcloud compute security-policies rules update 2147483647 \ --security-policy=POLICY_NAME \ --action=deny \ --region=REGION_NAME
Associe a política de segurança de borda de rede ao serviço de back-end do balanceador de carga de rede de passagem externo.
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --security-policy=POLICY_NAME \ --region=REGION_NAME
Monitoramento
O Google Cloud Armor exporta as seguintes métricas para o Cloud Monitoring com relação a cada uma das suas regras de política de segurança de borda de rede:
packet_count
Blocked
: um valor booleano que representa o resultado de uma ação de regraallow
oudeny
Count
: o valor depacket_count
incrementado uma vez para cada 10.000 pacotes. Por exemplo, um valorpacket_count
de5
significa que pelo menos 50.000 pacotes corresponderam à regra
preview_packet_count
: o mesmo quepacket_count
, usado para regras no modo de visualização
Para visualizar métricas de políticas de segurança de borda de rede, ative primeiro a
API Network Security
(networksecurity.googleapis.com
). Essa permissão está incluída no
papel de administrador de segurança do Compute
(roles/compute.securityAdmin
). Depois de ativar a API Network Security,
será possível visualizar as métricas no Monitoring por meio do console do Google Cloud.