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 vous explique comment utiliser les 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 de réseaux Compute (roles/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 | Administrateur de réseaux Compute (roles/compute.networkAdmin )
|
networksecurity.addressGroups.* |
Découvrir et afficher des groupes d'adresses | Utilisateur de réseau Compute (roles/compute.networkUser ) |
networksecurity.addressGroups.list
|
Pour en savoir plus sur les rôles incluant des autorisations IAM spécifiques, consultez l'index des rôles et autorisations IAM.
Utiliser des groupes d'adresses au niveau du projet
Les sections suivantes expliquent comment créer et modifier des groupes d'adresses au niveau du projet, et comment les utiliser avec vos règles de sécurité.
Créer ou modifier des groupes d'adresses au niveau du projet
Les sections suivantes expliquent comment créer des groupes d'adresses au niveau du projet, comment ajouter et supprimer des adresses dans ces groupes, et comment les supprimer.
Créer un groupe d'adresses au niveau du projet
Lorsque vous créez un groupe d'adresses, vous devez spécifier sa capacité et la version de l'adresse IP à l'aide des indicateurs --capacity
et --type
, respectivement. Vous ne pourrez plus 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, comme le pare-feu Cloud nouvelle génération. Par conséquent, si vous souhaitez utiliser le même groupe d'adresses dans plusieurs produits, vous devez définir une capacité inférieure ou égale à la capacité maximale la plus faible parmi ces produits.
Console
- Dans la console Google Cloud , accédez à la page Groupes d'adresses.
- Dans le menu de sélection du projet, sélectionnez votre projet, le cas échéant.
- Cliquez sur Créer un groupe d'adresses.
- Dans le champ Nom, saisissez un nom.
- (Facultatif) Dans le champ Description, ajoutez une description.
- Pour Champ d'application, sélectionnez Global.
- Dans le champ Type, sélectionnez IPv4 ou IPv6.
Dans le champ Usage, sélectionnez Cloud Armor. Vous pouvez également sélectionner Pare-feu et Cloud Armor si vous prévoyez également d'utiliser le groupe d'adresses avec les règles de pare-feu Cloud Next Generation.
Pour en savoir plus sur le choix d'une finalité, consultez la spécification du groupe d'adresses.
Dans le champ Capacité, saisissez la capacité du groupe d'adresses.
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
.Le nombre d'adresses IP ou de plages d'adresses IP ne peut pas dépasser la capacité configurée.
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'usage sur CLOUD_ARMOR
uniquement. Dans l'exemple suivant, vous créez un groupe d'adresses d'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 au niveau du projet
Une fois que vous avez 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
- Dans la console Google Cloud , accédez à la page Groupes d'adresses.
- Dans le menu de sélection du projet, sélectionnez votre projet, le cas échéant.
- Pour modifier un groupe d'adresses, cliquez sur son nom.
- Cliquez sur Modifier.
- 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.
- 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 au niveau du projet
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
- Dans la console Google Cloud , accédez à la page Groupes d'adresses.
- Dans le menu de sélection du projet, sélectionnez votre projet, le cas échéant.
- Pour modifier un groupe d'adresses, cliquez sur son nom.
- Cliquez sur Modifier.
- Dans le champ Adresses IP, supprimez les éléments que vous souhaitez retirer de la liste d'adresses IP séparées par une virgule.
- 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 au niveau du projet
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 règle de sécurité. Pour supprimer un groupe d'adresses, procédez comme suit :
Console
- Dans la console Google Cloud , accédez à la page Groupes d'adresses.
- Dans le menu de sélection du projet, sélectionnez votre projet, le cas échéant.
- 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 ni aucune stratégie de sécurité.
- 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 au niveau du projet 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 illustrent deux façons différentes d'utiliser les groupes d'adresses.
Refuser un groupe d'adresses IP
Pour cet exemple, imaginez que vous disposez d'un groupe d'adresses IP appelé MALICIOUS_IPS
contenant 10 000 adresses IP que vous savez 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('MALICIOUS_IPS', origin.ip)
Réutiliser un groupe de plages d'adresses IP dans plusieurs stratégies de sécurité
Pour cet exemple, imaginez que vous disposez de la même liste de 10 000 adresses IP que dans l'exemple précédent, mais que certaines de ces adresses sont connues pour être des robots d'exploration Web. Vous souhaitez bloquer toutes ces adresses IP à partir de certains services de backend, mais autoriser les robots d'exploration Web à accéder à d'autres services de backend pour améliorer le référencement naturel (SEO). Procédez comme suit pour refuser l'accès à BACKEND_SERVICE_1
à toutes les adresses, tout en autorisant les plages d'adresses IP 66.249.77.32/27
et 66.249.77.64/27
à accéder à BACKEND_SERVICE_2
:
- Créez une règle de sécurité de backend appelée
POLICY_1
et associez-la àBACKEND_SERVICE_1
. Dans
POLICY_1
, créez une règledeny
avec la condition de correspondance suivante :evaluateAddressGroup('MALICIOUS_IPS', origin.ip)
Créez une deuxième règle de sécurité de backend appelée
POLICY_2
et associez-la àBACKEND_SERVICE_2
.Dans
POLICY_2
, créez une règledeny
avec la condition de correspondance suivante, qui exclut66.249.77.32/27
et66.249.77.64/27
:evaluateAddressGroup('MALICIOUS_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 utiliser un groupe d'adresses afin de faire correspondre les adresses IP du client ("utilisateur") d'origine, vous devez configurer userIpRequestHeaders[]
dans la règle de sécurité.
Il est important de noter que, dans les conditions suivantes, vous recevez l'adresse IP source de la requête et non l'adresse IP du client d'origine, car la valeur de origin.user_ip
est définie par défaut sur la valeur de origin.ip
:
- Vous ne configurez pas l'option
userIpRequestHeaders[]
. - Les en-têtes configurés ne sont pas présents.
- Les en-têtes configurés contiennent des valeurs d'adresse IP non valides.
Pour cet exemple, imaginez que vous disposez d'un groupe d'adresses IP appelé MALICIOUS_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 de stratégie de sécurité deny
avec la condition de correspondance suivante :
evaluateAddressGroup('MALICIOUS_IPS', origin.user_ip)
Pour en savoir plus sur les adresses IP des utilisateurs, consultez Attributs.
Utiliser des groupes d'adresses au niveau de l'organisation
Les sections suivantes expliquent comment créer et modifier des groupes d'adresses au niveau de l'organisation, et comment les utiliser avec vos règles de sécurité.
Créer ou modifier des groupes d'adresses au niveau de l'organisation
Les groupes d'adresses au niveau de l'organisation peuvent être utilisés avec les stratégies de sécurité au niveau du service et les stratégies de sécurité hiérarchiques.
Les sections suivantes expliquent comment créer des groupes d'adresses au niveau de l'organisation, comment y ajouter et en supprimer des adresses, et comment les supprimer.
Créer un groupe d'adresses au niveau de l'organisation
Lorsque vous créez un groupe d'adresses, vous devez spécifier sa capacité et la version de l'adresse IP à l'aide des indicateurs --capacity
et --type
, respectivement. Vous ne pourrez plus 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, comme le pare-feu Cloud nouvelle génération. Par conséquent, si vous souhaitez utiliser le même groupe d'adresses dans plusieurs produits, vous devez définir une capacité inférieure ou égale à la capacité maximale la plus faible parmi ces produits.
Console
- Dans la console Google Cloud , accédez à la page Groupes d'adresses.
- Dans le menu de sélection du projet, sélectionnez votre organisation, si disponible.
- Cliquez sur Créer un groupe d'adresses.
- Dans le champ Nom, saisissez un nom.
- Facultatif : Dans le champ Description, ajoutez une description.
- Pour Champ d'application, sélectionnez Global.
- Dans le champ Type, sélectionnez IPv4 ou IPv6.
Dans Usage, sélectionnez Cloud Armor. Vous pouvez également sélectionner Cloud NGFW et Cloud Armor si vous prévoyez également d'utiliser le groupe d'adresses avec des règles de pare-feu Cloud Next Generation.
Pour en savoir plus sur le choix d'une finalité pour un groupe d'adresses, consultez la section Spécification.
Dans le champ Capacité, saisissez la capacité du groupe d'adresses.
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
.Le nombre d'adresses IP ou de plages d'adresses IP ne peut pas dépasser la capacité configurée.
Cliquez sur Créer.
gcloud
Utilisez l'exemple de commande gcloud network-security org-address-groups create
suivant pour créer un groupe d'adresses au niveau de l'organisation appelé GROUP_NAME
avec une capacité de 1 000 adresses IPv4, qui peut être utilisé avec Google Cloud Armor ou Cloud NGFW :
gcloud beta network-security org-address-groups create GROUP_NAME \ --location global \ --description "org address group description" \ --capacity 1000 \ --type IPv4 \ --purpose DEFAULT,CLOUD_ARMOR
Vous pouvez également créer un groupe d'adresses à l'échelle de l'organisation avec une capacité plus importante en définissant l'objectif sur CLOUD_ARMOR
uniquement. Dans l'exemple suivant, vous allez créer un groupe d'adresses d'une capacité de 10 000 plages d'adresses IP IPv6 :
gcloud beta network-security org-address-groups create GROUP_NAME \ --location global \ --description "org address group description" \ --capacity 10000 \ --type IPv6 \ --purpose CLOUD_ARMOR
Ajouter des éléments à un groupe d'adresses au niveau de l'organisation
Une fois que vous avez créé un groupe d'adresses au niveau de l'organisation, vous pouvez y ajouter des éléments à l'aide de la console Google Cloud ou de la commande gcloud network-security org-address-groups add-items
.
Console
- Dans la console Google Cloud , accédez à la page Groupes d'adresses.
- Dans le menu de sélection du projet, sélectionnez votre organisation, si disponible.
- Pour modifier un groupe d'adresses, cliquez sur son nom.
- Cliquez sur Modifier.
- 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.
- 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
au niveau de l'organisation. Vous fournissez une liste d'éléments séparés par une virgule avec l'indicateur --items
:
gcloud network-security org-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 au niveau de l'organisation
Vous pouvez supprimer des éléments d'un groupe d'adresses au niveau de l'organisation à l'aide de la consoleGoogle Cloud ou de la commande gcloud network-security org-address-groups remove-items
.
Console
- Dans la console Google Cloud , accédez à la page Groupes d'adresses.
- Dans le menu de sélection du projet, sélectionnez votre organisation, si disponible.
- Pour modifier un groupe d'adresses, cliquez sur son nom.
- Cliquez sur Modifier.
- Dans le champ Adresses IP, supprimez les éléments que vous souhaitez retirer de la liste d'adresses IP séparées par une virgule.
- 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 org-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 au niveau de l'organisation
Vous ne pouvez pas supprimer un groupe d'adresses à l'échelle de l'organisation s'il est référencé par une ressource, y compris une règle de pare-feu ou une règle de sécurité. Pour supprimer un groupe d'adresses, procédez comme suit :
Console
- Dans la console Google Cloud , accédez à la page Groupes d'adresses.
- Dans le menu de sélection du projet, sélectionnez votre organisation, si disponible.
- 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 ni aucune stratégie de sécurité.
- Cliquez sur Supprimer, puis à nouveau sur Supprimer pour confirmer l'opération.
gcloud
L'exemple suivant utilise la commande gcloud network-security org-address-groups delete
pour supprimer un groupe d'adresses appelé GROUP_NAME
.
gcloud network-security org-address-groups delete GROUP_NAME \ --location global
Utiliser des groupes d'adresses au niveau de l'organisation 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 illustrent deux façons différentes d'utiliser les groupes d'adresses.
Refuser un groupe d'adresses IP pour tous les services de backend d'une organisation
Pour cet exemple, imaginons que vous disposez d'un groupe d'adresses IP à l'échelle de l'organisation appelé MALICIOUS_IPS
,qui contient 10 000 adresses IP que vous savez malveillantes. Vous pouvez refuser l'accès à toutes ces adresses IP pour tous les services de backend de votre organisation à l'aide d'une seule règle de sécurité hiérarchique. Créez une stratégie de sécurité hiérarchique, puis ajoutez une règle deny
avec la condition de correspondance suivante :
evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)
Enfin, associez la stratégie de sécurité hiérarchique à tous les services de backend de votre organisation, en remplaçant POLICY_NAME
par le nom de votre stratégie de sécurité hiérarchique et ORGANIZATION_ID
par l'ID de votre organisation :
gcloud beta compute org-security-policies associations create \ --security-policy=POLICY_NAME \ --organization=ORGANIZATION_ID
Réutiliser un groupe de plages d'adresses IP pour tous les services de backend d'une organisation
Pour cet exemple, imaginez que vous disposez de la même liste de 10 000 adresses IP que dans l'exemple précédent, mais que certaines de ces adresses sont connues pour être des robots d'exploration Web. Vous souhaitez empêcher les adresses IP des robots d'exploration non Web d'accéder à tous les services de backend de votre organisation, mais vous souhaitez autoriser les règles de sécurité à portée de projet à déterminer si les robots d'exploration Web peuvent accéder à vos services de backend pour améliorer l'optimisation pour les moteurs de recherche (SEO).
Suivez les étapes ci-dessous pour refuser l'accès à BACKEND_SERVICE_1
à toutes les adresses, tout en autorisant les plages d'adresses IP 66.249.77.32/27
et 66.249.77.64/27
à accéder à BACKEND_SERVICE_2
:
- Créez une stratégie de sécurité backend appelée
BACKEND_POLICY_1
. Ajoutez une règle
deny
àBACKEND_POLICY_1
avec la condition de correspondance suivante, qui bloque toutes les adresses IP dansMALICIOUS_IPS
:evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip)
Exécutez la commande suivante pour associer
BACKEND_POLICY_1
àBACKEND_SERVICE_1
:gcloud compute backend-services update BACKEND_SERVICE_1 \ --security-policy BACKEND_POLICY_1
Créez une deuxième règle de sécurité de backend appelée
BACKEND_POLICY_2
.Ajoutez une règle
deny
àBACKEND_POLICY_2
avec la condition de correspondance suivante, qui bloque toutes les adresses IP deMALICIOUS_IPS
, à l'exception de66.249.77.32/27
et66.249.77.64/27
:evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.ip, [`66.249.77.32/27`, `66.249.77.64/27`])
Exécutez la commande suivante pour associer
BACKEND_POLICY_2
àBACKEND_SERVICE_2
. RemplacezORG_ID
par l'ID de votre organisation :gcloud compute backend-services update BACKEND_SERVICE_2 \ --security-policy BACKEND_POLICY_2
Utiliser un groupe d'adresses pour faire correspondre les adresses IP des utilisateurs à tous les services de backend d'une organisation
Pour cet exemple, imaginez que vous disposez d'un groupe d'adresses IP appelé MALICIOUS_IPS
contenant 10 000 adresses IP que vous savez malveillantes. De plus, vous utilisez un proxy en amont, qui inclut des informations sur l'adresse IP du client d'origine dans l'en-tête. Vous pouvez interdire à toutes ces adresses IP d'accéder à tous les services de backend de votre organisation en utilisant une seule règle de stratégie de sécurité deny
avec la condition de correspondance suivante :
evaluateOrganizationAddressGroup('MALICIOUS_IPS', origin.user_ip)
Pour en savoir plus sur les adresses IP des utilisateurs, consultez Attributs.