GSP877
Présentation
L'équilibrage de charge HTTP(S) Google Cloud est déployé à la périphérie du réseau Google dans les points de présence (POP) de Google à travers le monde. Le trafic utilisateur dirigé vers un équilibreur de charge HTTP(S) entre dans le POP le plus proche de l'utilisateur. Ensuite, l'équilibrage de la charge sur le réseau mondial de Google permet d'acheminer le trafic jusqu'au backend le plus proche disposant d'une capacité suffisante.
Cloud Armor est le système de détection des attaques par déni de service distribué (DDoS) et pare-feu d'application Web (WAF) de Google. Cloud Armor est étroitement associé à l'équilibreur de charge HTTP de Google Cloud et protège les applications des clients Google Cloud contre les attaques provenant d'Internet.
reCAPTCHA Enterprise est un service qui s'appuie sur l'API reCAPTCHA. Il protège votre site contre le spam et les abus en utilisant des techniques avancées d'analyse des risques pour distinguer les humains des robots. La gestion de bots Cloud Armor fournit une solution complète qui intègre la détection de bots et les scores reCAPTCHA Enterprise à l'application de règles par Cloud Armor à la périphérie du réseau pour protéger les applications en aval.
Dans cet atelier, vous allez configurer un équilibreur de charge HTTP avec un backend, comme illustré dans le schéma ci-dessous. Vous configurerez une clé de site pour un jeton de session reCAPTCHA et l'intégrerez à votre site Web. Vous configurerez également la redirection vers une question d'authentification manuelle reCAPTCHA Enterprise. Ensuite, vous configurerez une stratégie de gestion de bots Cloud Armor pour voir comment la détection des bots protège votre application contre le trafic de bots malveillants.

Points abordés
Dans cet atelier, vous allez apprendre à :
- Configurer un équilibreur de charge HTTP avec des vérifications de l'état appropriées
- Créer une clé de site pour la page de test WAF reCAPTCHA et l'associer à une stratégie de sécurité Cloud Armor
- Créer une clé de site pour un jeton de session reCAPTCHA et l'installer sur vos pages Web
- Créer une stratégie de gestion de bots Cloud Armor
- Vérifier que la stratégie de gestion de bots gère le trafic en fonction des règles configurées
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Avant de commencer
- Dans Cloud Shell, configurez votre ID de projet :
export PROJECT_ID=$(gcloud config get-value project)
echo $PROJECT_ID
gcloud config set project $PROJECT_ID
Activer les API
- Activez tous les services nécessaires :
gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com
gcloud services enable recaptchaenterprise.googleapis.com
Vous êtes maintenant prêt à commencer la première tâche.
Tâche 1 : Configurer des règles de pare-feu pour autoriser le trafic HTTP et SSH vers les backends
Pour cet atelier, vous utilisez le réseau VPC par défaut créé dans votre projet au démarrage de l'atelier.
Dans cette section, vous allez configurer des règles de pare-feu pour autoriser le trafic HTTP vers les backends à partir des vérifications de l'état Google Cloud et de l'équilibreur de charge. Vous configurerez ensuite une règle de pare-feu pour autoriser la connexion SSH aux instances.
Créer une règle de pare-feu pour autoriser le trafic HTTP vers les backends
Les vérifications de l'état déterminent les instances d'un équilibreur de charge qui peuvent recevoir de nouvelles connexions. Pour l'équilibrage de charge HTTP, les vérifications de l'état portant sur vos instances à équilibrage de charge proviennent d'adresses situées dans les plages 130.211.0.0/22 et 35.191.0.0/16. Vos règles de pare-feu VPC doivent autoriser ces connexions. De plus, les équilibreurs de charge communiquent avec le backend sur la même plage d'adresses IP.
Pour créer une règle de pare-feu autorisant le trafic HTTP vers les backends :
- Dans la console Google Cloud, dans le menu principal, sous la section Produits, accédez à Réseau VPC, puis sélectionnez Pare-feu.
- Notez la présence de règles de pare-feu ICMP, internes, RDP et SSH existantes. Chaque projet Google Cloud commence avec le réseau par défaut et ces règles de pare-feu.
- Cliquez sur Créer une règle de pare-feu.
- Indiquez les valeurs suivantes et conservez les valeurs par défaut des autres paramètres :
Propriété |
Valeur (saisissez la valeur ou sélectionnez l'option spécifiée) |
Nom |
default-allow-health-check |
Réseau |
par défaut |
Cibles |
Tags cibles spécifiés |
Tags cibles |
allow-health-check |
Filtre source |
Plages IPv4 |
Plages IPv4 sources |
130.211.0.0/22, 35.191.0.0/16 |
Protocoles et ports |
Protocoles et ports spécifiés, puis cochez tcp . Saisissez 80 pour le numéro de port. |
Remarque : Veillez à renseigner les deux propriétés Plages IPv4 sources individuellement et à appuyer sur la touche ESPACE entre chaque valeur.
- Cliquez sur Créer.
Vous pouvez également utiliser la commande suivante dans la ligne de commande gcloud :
gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check
- De même, créez une règle de pare-feu pour autoriser la connexion SSH aux instances :
gcloud compute firewall-rules create allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --target-tags=allow-health-check
Cliquez sur Vérifier ma progression pour valider l'objectif.
Configurer des règles de pare-feu pour autoriser le trafic HTTP et SSH vers les backends
Tâche 2 : Configurer les modèles d'instances et créer les groupes d'instances
Un groupe d'instances géré crée un groupe d'instances identiques à l'aide d'un modèle d'instance. Utilisez ces instances pour créer les backends de l'équilibreur de charge HTTP.
Configurer les modèles d'instances
Un modèle d'instance est une ressource qui peut vous servir à créer des instances de VM et des groupes d'instances gérés. Les modèles d'instances définissent le type de machine, l'image disque de démarrage, le sous-réseau, les étiquettes et d'autres propriétés d'instance.
Pour créer un modèle d'instance :
- Dans la console, dans le menu principal, sous la section Produits, accédez à Compute Engine, puis dans la section Machines virtuelles, sélectionnez Modèles d'instances.
- Dans l'en-tête de la page Modèles d'instances, cliquez sur Créer un modèle d'instance.
- Dans le champ Nom, saisissez lb-backend-template.
- Dans le champ Emplacement, sélectionnez Mondial.
- Dans Série, sélectionnez N1.
- Cliquez sur Options avancées.
- Dans l'onglet Gestion, faites défiler l'écran jusqu'à la section Automatisation et insérez le script suivant dans le champ Script de démarrage :
#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo a2ensite default-ssl
sudo a2enmod ssl
sudo su
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://metadata.google.internal/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
- Dans Options avancées, cliquez sur l'onglet Mise en réseau et saisissez allow-health-check sous la zone de texte Tags réseau.
- Indiquez les valeurs suivantes et conservez les valeurs par défaut des autres paramètres :
Propriété |
Valeur (saisissez la valeur ou sélectionnez l'option spécifiée) |
Réseau (sous "Interfaces réseau") |
par défaut |
Sous-réseau (sous "Interfaces réseau") |
par défaut () |
Tags réseau |
allow-health-check |
Remarque : Le tag réseau allow-health-check assure que les règles de pare-feu HTTP Health Check et SSH s'appliquent à ces instances.
- Cliquez sur Créer.
Attendez que le modèle d'instance soit créé.
Créer le groupe d'instances géré
Pour créer le groupe d'instances géré :
-
Dans le menu de navigation Compute Engine, cliquez sur Groupes d'instances sous la section Groupe d'instances.
-
Cliquez sur Créer un groupe d'instances.
-
Assurez-vous que l'option Nouveau groupe d'instances géré (sans état) est sélectionnée.
-
Indiquez les valeurs suivantes et conservez les valeurs par défaut des autres paramètres :
Propriété |
Valeur (saisissez la valeur ou sélectionnez l'option spécifiée) |
Nom |
lb-backend-example |
Modèle d'instance |
lb-backend-template |
Emplacement |
Zone unique |
Région |
|
Zone |
|
Autoscaling |
Réglez le mode autoscaling sur Désactivé : ne pas effectuer d'autoscaling. |
Nombre minimal d'instances |
1 |
- Cliquez sur Créer.
Ajouter un port nommé au groupe d'instances
- Pour votre groupe d'instances, définissez un service HTTP et mappez un nom de port sur le port correspondant en collant l'extrait de code suivant dans Cloud Shell :
gcloud compute instance-groups set-named-ports lb-backend-example \
--named-ports http:80 \
--zone {{{project_0.startup_script.lab_zone|lab_zone}}}
Le service d'équilibrage de charge transfère le trafic vers le port nommé.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Configurer les modèles d'instances et créer les groupes d'instances
Tâche 3 : Configurer l'équilibreur de charge HTTP
Dans cette section, vous allez configurer l'équilibreur de charge HTTP pour qu'il envoie le trafic à votre backend lb-backend-example.
Démarrer la configuration
-
Dans la console, accédez au menu de navigation, cliquez sur Afficher tous les produits, puis sélectionnez Services réseau. Vous êtes automatiquement redirigé vers la page Équilibrage de charge.
-
Cliquez sur Créer un équilibreur de charge.
-
Vérifiez que l'option Équilibreur de charge d'application (HTTP/HTTPS) est sélectionnée, puis cliquez sur Suivant.
-
Vérifiez que l'option Public (externe) est sélectionnée, puis cliquez sur Suivant.
-
Vérifiez que l'option Recommandé pour les charges de travail à l'échelle mondiale est sélectionnée, puis cliquez sur Suivant.
-
Vérifiez que l'option Équilibreur de charge d'application externe global est sélectionnée, puis cliquez sur Suivant.
-
Sélectionnez Configurer.
-
Dans la zone de texte Nom de l'équilibreur de charge, saisissez http-lb.
Configurer l'interface
- Cliquez sur Configuration de l'interface.
- Spécifiez les paramètres suivants et conservez les valeurs par défaut des autres paramètres :
Propriété |
Valeur (saisissez la valeur ou sélectionnez l'option spécifiée) |
Protocole |
HTTP |
Version IP |
IPv4 |
Adresse IP |
Éphémère |
Port |
80 |
- Cliquez sur OK.
Configurer le backend
Les services de backend dirigent le trafic entrant vers un ou plusieurs backends associés. Chaque backend est composé d'un groupe d'instances et de métadonnées sur sa capacité de livraison supplémentaire.
- Sur la page Créer un équilibreur de charge d'application externe global, cliquez sur Configuration du backend.
- Pour Services de backend et buckets backend, cliquez sur Créer un service de backend.
- Indiquez les valeurs suivantes et conservez les valeurs par défaut des autres paramètres :
Propriété |
Valeur (sélectionnez l'option spécifiée) |
Nom |
http-backend |
Protocole |
HTTP |
Port nommé |
http |
Groupe d'instances (sous "Nouveau backend") |
lb-backend-example |
Numéros de ports |
80 |
Mode cache |
Utiliser les paramètres d'origine basés sur les en-têtes Cache-Control |
Vérification de l'état |
Créer une vérification d'état |
- Sur la page Vérification d'état, indiquez les valeurs suivantes et conservez les valeurs par défaut des autres paramètres :

- Indiquez les valeurs suivantes et conservez les valeurs par défaut des autres paramètres :
Propriété |
Valeur (sélectionnez l'option spécifiée) |
Nom |
http-health-check |
Protocole |
TCP |
Port |
80 |
Remarque : Les vérifications d'état déterminent les instances qui peuvent recevoir de nouvelles connexions.
Cette vérification de l'état HTTP sonde les instances toutes les cinq secondes, attend une réponse pendant cinq secondes, puis considère deux tentatives ayant réussi ou ayant échoué comme un état opérationnel ou non opérationnel, respectivement.
- Cliquez sur Créer pour créer la vérification d'état.
- Cochez la case Activer la journalisation.
- Assurez-vous que le taux d'échantillonnage est défini sur 1.
- Cliquez sur Créer pour créer le service de backend, puis sur OK.
Examiner et créer l'équilibreur de charge HTTP
Les règles d'hôte et de chemin d'accès déterminent la manière dont le trafic est dirigé. Par exemple, vous pouvez diriger le trafic vidéo vers un backend et le trafic statique vers un autre backend. Toutefois, vous n'apprendrez pas à configurer les règles d'hôte et de chemin d'accès dans cet atelier.
- Cliquez sur Vérifier et finaliser (facultatif).

- Vérifiez les services de backend et l'interface.
- Cliquez sur Créer.
Attendez jusqu'à ce que l'équilibreur de charge soit créé.
- Cliquez sur le nom de l'équilibreur de charge (http-lb).
- Notez l'adresse IPv4 de l'équilibreur de charge pour la prochaine tâche. Dans cet atelier, elle sera appelée
[LB_IP_v4]
.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Configurer l'équilibreur de charge HTTP
Tester l'équilibreur de charge HTTP
Maintenant que vous avez créé l'équilibreur de charge HTTP pour vos backends, vérifiez que le trafic est transféré au service de backend.
- Pour tester l'accès IPv4 à l'équilibreur de charge HTTP, ouvrez un nouvel onglet dans votre navigateur et accédez à http://[LB_IP_v4]. Veillez à remplacer
[LB_IP_v4]
par l'adresse IPv4 de l'équilibreur de charge.
Remarque : L'accès à l'équilibreur de charge HTTP peut prendre jusqu'à cinq minutes. Il se peut que des erreurs 404 ou 502 apparaissent. Réessayez jusqu'à ce que la page se charge.
Tâche 4 : Créer et déployer une clé de site pour un jeton de session reCAPTCHA et la page de test
L'intégration de reCAPTCHA Enterprise pour WAF et Google Cloud Armor présente les fonctionnalités suivantes : page de test reCAPTCHA, jetons d'action reCAPTCHA et jetons de session reCAPTCHA. Lors de cette tâche, vous allez implémenter la clé de site pour un jeton de session reCAPTCHA et la clé de site pour la page de test WAF reCAPTCHA.
Créer une clé de site pour un jeton de session reCAPTCHA et la page de test WAF
Avant de créer la clé de site pour un jeton de session et la clé de site pour la page de test, vérifiez que vous avez bien activé l'API reCAPTCHA Enterprise comme indiqué dans la section Activer l'API précédente.
Le code JavaScript reCAPTCHA définit un jeton de session reCAPTCHA en tant que cookie sur le navigateur de l'utilisateur final après l'évaluation. Le navigateur de l'utilisateur final associe le cookie et l'actualise tant que le code JavaScript reCAPTCHA reste actif.
- Créez la clé de site pour un jeton de session reCAPTCHA et activez la fonctionnalité WAF pour cette clé :
gcloud recaptcha keys create --display-name=test-key-name \
--web --allow-all-domains --integration-type=score --testing-score=0.5 \
--waf-feature=session-token --waf-service=ca
Le résultat de la commande ci-dessus vous donne la clé de site pour un jeton de session que vous avez créée. Prenez-en note pour l'utiliser plus tard dans cette tâche.
Vous définissez également le service WAF sur Cloud Armor pour activer l'intégration de Cloud Armor.
Remarque : Vous utilisez le type d'intégration score, qui est exploité dans la règle Cloud Armor. Vous pouvez également utiliser checkbox et invisible.
Vous définissez également un score de test lorsque vous créez la clé pour valider que les stratégies de gestion de bots créées avec Cloud Armor fonctionnent comme prévu. Comme il n'est pas facile de répliquer le trafic des bots, c'est un bon moyen de tester la fonctionnalité.
- Créez la clé de site de la page de test WAF reCAPTCHA et activez la fonctionnalité WAF pour cette clé. Vous pouvez utiliser la fonctionnalité de page de test reCAPTCHA pour rediriger les requêtes entrantes vers reCAPTCHA Enterprise afin de déterminer si chacune d'elles est potentiellement frauduleuse ou légitime. Ensuite, vous associez cette clé à la stratégie de sécurité Cloud Armor pour activer la question d'authentification manuelle. Dans cet atelier, cette clé est appelée
CHALLENGE-PAGE-KEY
dans les étapes suivantes.
gcloud recaptcha keys create --display-name=challenge-page-key \
--web --allow-all-domains --integration-type=INVISIBLE \
--waf-feature=challenge-page --waf-service=ca
- Accédez au menu de navigation (
) > Sécurité > reCAPTCHA. Les clés que vous avez créées doivent s'afficher dans la liste Clés reCAPTCHA :
Implémenter une clé de site pour un jeton de session reCAPTCHA
- Dans le menu principal de la console Google Cloud, accédez à Compute Engine, puis sélectionnez Instances de VM. Localisez la VM dans votre groupe d'instances et cliquez sur SSH dans la colonne Connecter. Sur la page vers laquelle vous êtes redirigé, cliquez sur Autoriser.

- Accédez au répertoire racine du serveur Web et passez à l'utilisateur racine en saisissant le code suivant dans le shell SSH dans le navigateur :
cd /var/www/html/
sudo su
- Mettez à jour la page de destination
index.html
et intégrez la clé de site pour un jeton de session reCAPTCHA. La clé de site pour un jeton de session (que vous avez notée précédemment) est définie dans la section <head> de votre page de destination, comme suit :
src="https://www.google.com/recaptcha/enterprise.js?render=<SESSION_TOKEN_SITE_KEY>&waf=session" async defer>
N'oubliez pas de remplacer <SESSION_TOKEN_SITE_KEY>
par le jeton de site avant d'exécuter la commande suivante :
echo '<!doctype html><html><head><title>ReCAPTCHA Session Token</title><script src="https://www.google.com/recaptcha/enterprise.js?render=<SESSION_TOKEN_SITE_KEY>&waf=session" async defer></script></head><body><h1>Main Page</h1><p><a href="/good-score.html">Visit allowed link</a></p><p><a href="/bad-score.html">Visit blocked link</a></p><p><a href="/median-score.html">Visit redirect link</a></p></body></html>' > index.html
- Créez trois autres pages d'exemple pour tester les stratégies de gestion de bots :
echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Congrats! You have a good score!!</h1></body></html>' > good-score.html
echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Sorry, You have a bad score!</h1></body></html>' > bad-score.html
echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>You have a median score that we need a second verification.</h1></body></html>' > median-score.html
Vérifiez que vous pouvez accéder à toutes les pages Web en les ouvrant dans votre navigateur. Veillez à remplacer [LB_IP_v4]
par l'adresse IPv4 de l'équilibreur de charge :
- Ouvrez
http://[LB_IP_v4]/index.html
. Vous pouvez vérifier que l'implémentation de reCAPTCHA fonctionne lorsque "Protégé par reCAPTCHA" s'affiche en bas à droite de la page :

- Cliquez sur chacun des liens.

- Vérifiez que vous pouvez accéder à toutes les pages.

Cliquez sur Vérifier ma progression pour valider l'objectif.
Déployer une clé de site pour un jeton de session reCAPTCHA et la page de test
Tâche 5 : Créer des règles de stratégie de sécurité Cloud Armor pour la gestion de bots
Dans cette section, vous allez utiliser les règles de gestion de bots Cloud Armor pour autoriser, refuser et rediriger les requêtes en fonction du score reCAPTCHA.
- Dans Cloud Shell, créez une stratégie de sécurité à l'aide de gcloud :
gcloud compute security-policies create recaptcha-policy \
--description "policy for bot management"
- Pour utiliser une question d'authentification manuelle de reCAPTCHA Enterprise afin de distinguer les clients humains des clients automatisés, associez la clé de site pour la question d'authentification manuelle WAF reCAPTCHA (CHALLENGE-PAGE-KEY) que vous avez créée précédemment à la stratégie de sécurité. Dans le script suivant, n'oubliez pas de remplacer "CHALLENGE-PAGE-KEY" par la clé que vous avez créée précédemment :
gcloud compute security-policies update recaptcha-policy \
--recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
- Ajoutez une règle de gestion de bots pour autoriser le trafic si le chemin de l'URL correspond à "good-score.html" et si le score est supérieur à 0,4 :
gcloud compute security-policies rules create 2000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('good-score.html') && token.recaptcha_session.score > 0.4"\
--action allow
- Ajoutez une règle de gestion de bots pour refuser le trafic si le chemin de l'URL correspond à bad-score.html et si le score est inférieur à 0,6 :
gcloud compute security-policies rules create 3000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('bad-score.html') && token.recaptcha_session.score < 0.6"\
--action "deny-403"
- Ajoutez une règle de gestion de bots pour rediriger le trafic vers Google reCAPTCHA si le chemin de l'URL correspond à median-score.html et que le score est égal à 0,5 :
gcloud compute security-policies rules create 1000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('median-score.html') && token.recaptcha_session.score == 0.5"\
--action redirect \
--redirect-type google-recaptcha
- Associez la stratégie de sécurité au service de backend
http-backend
:
gcloud compute backend-services update http-backend \
--security-policy recaptcha-policy --global
-
Dans le menu principal de la console Google Cloud, accédez à Sécurité réseau, puis sélectionnez Règles Cloud Armor.
-
Cliquez sur recaptcha-policy
.
Votre stratégie doit se présenter comme suit :

Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer des règles de stratégie de sécurité Cloud Armor pour la gestion de bots
Tâche 6 : Valider la gestion de bots avec Cloud Armor
- Ouvrez un navigateur et saisissez l'URL
http://[LB_IP_v4]/index.html
. Accédez à Visit allowed link (Accéder au lien autorisé).

-
Ouvrez une nouvelle fenêtre en mode navigation privée pour vous assurer de commencer une nouvelle session.
-
Saisissez l'URL http://[LB_IP_v4]/index.html
et accédez à Visit blocked link (Accéder au lien bloqué). Une erreur HTTP 403 doit s'afficher :

Remarque : Si vous ne voyez pas l'erreur 403 Forbidden, vous devrez peut-être attendre longtemps pour que les règles reCAPTCHA prennent effet. Veuillez patienter 5 minutes, puis réessayer. Assurez-vous d'utiliser une nouvelle fenêtre de navigation privée pour tester chaque lien.
-
Ouvrez une nouvelle fenêtre en mode navigation privée pour vous assurer de commencer une nouvelle session.
-
Saisissez l'URL http://[LB_IP_v4]/index.html
et accédez à Visit redirect link (Accéder au lien de redirection). Vous devez voir la redirection vers Google reCAPTCHA et la page de la question d'authentification manuelle comme ci-dessous :

Remarque : Si l'interaction utilisateur réussit l'évaluation, reCAPTCHA Enterprise émet un cookie d'exemption. Le navigateur joint ce cookie d'exemption aux requêtes ultérieures de l'utilisateur au même site jusqu'à l'expiration du cookie. Par défaut, le cookie d'exemption expire au bout de trois heures.
Remarque : Pour empêcher les actions abusives par des logiciels automatisés sur votre site, reCAPTCHA utilise un moteur d'analyse des risques avancé et des CAPTCHA adaptatifs. Cela permet simultanément à vos utilisateurs légitimes d'accéder facilement au site. Si l'algorithme estime que vous êtes un humain, il validera le reCAPTCHA sans que vous ayez à effectuer d'action supplémentaire. Si ce n'est pas le cas, il affichera diverses d'images que vous devrez ordonner avant de continuer. Par défaut, seuls les trafics les plus suspects seront invités à résoudre un captcha.
Si aucune question d'authentification manuelle ne vous a été posée, vous pouvez toujours consulter les journaux de stratégies et vérifier que vous avez été exempté de ces questions.
Vérifier les journaux Cloud Armor
Explorez les journaux de la stratégie de sécurité pour vérifier que la gestion de bots a fonctionné comme prévu.
- Dans la console, accédez au menu de navigation > Sécurité du réseau > Règles Cloud Armor.
- Cliquez sur recaptcha-policy.
- Cliquez sur Journaux.
- Cliquez sur Afficher les journaux de stratégie.
- Voici la requête MQL (Monitoring Query Language). Copiez-la et collez-la dans l'éditeur de requête :
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
- À présent, cliquez sur Exécuter la requête.
- Dans les résultats de la requête, recherchez une entrée de journal où la requête concerne
http://[LB_IP_v4]/good-score.html
. Développez jsonPayload.Expand enforcedSecurityPolicy.

Remarque : Si vous ne voyez pas d'entrées de journal, attendez quelques minutes que la stratégie se propage, actualisez les URL que vous avez utilisées précédemment, puis vérifiez à nouveau les journaux.
- Répétez l'opération pour
http://[LB_IP_v4]/bad-score.html
et http://[LB_IP_v4]/median-score.html
.


Notez que configuredAction
est défini sur ALLOW, DENY ou GOOGLE_RECAPTCHA et que le nom indique recaptcha-policy.
Remarque : Les stratégies de sécurité Cloud Armor créent des journaux que vous pouvez explorer pour déterminer quand le trafic est refusé, quand il est autorisé, ainsi que la source du trafic.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Valider la gestion de bots avec Cloud Armor
Félicitations !
Vous avez implémenté la gestion de bots avec Cloud Armor. Vous avez configuré un équilibreur de charge HTTP. Ensuite, vous avez créé et implémenté une clé de site pour un jeton de session reCAPTCHA sur une page Web. Vous avez également créé une clé de site pour la page de challenge. Vous avez configuré une stratégie de gestion de bots Cloud Armor et validé la façon dont elle gère les requêtes en fonction des règles. Vous avez exploré les journaux de la stratégie de sécurité pour identifier les raisons pour lesquelles le trafic était autorisé, bloqué ou redirigé.
Dernière modification du manuel : 17 juillet 2025
Dernier test de l'atelier : 17 juillet 2025
Copyright 2025 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.