Configurer des groupes d'adresses

Les groupes d'adresses vous permettent de combiner plusieurs adresses IP et plages d'adresses IP en une seule unité logique nommée, que vous pouvez utiliser sur plusieurs produits. Ce document explique comment utiliser des groupes d'adresses avec les stratégies de sécurité Google Cloud Armor. Vous devez disposer d'un abonnement Google Cloud Armor Enterprise actif pour utiliser des groupes d'adresses.

Rôles IAM

Pour créer et gérer un groupe d'adresses, vous devez disposer du rôle Administrateur réseau (compute.networkAdmin) ou du rôle Administrateur de sécurité (compute.securityAdmin). Vous pouvez également définir un rôle personnalisé avec un ensemble d'autorisations équivalent.

Le tableau suivant fournit la liste des autorisations IAM (Identity and Access Management) requises pour effectuer un ensemble de tâches sur des groupes d'adresses.

Tâche Nom de rôle IAM Autorisations IAM
Créer et gérer des groupes d'adresses compute.networkAdmin

compute.securityAdmin

networksecurity.addressGroups.*
Découvrir et afficher des groupes d'adresses compute.networkUser networksecurity.addressGroups.list

networksecurity.addressGroups.get

networksecurity.addressGroups.use

Pour en savoir plus sur les rôles qui incluent des autorisations IAM spécifiques, consultez la documentation de référence sur les autorisations IAM.

Créer ou modifier des groupes d'adresses

Les sections suivantes expliquent comment créer des groupes d'adresses, en ajouter et en supprimer, et en supprimer.

Créer un groupe d'adresses

Lorsque vous créez un groupe d'adresses, vous devez spécifier sa capacité et sa version d'adresse IP à l'aide des options --capacity et --type, respectivement. Vous ne pouvez pas modifier ces valeurs après avoir créé le groupe d'adresses.

En outre, la capacité maximale de Google Cloud Armor peut être supérieure à la capacité maximale d'autres produits, tels que Cloud Next Generation Firewall. Par conséquent, si vous souhaitez utiliser le m��me groupe d'adresses pour plusieurs produits, vous devez définir la capacité pour qu'elle soit inférieure ou égale à la capacité maximale la plus basse parmi ces produits.

Utilisez l'exemple de commande gcloud beta network-security address-groups create suivant pour créer un groupe d'adresses appelé GROUP_NAME d'une capacité de 1 000 adresses IPv4, que vous pouvez utiliser avec Google Cloud Armor ou Cloud NGFW:

gcloud beta network-security address-groups create GROUP_NAME \
    --location global \
    --description  "address group description" \
    --capacity 1000 \
    --type IPv4 \
    --purpose DEFAULT,CLOUD_ARMOR

Vous pouvez également créer un groupe d'adresses de plus grande capacité en définissant l'objectif exclusivement sur CLOUD_ARMOR. Dans l'exemple suivant, vous créez un groupe d'adresses d'une capacité de 10 000 plages d'adresses IP IPv6:

gcloud beta network-security address-groups create GROUP_NAME \
   --location global \
   --description  "address group description" \
   --capacity 10000 \
   --type IPv6 \
   --purpose CLOUD_ARMOR

Ajouter des éléments à un groupe d'adresses

Après avoir créé un groupe d'adresses, vous pouvez ajouter des éléments à l'aide de la commande gcloud beta network-security address-groups add-items. Vous fournissez une liste d'éléments séparés par une virgule avec l'option --item. Dans l'exemple suivant, vous ajoutez les adresses IP 192.168.1.2, 192.168.1.8 et 192.168.1.9 au groupe d'adresses GROUP_NAME:

gcloud beta network-security address-groups add-items GROUP_NAME \
   --location global \
   --items 192.168.1.2,192.168.1.8,192.168.1.9

Supprimer des éléments d'un groupe d'adresses

Vous pouvez supprimer des éléments d'un groupe d'adresses à l'aide de la commande gcloud beta network-security address-groups remove-items. La commande suivante supprime les adresses IP 192.168.1.2, 192.168.1.8 et 192.168.1.9 que vous avez ajoutées dans la commande précédente:

gcloud beta network-security address-groups remove-items GROUP_NAME \
   --location global \
   --items 192.168.1.2,192.168.1.8,192.168.1.9

Supprimer un groupe d'adresses

Vous ne pouvez pas supprimer un groupe d'adresses référencé par une ressource, y compris une stratégie de sécurité.

L'exemple suivant utilise la commande gcloud beta network-security address-groups delete pour supprimer un groupe d'adresses appelé GROUP_NAME.

gcloud beta network-security address-groups delete GROUP_NAME \
   --location global

Vous ne pouvez pas supprimer un groupe d'adresses référencé par une ressource, y compris une stratégie de sécurité.

Utiliser des groupes d'adresses avec des règles de sécurité

Après avoir créé un groupe d'adresses et y avoir ajouté des adresses IP, vous pouvez l'utiliser avec n'importe quelle stratégie de sécurité de backend Google Cloud Armor existante. Les exemples suivants illustrent deux façons différentes d'utiliser les groupes d'adresses.

Refuser un groupe d'adresses IP

Pour cet exemple, imaginez que vous avez un groupe d'adresses IP appelé BAD_IPS contenant 10 000 adresses IP dont vous savez qu'elles sont malveillantes. Vous pouvez refuser toutes ces adresses IP à l'aide d'une seule règle de stratégie de sécurité deny avec la condition de correspondance suivante:

evaluateAddressGroup('BAD_IPS', origin.ip)

Réutiliser un groupe de plages d'adresses IP dans plusieurs règles de sécurité

Pour cet exemple, imaginez que vous ayez la même liste de 10 000 adresses IP que dans l'exemple précédent, mais que certaines des adresses IP soient connues pour être des robots d'exploration. Vous souhaitez bloquer toutes ces adresses IP pour certains services de backend, mais autoriser les robots d'exploration à accéder à d'autres services de backend afin d'améliorer l'optimisation du référencement (SEO). Procédez comme suit pour refuser à toutes les adresses l'accès à BACKEND_SERVICE_1, tout en autorisant les plages d'adresses IP 66.249.77.32/27 et 66.249.77.64/27 à accéder à BACKEND_SERVICE_2:

  1. Créez une stratégie de sécurité du backend appelée POLICY_1, puis associez-la à BACKEND_SERVICE_1.
  2. Dans POLICY_1, créez une règle deny avec la condition de correspondance suivante:

    evaluateAddressGroup('BAD_IPS', origin.ip)
    
  3. Créez une deuxième stratégie de sécurité de backend appelée POLICY_2, puis associez-la à BACKEND_SERVICE_2.

  4. Dans POLICY_2, créez une règle deny avec la condition de correspondance suivante, qui exclut 66.249.77.32/27 et 66.249.77.64/27:

    evaluateAddressGroup('BAD_IPS', origin.ip, [66.249.77.32/27, 66.249.77.64/27])
    

Utiliser un groupe d'adresses à mettre en correspondance avec les adresses IP des utilisateurs

Pour cet exemple, imaginez que vous avez un groupe d'adresses IP appelé BAD_IPS contenant 10 000 adresses IP dont vous savez qu'elles sont malveillantes. En outre, vous utilisez un proxy en amont, qui inclut des informations sur les clients d'origine dans l'en-tête. Vous pouvez refuser toutes ces adresses IP à l'aide d'une seule règle de stratégie de sécurité deny avec la condition de correspondance suivante:

evaluateAddressGroup('BAD_IPS', origin.user_ip)

Pour en savoir plus sur les adresses IP des utilisateurs, consultez la section Attributs de langue des règles.

Étapes suivantes