Configura las políticas de seguridad perimetral de red

Las políticas de seguridad perimetral de red te permiten configurar reglas para permitir o bloquear el tráfico en el perímetro de la red de Google. Puedes configurar políticas de seguridad perimetral de red para los siguientes tipos de frontend:

  • Balanceadores de cargas de red de transferencia externos
  • Reenvío de protocolos
  • VM con direcciones IP públicas

Puedes usar las políticas de seguridad perimetral de red para filtrar por rangos de direcciones IP de origen y destino de manera similar al firewall de última generación de Cloud, pero sin consumir tus recursos. Además, una política de seguridad perimetral de red es el único tipo de política de seguridad que admite el filtrado de desplazamiento de bytes.

Configura reglas personalizadas para las políticas de seguridad perimetral de red

Al igual que las políticas de seguridad perimetral y de backend, puedes configurar reglas personalizadas para las políticas de seguridad perimetral de red. En el siguiente ejemplo, crearás una política de seguridad perimetral de la red, configurarás una regla personalizada para permitir el tráfico desde un solo rango de direcciones IP de origen determinado y adjuntarás la política a tu servicio de backend.

Las políticas de seguridad perimetral de red admiten varios filtros de Google Cloud Armor, incluidos filtros únicos, como el filtrado de desplazamiento de bytes. Para obtener más información sobre las funciones que admiten las políticas de seguridad perimetral de red, consulta la descripción general de la política de seguridad. Además, puedes implementar políticas de seguridad perimetral de red en el modo de vista previa.

Antes de continuar, debes inscribirte en Google Cloud Armor Enterprise y configurar la protección avanzada contra DSD de red. No puedes usar reglas personalizadas para las políticas de seguridad perimetral de red sin una suscripción activa a Cloud Armor Enterprise y una protección avanzada contra DSD de red.

Para configurar reglas personalizadas, sigue estos pasos:

  1. Crea una nueva política de seguridad perimetral de red con el nombre POLICY_NAME en la región REGION. No uses la misma política de seguridad que usaste cuando habilitaste la protección avanzada contra DSD de red.

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION
    
  2. Cambia la regla predeterminada de tu política de allow a deny para bloquear el tráfico que otras reglas no permiten de forma explícita.

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION
    
  3. En la misma política de seguridad, agrega una regla con prioridad RULE_PRIORITY que permita solicitudes en el rango de direcciones IP de origen RANGE.

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-src-ip-ranges=RANGE \
       --action=allow \
       --region=REGION
    
  4. Asocia la política de seguridad a tu servicio de backend BACKEND_SERVICE_NAME.

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION
    

    Como alternativa, puedes asociar la política de seguridad con una sola instancia de VM mediante el siguiente 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: Puedes verificar que la política de seguridad esté adjunta con el siguiente comando. Si se ejecuta de forma correcta, el campo securityPolicy del resultado tendrá un vínculo a tu recurso de política de seguridad.

    gcloud compute instances describe VM_NAME --zone=ZONE_NAME
    

Después de crear el ejemplo anterior, puedes continuar agregando reglas a tu política de seguridad perimetral de red con el comando security-policies rules update. Los campos admitidos para las políticas de seguridad perimetral de red son los siguientes:

Campo Marca Descripción
Dirección IP de origen --network-src-ip-ranges Direcciones IPv4/6 de origen o prefijos CIDR en formato de texto estándar.
Puertos de origen --network-src-ports Números de puerto de origen para TCP/UDP/SCTP. Cada elemento puede ser un número de (16 bits) (como "80") o un rango (como "0-1023").
Códigos regionales de origen --network-src-region-codes Código de país de dos letras (ISO 3166-1 alpha-2).
ASN de origen --network-src-asns Número del sistema autónomo de BGP de la dirección IP de origen.
Rangos de direcciones IP de destino --network-dest-ip-ranges Direcciones IPv4/6 de destino o prefijos CIDR en formato de texto estándar.
Puertos de destino --network-dest-ports Números de puerto de destino para TCP/UDP/SCTP. Cada elemento puede ser un número (de 16 bits) (como "80") o un rango (como "0-1023").
Protocolos de direcciones IP --network-ip-protocols Protocolo IPv4 / próximo encabezado IPv6 (después de los encabezados de la extensión) Cada elemento puede ser un número de 8 bits (como "6"), un rango (como "253-254") o uno de los siguientes nombres de protocolo:
  • tcp
  • udp
  • icmp
  • esp
  • ah
  • ipip
  • sctp
Filtrado de compensación de bytes N/A Consulta la siguiente sección.

Cuando usas la marca --network-src-region-codes con una política de seguridad perimetral de red, puedes usar códigos regionales para los siguientes territorios sujetos a sanciones integrales de EE.UU.:

 territorios Código asignado
Crimea XC
La denominada República Popular de Donetsk (RPD) y
la denominada República Popular de Luhansk (RPL)
XD

Configurar el filtrado de desplazamiento de bytes

Si usas balanceadores de cargas de red de transferencia externos, reenvío de protocolos o VM con direcciones IP públicas, Google Cloud Armor puede realizar una inspección profunda de paquetes en el tráfico entrante. Puedes configurar una regla de política de seguridad que coincida con un valor de desplazamiento específico de bytes de TCP/UDP. Puedes configurar la regla para que aplique la acción de la regla cuando el valor configurado está presente o, de forma alternativa, cuando está ausente.

En el siguiente ejemplo, se permite el tráfico cuando el valor está presente y se rechaza todo el resto del tráfico:

  1. Crea una nueva política de seguridad perimetral de red. Puedes omitir este paso si tienes una política de seguridad perimetral de red existente.

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION_NAME
    
  2. Actualiza tu política de seguridad perimetral de red para agregar campos definidos por el usuario con los siguientes parámetros:

    • Base: El valor puede ser IPv4, IPv6, TCP o UDP.
    • Offset: Es el desplazamiento del campo desde la base en bytes.
    • Tamaño: Tamaño del campo en bytes (el valor máximo es 4)
    • Mask: Es la máscara de los bits del campo que deben coincidir.

    Puedes utilizar hasta ocho campos definidos por el usuario por política. En el siguiente ejemplo, creas dos campos definidos por el usuario.

    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. En tu política de seguridad perimetral de red, agrega una regla con el mismo nombre de campo personalizado que usaste en el ejemplo anterior. Reemplaza VALUE1 y VALUE2 por valores que coincidan con el tráfico que deseas 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. Establece la regla predeterminada en tu política de seguridad perimetral de red como una regla de denegación. Puedes omitir este paso si la regla predeterminada en tu política de seguridad ya es una regla de denegación.

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION_NAME
    
  5. Asocia tu política de seguridad perimetral de red con el servicio de backend del balanceador de cargas de red de transferencia externo.

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION_NAME
    

Supervisión

Google Cloud Armor exporta las siguientes métricas a Cloud Monitoring para cada una de las reglas de políticas de seguridad perimetral de la red:

  • packet_count
    • Blocked: Es un valor booleano que representa el resultado de una acción de la regla allow o deny
      .
    • Count: Es el valor de packet_count que se incrementa una vez por cada 10,000 paquetes; por ejemplo, un valor packet_count de 5 significa que al menos 50,000 paquetes coincidieron con tu regla.
  • preview_packet_count: Igual que packet_count, que se usa para las reglas en el modo de vista previa

Para ver las métricas de las políticas de seguridad perimetral de red, primero debes habilitar la API de Network Security (networksecurity.googleapis.com). Este permiso se incluye en la función de administrador de seguridad de Compute (roles/compute.securityAdmin). Después de habilitar la API de Network Security, puedes ver las métricas en Monitoring en la consola de Google Cloud.

Ir a Monitoring