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 dans 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 les groupes d'adresses.

Avant de commencer

Avant de configurer des groupes d'adresses, vous devez d'abord activer l'API Network Security. networksecurity.googleapis.com

Rôles IAM

Pour créer et gérer un groupe d'adresses, vous devez disposer du rôle Administrateur réseau (compute.networkAdmin). 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 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 incluant 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, ajouter et supprimer des adresses de groupes d'adresses, et supprimer des groupes d'adresses.

Créer un groupe d'adresses

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

De plus, la capacité maximale de Google Cloud Armor peut être supérieure à celle d'autres produits, tels que le pare-feu Cloud nouvelle génération. Par conséquent, si vous souhaitez utiliser le même groupe d'adresses pour plusieurs produits, vous devez définir la capacité sur une valeur inférieure ou égale à la capacité maximale la plus basse de ces produits.

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'adresses.

    Accéder à "Groupes d'adresses"

  2. Dans le menu de sélection du projet, sélectionnez votre projet, le cas échéant.

  3. Cliquez sur Créer un groupe d'adresses.

  4. Dans le champ Nom, saisissez un nom.

  5. (Facultatif) Dans le champ Description, ajoutez une description.

  6. Pour Champ d'application, sélectionnez Global.

  7. Dans le champ Type, sélectionnez IPv4 ou IPv6.

  8. Dans le champ Usage, sélectionnez Cloud Armor. Vous pouvez également choisir Pare-feu et Cloud Armor si vous prévoyez également d'utiliser le groupe d'adresses avec les stratégies de pare-feu Cloud Next Generation.

    Pour en savoir plus sur le choix d'un objectif, consultez la section Spécifications des groupes d'adresses.

  9. Dans le champ Capacité, saisissez la capacité du groupe d'adresses.

  10. Dans le champ Adresses IP, indiquez les adresses IP ou les plages d'adresses IP que vous souhaitez inclure dans le groupe d'adresses, en les séparant par des virgules. Exemple : 1.1.1.0/24,1.2.0.0.

  11. Cliquez sur Créer.

gcloud

Utilisez l'exemple de commande gcloud network-security address-groups create suivant pour créer un groupe d'adresses appelé GROUP_NAME avec une capacité de 1 000 adresses IPv4, qui peut être utilisé avec Google Cloud Armor ou Cloud NGFW:

gcloud 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 sur CLOUD_ARMOR uniquement. Dans l'exemple suivant, vous créez un groupe d'adresses avec une capacité de 10 000 plages d'adresses IP IPv6:

gcloud 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 y ajouter des éléments à l'aide de la console Google Cloud ou de la commande gcloud network-security address-groups add-items.

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'adresses.

    Accéder à "Groupes d'adresses"

  2. Dans le menu de sélection du projet, sélectionnez votre projet, le cas échéant.

  3. Pour modifier un groupe d'adresses, cliquez sur son nom.

  4. Cliquez sur Modifier.

  5. Dans le champ Adresses IP, ajoutez les nouveaux éléments à la liste d'adresses IP séparées par une virgule. Vous pouvez également cliquer sur Importer des adresses pour importer un fichier CSV contenant une liste d'adresses IP.

  6. Cliquez sur Enregistrer.

gcloud

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. Vous fournissez une liste d'éléments séparés par une virgule avec l'indicateur --item:

gcloud 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 console Google Cloud ou de la commande gcloud network-security address-groups remove-items.

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'adresses.

    Accéder à "Groupes d'adresses"

  2. Dans le menu de sélection du projet, sélectionnez votre projet, le cas échéant.

  3. Pour modifier un groupe d'adresses, cliquez sur son nom.

  4. Cliquez sur Modifier.

  5. Dans le champ Adresses IP, supprimez les éléments que vous souhaitez supprimer de la liste d'adresses IP séparées par une virgule.

  6. Cliquez sur Enregistrer.

gcloud

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 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 s'il est référencé par une ressource, y compris une règle de pare-feu ou une stratégie de sécurité. Pour supprimer un groupe d'adresses, procédez comme suit:

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'adresses.

    Accéder à "Groupes d'adresses"

  2. Dans le menu de sélection du projet, sélectionnez votre projet, le cas échéant.

  3. Cochez la case située à côté du groupe d'adresses que vous souhaitez supprimer. Assurez-vous que le groupe d'adresses sélectionné n'est référencé par aucune règle de pare-feu ou de sécurité.

  4. Cliquez sur Supprimer, puis à nouveau sur Supprimer pour confirmer l'opération.

gcloud

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

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

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

Une fois que vous avez créé un groupe d'adresses et y avez 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 présentent deux façons différentes d'utiliser des groupes d'adresses.

Refuser un groupe d'adresses IP

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

evaluateAddressGroup('BAD_IPS', origin.ip)

Réutiliser un groupe de plages d'adresses IP dans plusieurs stratégies de sécurité

Pour cet exemple, imaginons que vous disposiez de la même liste de 10 000 adresses IP que dans l'exemple précédent, mais que certaines d'entre elles soient connues comme des robots d'exploration Web. Vous souhaitez bloquer toutes ces adresses IP de certains services backend, mais autoriser les robots d'exploration Web à accéder à d'autres services backend pour améliorer le référencement naturel (SEO). Suivez les étapes ci-dessous pour refuser l'accès de toutes les adresses à 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é de backend appelée POLICY_1 et 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 et 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 pour faire correspondre les adresses IP des utilisateurs

Pour cet exemple, imaginons que vous disposiez d'un groupe d'adresses IP appelé BAD_IPS contenant 10 000 adresses IP que vous savez malveillantes. De plus, 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 deny de stratégie de sécurité avec la condition de correspondance suivante:

evaluateAddressGroup('BAD_IPS', origin.user_ip)

Pour en savoir plus sur les adresses IP des utilisateurs, consultez les attributs du langage des règles.

Étape suivante