Configurer des règles de sécurité de périphérie de réseau

Les stratégies de sécurité de la périphérie réseau vous permettent de configurer des règles pour autoriser ou bloquer le trafic au niveau de la périphérie du réseau Google. Vous pouvez configurer des règles de sécurité de périphérie réseau pour les types de frontend suivants:

  • Équilibreurs de charge réseau passthrough externes
  • Transfert de protocole
  • VM dotées d'adresses IP publiques

Vous pouvez utiliser des stratégies de sécurité de réseau de périphérie pour filtrer par plage d'adresses IP source et de destination, comme avec Cloud Next Generation Firewall, mais sans consommer vos ressources. De plus, une règle de sécurité en périphérie du réseau est le seul type de règle de sécurité compatible avec le filtrage par décalage d'octet.

Configurer des règles personnalisées pour les règles de sécurité de périphérie de réseau

Comme pour les règles de sécurité de backend et de périphérie, vous pouvez configurer des règles personnalisées pour les règles de sécurité de périphérie du réseau. Dans l'exemple suivant, vous créez une règle de sécurité de bordure réseau, configurez une règle personnalisée pour n'autoriser que le trafic provenant d'une plage d'adresses IP source donnée, puis joignez la règle à votre service de backend.

Les stratégies de sécurité de bordure réseau acceptent plusieurs filtres Google Cloud Armor, y compris des filtres uniques tels que le filtrage par décalage d'octet. Pour en savoir plus sur les fonctionnalités compatibles avec les stratégies de sécurité de bord réseau, consultez la présentation des stratégies de sécurité. En outre, vous pouvez déployer des stratégies de sécurité de bord réseau en mode Preview.

Avant de continuer, vous devez vous inscrire à Google Cloud Armor Enterprise et configurer la protection DDoS avancée du réseau. Vous ne pouvez pas utiliser de règles personnalisées pour les stratégies de sécurité en périphérie du réseau sans un abonnement Cloud Armor Enterprise actif et une protection DDoS avancée du réseau.

Pour configurer des règles personnalisées, procédez comme suit:

  1. Créez une règle de sécurité de réseau périphérique nommée POLICY_NAME dans la région REGION. N'utilisez pas la même stratégie de sécurité que celle que vous avez utilisée lorsque vous avez activé la protection DDoS avancée du réseau.

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION
    
  2. Remplacez la règle par défaut de votre stratégie de allow par deny pour bloquer le trafic qui n'est pas explicitement autorisé par d'autres règles.

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION
    
  3. Dans la même stratégie de sécurité, ajoutez une règle de priorité RULE_PRIORITY qui autorise les requêtes dans la plage d'adresses IP source RANGE.

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-src-ip-ranges=RANGE \
       --action=allow \
       --region=REGION
    
  4. Associez la stratégie de sécurité à votre service de backend BACKEND_SERVICE_NAME.

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

    Vous pouvez également associer la stratégie de sécurité à une seule instance de VM à l'aide de la commande suivante:

    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. Facultatif: Vous pouvez vérifier que la stratégie de sécurité est associée à l'aide de la commande suivante. Si l'opération réussit, le champ securityPolicy de la sortie contient un lien vers votre ressource de stratégie de sécurité.

    gcloud compute instances describe VM_NAME --zone=ZONE_NAME
    

Après avoir créé l'exemple précédent, vous pouvez continuer à ajouter des règles à votre stratégie de sécurité de bord réseau à l'aide de la commande security-policies rules update. Les champs acceptés pour les stratégies de sécurité de périphérie de réseau sont les suivants:

Champ Option Description
Adresse IP source --network-src-ip-ranges Adresses IPv4/6 ou préfixes CIDR sources, au format texte standard.
Ports sources --network-src-ports Numéros de ports sources pour TCP/UDP/SCTP. Chaque élément peut être un nombre (16 bits) (par exemple, "80") ou une plage (par exemple, "0-1023").
Codes des régions sources --network-src-region-codes Code pays à deux lettres (ISO 3166-1 alpha-2).
ASN sources --network-src-asns Numéro de système autonome BGP de l'adresse IP source.
Plages d'adresses IP de destination --network-dest-ip-ranges Adresses IPv4/6 ou préfixes CIDR de destination, au format texte standard.
Ports de destination --network-dest-ports Numéros de ports de destination pour TCP/UDP/SCTP. Chaque élément peut être un nombre (16 bits) (par exemple, "80") ou une plage (par exemple, "0-1023").
Protocoles d'adresses IP --network-ip-protocols Protocole IPv4 / En-tête suivant IPv6 (après les en-têtes d'extension) Chaque élément peut être un nombre de 8 bits (par exemple, "6"), une plage (par exemple, "253-254") ou l'un des noms de protocole suivants :
  • tcp
  • udp
  • icmp
  • esp
  • ah
  • ipip
  • sctp
Filtrage par décalage d'octet N/A Consultez la section suivante.

Lorsque vous utilisez l'option --network-src-region-codes avec une stratégie de sécurité de bord réseau, vous pouvez utiliser des codes de région pour les territoires suivants soumis à des sanctions complètes des États-Unis:

Territoires Code attribué
Crimée XC
La soi-disant République populaire de Donetsk (DNR) et
la soi-disant République populaire de Lougansk (LNR)
XD

Configurer le filtrage par décalage d'octet

Si vous utilisez des équilibreurs de charge réseau passthrough externes, un transfert de protocole ou des VM avec des adresses IP publiques, Google Cloud Armor peut effectuer une inspection approfondie des paquets sur le trafic entrant. Vous pouvez configurer une règle de stratégie de sécurité qui correspond à une valeur de décalage d'octets TCP/UDP spécifique. Vous pouvez configurer la règle pour appliquer l'action de la règle lorsque la valeur configurée est présente ou absente.

L'exemple suivant autorise le trafic lorsque la valeur est présente et refuse tout autre trafic:

  1. Créez une règle de sécurité en périphérie du réseau. Vous pouvez ignorer cette étape si vous disposez déjà d'une stratégie de sécurité de périphérie de réseau.

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION_NAME
    
  2. Mettez à jour votre stratégie de sécurité de bordure réseau pour ajouter des champs définis par l'utilisateur à l'aide des paramètres suivants:

    • Base: la valeur peut être IPv4, IPv6, TCP ou UDP.
    • Décalage: décalage du champ par rapport à la base en octets
    • Size (Taille) : taille du champ en octets (valeur maximale : 4)
    • Masque: masque des bits du champ à faire correspondre

    Vous pouvez utiliser jusqu'à huit champs définis par l'utilisateur par stratégie. Dans l'exemple suivant, vous allez créer deux champs définis par l'utilisateur.

    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. Dans votre stratégie de sécurité de réseau périphérique, ajoutez une règle avec le même nom de champ personnalisé que celui que vous avez utilisé dans l'exemple précédent. Remplacez VALUE1 et VALUE2 par des valeurs correspondant au trafic que vous souhaitez autoriser.

    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. Définissez la règle par défaut de votre stratégie de sécurité de réseau périphérique sur une règle de blocage. Vous pouvez ignorer cette étape si la règle par défaut de votre stratégie de sécurité est déjà une règle de refus.

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION_NAME
    
  5. Associez votre stratégie de sécurité de bordure réseau au service de backend de votre équilibreur de charge réseau passthrough externe.

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

Surveillance

Google Cloud Armor exporte les métriques suivantes vers Cloud Monitoring pour chacune de vos règles de stratégie de sécurité de périphérie réseau:

  • packet_count
    • Blocked: valeur booléenne représentant le résultat d'une action de règle allow ou deny
    • Count: la valeur de packet_count est incrémentée une fois pour chaque tranche de 10 000 paquets. Par exemple, une valeur packet_count de 5 signifie qu'au moins 50 000 paquets correspondent à votre règle.
  • preview_packet_count: identique à packet_count, utilisé pour les règles en mode Preview

Pour afficher les métriques des stratégies de sécurité de bord réseau, vous devez d'abord activer l'API Network Security (networksecurity.googleapis.com). Cette autorisation est incluse dans le rôle Administrateur de sécurité Compute (roles/compute.securityAdmin). Une fois l'API Network Security activée, vous pouvez afficher les métriques dans "Monitoring" (Surveillance) de la console Google Cloud.

Accéder à Monitoring