Cette page décrit des exemples de configurations de règles de sécurité pour différents types d'équilibreurs de charge et de règles de sécurité.
Configurer des stratégies de sécurité pour les équilibreurs de charge d'application externes
Vous trouverez ci-dessous les principales étapes à suivre pour configurer des stratégies de sécurité Google Cloud Armor afin d'activer des règles qui autorisent ou refusent le trafic vers l'équilibreur de charge d'application externe global ou l'équilibreur de charge d'application classique:
- Créez une stratégie de sécurité Google Cloud Armor.
- Ajoutez des règles à la stratégie de sécurité en fonction de listes d'adresses IP, d'expressions personnalisées ou d'ensembles d'expressions préconfigurés.
- Associez la stratégie de sécurité à un service de backend de l'équilibreur de charge d'application externe global ou de l'équilibreur de charge d'application classique dont vous souhaitez contrôler l'accès.
- Mettez à jour la stratégie de sécurité si nécessaire.
Dans l'exemple suivant, vous créez deux stratégies de sécurité Google Cloud Armor et les appliquez à différents services de backend.
Dans l'exemple, les stratégies de sécurité Google Cloud Armor sont les suivantes :
mobile-clients-policy
s'applique aux utilisateurs externes de vos servicesgames
.internal-users-policy
s'applique à l'équipetest-network
de votre organisation.
Vous appliquez mobile-clients-policy
au service games
, dont le service de backend est appelé games
, et vous appliquez internal-users-policy
au service test
interne pour l'équipe de test, dont le service de backend correspondant est appelé test-network
.
Si les instances backend d'un service de backend se trouvent dans plusieurs régions, la stratégie de sécurité Google Cloud Armor associée au service est applicable aux instances de toutes les régions. Dans l'exemple précédent, la stratégie de sécurité mobile-clients-policy
s'applique aux instances 1, 2, 3 et 4 dans us-central
, ainsi qu'aux instances 5 et 6 dans us-east
.
Créer l'exemple
Suivez ces instructions pour créer l'exemple de configuration décrit dans la section précédente.
Console
Configurez la stratégie de sécurité pour les utilisateurs externes :
Dans la console Google Cloud, accédez à la page Règles Google Cloud Armor.
Cliquez sur Créer des règles.
Dans le champ Nom, saisissez
mobile-clients-policy
.Dans le champ Description, saisissez
Policy for external users
.Dans le champ Action de règle par défaut, sélectionnez Refuser.
Dans le champ État de refus, sélectionnez 404 (introuvable).
Cliquez sur Next step (Étape suivante).
Ajouter d'autres règles :
- Cliquez sur Add rule (Ajouter une règle).
- Dans le champ Description, saisissez
allow traffic from 192.0.2.0/24
. - Dans le champ Mode, sélectionnez Mode de base (adresses/plages d'adresses IP uniquement).
- Dans le champ Correspondance, saisissez
192.0.2.0/24
. - Dans le champ Action, sélectionnez Autoriser.
- Dans le champ Priorité, saisissez
1000
. - Cliquez sur OK.
- Cliquez sur Next step (Étape suivante).
Appliquer les règles aux cibles :
- Cliquez sur Add Target (Ajouter une cible).
- Dans la liste Cible, sélectionnez une cible.
- Cliquez sur OK.
- Cliquez sur Créer une règle.
Vous pouvez également activer Google Cloud Armor Adaptive Protection:
- Pour activer Adaptive Protection, cochez la case Activer.
Configurez la stratégie de sécurité pour les utilisateurs internes :
- Cliquez sur Créer des règles.
- Dans le champ Nom, saisissez
internal-users-policy
. - Dans le champ Description, saisissez
Policy for internal test users
. - Dans le champ Action de règle par défaut, sélectionnez Refuser.
- Dans le champ État de refus, sélectionnez 502 (passerelle incorrecte).
- Cliquez sur Next step (Étape suivante).
Ajouter d'autres règles :
- Cliquez sur Add rule (Ajouter une règle).
- Dans le champ Description, saisissez
allow traffic from 198.51.100.0/24
. - Dans le champ Mode, sélectionnez Mode de base (adresses/plages d'adresses IP uniquement).
- Dans le champ Correspondance, saisissez
198.51.100.0/24
. - Dans le champ Action, sélectionnez Autoriser.
- Dans le champ Aperçu uniquement, cochez la case Activer.
- Dans le champ Priorité, saisissez
1000
. - Cliquez sur OK.
- Cliquez sur Next step (Étape suivante).
Appliquer les règles aux cibles :
- Cliquez sur Add Target (Ajouter une cible).
- Dans la liste Cible, sélectionnez une cible.
- Cliquez sur OK.
- Cliquez sur Créer une règle.
gcloud
Créez les stratégies de sécurité Google Cloud Armor :
gcloud compute security-policies create mobile-clients-policy \ --description "policy for external users"
gcloud compute security-policies create internal-users-policy \ --description "policy for internal test users"
Remplacez les règles par défaut par les stratégies de sécurité pour refuser le trafic :
gcloud compute security-policies rules update 2147483647 \ --security-policy mobile-clients-policy \ --action "deny-404"
gcloud compute security-policies rules update 2147483647 \ --security-policy internal-users-policy \ --action "deny-502"
Ajoutez des règles aux stratégies de sécurité :
gcloud compute security-policies rules create 1000 \ --security-policy mobile-clients-policy \ --description "allow traffic from 192.0.2.0/24" \ --src-ip-ranges "192.0.2.0/24" \ --action "allow"
gcloud compute security-policies rules create 1000 \ --security-policy internal-users-policy \ --description "allow traffic from 198.51.100.0/24" \ --src-ip-ranges "198.51.100.0/24" \ --action "allow"
Associez les stratégies de sécurité aux services de backend :
gcloud compute backend-services update games \ --security-policy mobile-clients-policy
gcloud compute backend-services update test-network \ --security-policy internal-users-policy
Vous pouvez également activer Adaptive Protection :
gcloud compute security-policies update mobile-clients-policy \ --enable-layer7-ddos-defense
gcloud compute security-policies update internal-users-policy \ --enable-layer7-ddos-defense
Créer des règles de sécurité
Vous pouvez créer des stratégies de sécurité à l'aide de la console Google Cloud ou de gcloud CLI. Les instructions de cette section partent du principe que vous configurez des stratégies de sécurité à appliquer à un équilibreur de charge d'application externe global ou à un équilibreur de charge d'application classique et à un service de backend. Pour découvrir comment remplir les champs, consultez la section Créer l'exemple.
Console
Créez des règles et des stratégies de sécurité Google Cloud Armor, et associez une stratégie de sécurité à un service de backend :
Dans la console Google Cloud, accédez à la page Règles Google Cloud Armor.
Cliquez sur Créer des règles.
Dans le champ Nom, saisissez le nom de votre stratégie.
Facultatif : saisissez une description de la stratégie.
Pour le champ Type de stratégie, sélectionnez Stratégie de sécurité backend ou Stratégie de sécurité périphérique.
Dans le champ Action de règle par défaut, sélectionnez Autoriser pour une règle par défaut qui autorise l'accès à une adresse IP ou à une plage d'adresses IP, ou Refuser pour une règle par défaut qui en interdit l'accès.
La règle par défaut est la règle de priorité la plus basse qui ne prend effet que si aucune autre règle ne s'applique.
Si vous configurez une règle de refus, sélectionnez un message État de refus. Il s'agit du message d'erreur que Google Cloud Armor affiche si un utilisateur sans droit d'accès effectue une tentative d'accès.
Quel que soit le type de règle que vous configurez, cliquez sur Étape suivante.
Ajouter d'autres règles :
- Cliquez sur Add rule (Ajouter une règle).
- Facultatif : entrez la description de la règle.
Sélectionner le mode :
- Mode de base : autorisez ou refusez le trafic en fonction d'adresses IP ou de plages d'adresses IP.
- Mode avancé : autorisez ou refusez le trafic en fonction d'expressions de règle.
Dans le champ Correspondance, spécifiez les conditions dans lesquelles la règle s'applique :
- Mode de base : saisissez les adresses IP ou les plages d'adresses IP à mettre en correspondance dans la règle.
- Mode avancé : saisissez une expression ou des sous-expressions avec lesquelles évaluer les requêtes entrantes. Pour en savoir plus sur la façon d'écrire les expressions, consultez la section Configurer les attributs de langage des règles personnalisées.
Dans le champ Action, sélectionnez Autoriser ou Refuser pour autoriser ou refuser le trafic si la règle correspond.
Pour activer le mode Aperçu, cochez la case Activer. En mode aperçu, vous pouvez voir comment la règle se comporte, mais celle-ci n'est pas activée.
Saisissez la priorité de la règle. Il peut s'agir de n'importe quel entier positif compris entre 0 et 2 147 483 646 (inclus). Pour en savoir plus sur l'ordre d'évaluation, consultez la section Ordre d'évaluation des règles.
Cliquez sur OK.
Pour ajouter d'autres règles, cliquez sur Ajouter une règle, puis répétez les étapes précédentes. Sinon, cliquez sur Étape suivante.
Appliquer les règles aux cibles :
- Cliquez sur Add Target (Ajouter une cible).
- Dans la liste Cible, sélectionnez une cible.
- Pour ajouter d'autres cibles, cliquez sur Ajouter une cible.
- Cliquez sur OK.
- Cliquez sur Créer une règle.
gcloud
Pour créer une stratégie de sécurité Google Cloud Armor, utilisez la commande
gcloud compute security-policies create
.Dans le champ
type
, utilisezCLOUD_ARMOR
pour créer une stratégie de sécurité backend ouCLOUD_ARMOR_EDGE
pour créer une stratégie de sécurité périphérique. L'optiontype
est facultative. Si aucun type n'est spécifié, une stratégie de sécurité backend est créée par défaut:gcloud compute security-policies create NAME \ [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \ [--file-format=FILE_FORMAT | --description=DESCRIPTION] \ [--file-name=FILE_NAME]
Remplacez les éléments suivants :
NAME
: nom de la stratégie de sécuritéDESCRIPTION
: description de la stratégie de sécurité
La commande suivante met à jour une stratégie que vous avez créée précédemment, active l'analyse JSON et modifie le niveau de journalisation en
VERBOSE
:gcloud compute security-policies update my-policy \ --json-parsing=STANDARD \ --log-level=VERBOSE
Pour ajouter des règles à une stratégie de sécurité, utilisez la commande
gcloud compute security-policies rules create PRIORITY
.gcloud compute security-policies rules create PRIORITY \ [--security-policy POLICY_NAME] \ [--description DESCRIPTION] \ --src-ip-ranges IP_RANGE,... | --expression EXPRESSION \ --action=[ allow | deny-403 | deny-404 | deny-502 ] \ [--preview]
Remplacez
PRIORITY
par la priorité attribuée à la règle dans la stratégie. Pour en savoir plus sur le fonctionnement de la priorité des règles, consultez la section Ordre d'évaluation des règles.Par exemple, la commande suivante ajoute une règle pour bloquer le trafic provenant des plages d'adresses IP
192.0.2.0/24
et198.51.100.0/24
. La règle a la priorité 1000, et il s'agit d'une règle d'une stratégie appeléemy-policy
.gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \ --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \ --action "deny-403"
Si vous ajoutez l'option
--preview
, la règle est ajoutée à la stratégie, mais elle n'est pas appliquée, et tout trafic qui déclenche la règle est uniquement consigné.gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \ --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \ --action "deny-403" \ --preview
Utilisez l'option
--expression
pour spécifier une condition personnalisée. Pour en savoir plus, consultez la section Configurer les attributs de langage des règles personnalisées. La commande suivante ajoute une règle pour autoriser le trafic provenant de l'adresse IP1.2.3.4
et contient la chaîneexample
dans l'en-tête user-agent :gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \ --action allow \ --description "Block User-Agent 'example'"
La commande suivante ajoute une règle pour bloquer les requêtes si leur cookie contient une valeur spécifique :
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')" \ --action "deny-403" \ --description "Cookie Block"
La commande suivante ajoute une règle pour bloquer les requêtes provenant de la région
AU
:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "origin.region_code == 'AU'" \ --action "deny-403" \ --description "AU block"
La commande suivante ajoute une règle pour bloquer les requêtes de la région
AU
qui ne se trouvent pas dans la plage d'adresses IP spécifiée :gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "origin.region_code == 'AU' && !inIpRange(origin.ip, '1.2.3.0/24')" \ --action "deny-403" \ --description "country and IP block"
La commande suivante ajoute une règle pour bloquer les requêtes dont l'URI correspond à une expression régulière :
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "request.path.matches('/example_path/')" \ --action "deny-403" \ --description "regex block"
La commande suivante ajoute une règle pour bloquer les requêtes si la valeur décodée en base64 de l'en-tête
user-id
contient une valeur spécifique :gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \ --action "deny-403" \ --description "country and IP block"
La commande suivante ajoute une règle qui utilise un ensemble d'expressions préconfiguré pour atténuer les attaques SQLi :
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredExpr('sqli-stable')" \ --action "deny-403"
La commande suivante ajoute une règle qui utilise une expression préconfigurée pour autoriser l'accès à partir de toutes les adresses IP d'une liste d'adresses IP nommée :
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredExpr('sourceiplist-fastly')" \ --action "allow"
Configurer des stratégies de sécurité pour les équilibreurs de charge d'application externes régionaux
Cette section contient des informations sur la configuration des règles de sécurité Google Cloud Armor à portée régionale pour les équilibreurs de charge d'application externes régionaux.
Protéger les charges de travail équilibrées de charge régionale
Pour configurer une stratégie de sécurité afin de protéger votre service de backend à l'échelle régionale, procédez comme suit:
Créez une stratégie de sécurité à l'échelle régionale.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
Associez la stratégie de sécurité à l'échelle régionale à un service de backend à l'échelle régionale. Remplacez
BACKEND_NAME
par le nom de votre service de backend existant à portée régionale.gcloud compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Appliquer une stratégie de sécurité Google Cloud Armor à l'échelle régionale
Imaginons que vous soyez un administrateur de sécurité qui souhaite répondre à une exigence de résidence selon laquelle toutes vos charges de travail backend et vos règles WAF doivent être déployées dans une région spécifique. Supposons que vous ayez effectué les opérations suivantes au préalable:
- Vous avez créé des services de backend à équilibrage de charge à l'échelle régionale dans la région.
- Vous avez désactivé toutes les règles de sécurité à portée globale existantes dans votre déploiement.
- Vous avez créé et associé une règle de sécurité à l'échelle régionale dans la même région (comme dans la section précédente).
Vous pouvez ajouter des règles WAF et d'autres règles avancées à votre stratégie tout en répondant aux exigences à l'aide des exemples de commandes suivants:
Ajoutez une règle WAF à la stratégie:
gcloud compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredExpr('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \ --security-policy=POLICY_NAME \ --region=REGION
Ajoutez une règle avancée à la stratégie:
gcloud compute security-policies rules create 1000 --action=allow \ --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \ --security-policy=POLICY_NAME \ --region=REGION
Ajoutez une règle de limitation du débit à la stratégie:
gcloud compute security-policies rules create 1000 --action=throttle \ --src-ip-ranges="1.1.1.1/32" \ --rate-limit-threshold-count=1000 \ --rate-limit-threshold-interval-sec=120 \ --conform-action="allow" \ --exceed-action="deny-429" \ --enforce-on-key=IP \ --ban-duration-sec=999 \ --ban-threshold-count=5000 \ --ban-threshold-interval-sec=60 \ --security-policy=POLICY_NAME \ --region=REGION
Étape suivante
- Configurer les stratégies de sécurité Google Cloud Armor
- En savoir plus sur la limitation du débit