Configurar políticas de segurança de borda de rede

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 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 da 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:

  1. Crie uma nova política de segurança de borda de rede com o nome POLICY_NAME na região REGION. 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
    
  2. Mude a regra padrão da política de allow para deny 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
    
  3. 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 origem RANGE.

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-src-ip-ranges=RANGE \
       --action=allow \
       --region=REGION
    
  4. 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
    
  5. 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 de duas letras (ISO 3166-1 alfa-2).
ASNs de origem --network-src-asns Número do sistema autônomo do BGP do 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 em 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 pode ser um número de 8 bits (como "6"), intervalo (como "253-254") ou um dos seguintes nomes de protocolo:
  • tcp
  • udp
  • icmp
  • esp
  • ah
  • ipip
  • sctp
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:

  1. 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
    
  2. 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 ou UDP
    • 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
    
  3. 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 e VALUE2 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
    
  4. 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
    
  5. 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 regra allow ou deny
    • Count: o valor de packet_count incrementado uma vez para cada 10.000 pacotes. Por exemplo, um valor packet_count de 5 significa que pelo menos 50.000 pacotes corresponderam à regra
  • preview_packet_count: o mesmo que packet_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.

Acessar Monitoring