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é.
Exemples de stratégies de sécurité
Créer des règles de sécurité
Vous pouvez utiliser la console Trusted Cloud ou la gcloud CLI pour créer des stratégies de sécurité. 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 existants. 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é Cloud Armor, et associez une stratégie de sécurité à un service de backend :
Dans la console Trusted 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 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 savoir comment écrire les expressions, consultez 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é 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é de 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 Configurer les attributs du 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 "evaluatePreconfiguredWaf('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 "evaluatePreconfiguredWaf('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é Cloud Armor à portée régionale pour les équilibreurs de charge d'application externes régionaux.
Protéger les charges de travail à équilibrage de charge régional
Pour configurer une règle de sécurité afin de protéger votre service de backend à portée régionale, procédez comme suit :
Créez une règle de sécurité à portée régionale.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
Associez la règle 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 règle de sécurité Cloud Armor à portée régionale
Prenons l'exemple d'un administrateur de sécurité qui souhaite répondre à une exigence de résidence selon laquelle toutes ses charges de travail de backend et ses règles WAF doivent être déployées dans une région spécifique. Supposons que vous ayez déjà effectué les opérations suivantes :
- Vous avez créé des services de backend à équilibrage de charge de portée 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é à portée 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 respectant les 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="evaluatePreconfiguredWaf('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
Étapes suivantes
- Configurer les règles de sécurité Cloud Armor
- En savoir plus sur la limitation du débit