Instructions et exigences de configuration de l'atelier
Protégez votre compte et votre progression. Utilisez toujours une fenêtre de navigation privée et les identifiants de l'atelier pour exécuter cet atelier.

Sécurité réseau : géoblocage avec Cloud Armor I

Atelier 30 minutes universal_currency_alt 5 crédits show_chart Avancé
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Ce contenu n'est pas encore optimisé pour les appareils mobiles.
Pour une expérience optimale, veuillez accéder à notre site sur un ordinateur de bureau en utilisant un lien envoyé par e-mail.

gem-netsec-cloud-armor

Google Cloud – Ateliers adaptés au rythme de chacun

Activer Google Cloud Shell

Google Cloud Shell est une machine virtuelle qui contient des outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Google Cloud Shell offre un accès en ligne de commande à vos ressources GCP.

  1. Dans la console GCP, dans la barre d'outils située en haut à droite, cliquez sur le bouton Ouvrir Cloud Shell.

    Icône Cloud Shell

  2. Cliquez sur Continue (Continuez):

    cloudshell_continue

Il faut quelques instants pour mettre en service et se connecter à l'environnement. Lorsque vous êtes connecté, vous êtes déjà authentifié et le projet est défini sur votre PROJECT_ID. Par exemple:

Terminal Cloud Shell

gcloud est l'outil de ligne de commande associé à Google Cloud Platform. Pré-installé sur Cloud Shell, il est également compatible avec la saisie semi-automatique via la touche de tabulation.

Vous pouvez répertorier les noms des comptes actifs à l'aide de cette commande :

gcloud auth list

Résultat :

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

Pour répertorier les ID de projet, exécutez la commande suivante :

gcloud config list project
	

Résultat :

[core]
project = <ID_Projet>
	

Exemple de résultat :

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Présentation

Dans cet atelier, vous allez explorer les fonctionnalités de géoblocage de Cloud Armor. Vous allez créer une stratégie de sécurité Cloud Armor et implémenter des règles pour refuser et autoriser le trafic en fonction de l'emplacement géographique afin d'observer le comportement de Cloud Armor. Cet atelier vous permet de vous familiariser avec la sécurisation de vos applications Google Cloud à l'aide de Cloud Armor.

Tâche 1 : Configuration initiale

Dans cette tâche, vous allez configurer l'environnement, y compris en activant les API nécessaires et en créant un service de backend.

  1. Définissez l'ID du projet.

    gcloud config set project {{{ project_0.project_id | "PROJECT_ID" }}} Remarque :
    Cette commande définit votre projet actif. Toutes les commandes "gcloud" suivantes seront exécutées dans ce projet.
  2. Définissez votre région par défaut sur .

    gcloud config set compute/region {{{ project_0.default_region | "REGION" }}} Remarque :
    Cette commande définit la région de calcul par défaut. Les ressources seront créées dans cette région.
  3. Définissez la zone par défaut sur .

    gcloud config set compute/zone {{{ project_0.default_zone | "ZONE" }}} Remarque :
    Cette commande définit la zone de calcul par défaut. Les ressources seront créées dans cette zone de la région spécifiée.
  4. Activez les API nécessaires.

    gcloud services enable compute.googleapis.com container.googleapis.com iap.googleapis.com Remarque :
    Cette commande active les API Compute Engine, Kubernetes Engine et Identity-Aware Proxy, qui sont nécessaires pour cet atelier.

Tâche 2 : Créer le réseau et le sous-réseau VPC

Créez un réseau VPC nommé test-vpc avec les sous-réseaux test-subnet-us et test-subnet-eu. Ce VPC hébergera les instances utilisées pour les tests.

  1. Créez le réseau VPC test-vpc.

    gcloud compute networks create test-vpc --subnet-mode=custom Remarque :
    Cette commande crée un réseau VPC avec le mode de sous-réseau personnalisé, ce qui offre une flexibilité dans la définition des sous-réseaux.
  2. Créez un sous-réseau test-subnet-us dans le réseau test-vpc de la région spécifiée. Utilisez la plage d'adresses IP 10.10.10.0/24.

    gcloud compute networks subnets create test-subnet-us --network=test-vpc --region={{{ project_0.default_region | "REGION" }}} --range=10.10.10.0/24 Remarque :
    Cette commande crée un sous-réseau dans le réseau VPC spécifié avec la plage d'adresses IP "10.10.10.0/24".
  3. Créez un sous-réseau test-subnet-eu dans le réseau test-vpc de la région europe-west1. Utilisez la plage d'adresses IP 10.20.20.0/24.

    gcloud compute networks subnets create test-subnet-eu \ --network=test-vpc \ --region=europe-west1 \ --range=10.20.20.0/24 Remarque :
    Cette commande crée un sous-réseau dans le réseau VPC spécifié avec la plage d'adresses IP "10.20.20.0/24".
  4. Ajoutez une règle de pare-feu pour l'accès IAP.

    gcloud compute firewall-rules create allow-iap-ssh \ --direction=INGRESS \ --priority=1000 \ --network=test-vpc \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=35.235.240.0/20 \ --target-tags=iap-gce Remarque :
    Cette commande crée une règle de pare-feu pour autoriser l'accès IAP aux instances portant le tag "iap-gce".
  5. Créez une règle de pare-feu pour autoriser le trafic HTTP vers le backend.

    gcloud compute firewall-rules create allow-http \ --direction=INGRESS \ --priority=1500 \ --network=test-vpc \ --allow=tcp:80,tcp:443 \ --source-ranges=0.0.0.0/0 \ --target-tags=http-server,https-server Remarque :
    Cette commande crée une règle de pare-feu qui autorise le trafic HTTP et HTTPS provenant de n'importe quelle source vers les instances dotées des tags "http-server" et "https-server".

Tâche 3 : Implémenter un service de backend avec des vérifications d'état

Dans cette tâche, vous allez implémenter des vérifications d'état et créer un service de backend.

  1. Créez une vérification d'état.

    gcloud compute health-checks create http health-check-http \ --port=80 Remarque :
    Cette commande crée une vérification d'état HTTP sur le port 80.
  2. Créez un service de backend.

    gcloud compute backend-services create backend-service \ --health-checks=health-check-http \ --global Remarque :
    Cette commande crée un service de backend mondial à l'aide de la vérification d'état créée à l'étape précédente.

Tâche 4 : Créer le modèle d'instance et le groupe d'instances géré

Commencez par créer un modèle d'instance, qui servira de plan pour vos VM. Créez ensuite un groupe d'instances géré (MIG) à l'aide de ce modèle. Le MIG gérera automatiquement les VM, en fournissant des fonctionnalités d'autoréparation et d'autoscaling.

  1. Créez un modèle d'instance.

    gcloud compute instance-templates create backend-template \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --subnet=test-subnet-us \ --tags=http-server,https-server,iap-gce \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install -y apache2 php libapache2-mod-php a2ensite default-ssl a2enmod ssl systemctl restart apache2 rm /var/www/html/index.html echo "

    Chaîne de requête :

    " > /var/www/html/index.php systemctl restart apache2'
    Remarque :
    Cette commande crée un modèle d'instance qui définit la configuration des VM de backend.
  2. Créez un groupe d'instances géré.

    gcloud compute instance-groups managed create backend-mig \ --base-instance-name=backend-vm \ --size=2 \ --template=backend-template \ --zone={{{ project_0.default_zone | "ZONE" }}} Remarque :
    Cette commande crée un groupe d'instances géré (MIG) avec une taille initiale de deux VM.
  3. Ajoutez le groupe d'instances géré au service de backend.

    gcloud compute backend-services add-backend backend-service \ --instance-group=backend-mig \ --instance-group-zone={{{ project_0.default_zone | "ZONE" }}} \ --global Remarque :
    Cette commande ajoute le groupe d'instances géré en tant que backend au service "backend-service".
  4. Créez une vérification d'état.

    gcloud compute health-checks create http http-health-check \ --request-path=/ Remarque :
    Cette commande crée une vérification d'état qui envoie des requêtes au chemin racine ("/").
  5. Ajoutez la vérification d'état au service de backend.

    gcloud compute backend-services update backend-service \ --health-checks=http-health-check \ --global Remarque :
    Cette commande associe la vérification d'état au service "backend-service".

Tâche 5 : Créer la configuration de l'interface

C'est avec la configuration de l'interface que vos utilisateurs interagiront. Un mappage d'URL, un proxy, une adresse IP mondiale et une règle de transfert vont donc être nécessaires.

  1. Créez un mappage d'URL.

    gcloud compute url-maps create url-map \ --default-service=backend-service Remarque :
    Cette commande crée un mappage d'URL qui achemine tout le trafic vers le service "backend-service".
  2. Créez un proxy HTTP global.

    gcloud compute target-http-proxies create http-proxy \ --url-map=url-map Remarque :
    Cette commande crée un proxy HTTP mondial à l'aide du mappage d'URL créé à l'étape précédente.
  3. Créez une adresse IP statique mondiale.

    gcloud compute addresses create global-ip-address --global Remarque :
    Cette commande crée une adresse IP statique accessible à l'échelle mondiale.
  4. Créez une règle de transfert mondiale.

    gcloud compute forwarding-rules create http-forwarding-rule \ --address=$(gcloud compute addresses describe global-ip-address \ --global --format='value(address)') \ --global \ --target-http-proxy=http-proxy \ --ports=80 Remarque :
    Cette commande crée une règle de transfert mondiale pour diriger le trafic vers le proxy HTTP à l'aide de l'adresse IP créée.

Tâche 6 : Implémenter le géoblocage avec Cloud Armor

Vous allez maintenant créer une stratégie de sécurité Cloud Armor pour refuser le trafic provenant d'une région spécifique. Les règles Cloud Armor sont traitées par ordre de priorité croissant, la règle évaluée en premier correspondant au numéro de priorité le plus faible.

  1. Créez une stratégie de sécurité Cloud Armor.

    gcloud compute security-policies create "geoblocking-policy" \ --description="Blocks traffic from specific countries" Remarque :
    Cette commande crée une stratégie de sécurité Cloud Armor nommée "geoblocking-policy".
  2. Ajoutez une règle pour autoriser le trafic provenant des États-Unis.

    gcloud compute security-policies rules create 1000 \ --security-policy="geoblocking-policy" \ --description="Allow traffic from US" \ --expression="origin.region_code == 'US'" \ --action=allow Remarque :
    Cette commande crée une règle qui autorise le trafic provenant des États-Unis. Le numéro de priorité de cette règle est élevé (1000), ce qui signifie qu'elle est évaluée après les règles de refus. Il est recommandé d'autoriser explicitement le trafic provenant des régions que vous souhaitez desservir, mais pour le géoblocage, ce n'est pas strictement nécessaire, sauf si vous implémentez une stratégie de type "tout refuser, autoriser certains". La priorité est essentielle pour déterminer la position de la règle dans la stratégie.
  3. Ajoutez une règle pour refuser le trafic provenant de Belgique (BE).

    gcloud compute security-policies rules create 10 \ --security-policy="geoblocking-policy" \ --description="Deny traffic from Belgium" \ --expression="origin.region_code == 'BE'" \ --action=deny-403 Remarque :
    Cette commande bloque le trafic provenant de Belgique avant que les règles d'autorisation ne soient prises en compte. L'action "deny-403" renvoie une erreur HTTP 403 (accès refusé). L'expression "origin.region_code" correspond au trafic provenant de Belgique.
  4. Associez la stratégie de sécurité au service de backend.

    gcloud compute backend-services update backend-service \ --security-policy="geoblocking-policy" \ --global Remarque :
    Cette commande associe la stratégie de sécurité au service de backend, ce qui applique les règles de la stratégie à tout le trafic dirigé vers le service de backend.

Tâche 7 : Tester le géoblocage à l'aide de ressources régionales

Vous allez maintenant tester la stratégie de sécurité Cloud Armor pour évaluer le géoblocage depuis plusieurs emplacements.

  1. Créez une instance Compute Engine nommée test-vm-us dans le sous-réseau test-subnet-us.

    gcloud compute instances create test-vm-us \ --subnet=test-subnet-us \ --machine-type=e2-medium \ --tags=iap-gce \ --zone={{{ project_0.default_zone | "ZONE" }}} Remarque :
    Cette commande crée une instance Compute Engine dans le sous-réseau spécifié.
  2. Créez une instance Compute Engine nommée test-vm-europe dans le sous-réseau test-subnet-eu.

    gcloud compute instances create test-vm-europe \ --subnet=test-subnet-eu \ --machine-type=e2-medium \ --tags=iap-gce \ --zone=europe-west1-b Remarque :
    Cette commande crée une instance Compute Engine dans le sous-réseau spécifié.
  3. Récupérez l'adresse IP du service de backend.

    BACKEND_IP=$(gcloud compute addresses describe global-ip-address --global --format='value(address)') && echo $BACKEND_IP Remarque :
    Cette commande récupère l'adresse IP associée au service de backend, qui sera utilisée pour tester le géoblocage.
  4. Au cours des étapes suivantes, vous verrez peut-être une invite SSH semblable à celle ci-dessous.

    Do you want to continue (Y/n)? Y Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Remarque :
    La communication SSH initiale vous alertera d'une nouvelle connexion à l'hôte et vous demandera si vous souhaitez saisir une phrase secrète. Pour cet atelier, aucune phrase secrète n'est requise. Appuyez donc sur la touche Entrée pour confirmer.
  5. Testez la règle de refus à partir d'une instance GCE située aux États-Unis.

    gcloud compute ssh test-vm-us \ --zone={{{ project_0.default_zone | "ZONE" }}} \ --tunnel-through-iap \ --command "curl -v $BACKEND_IP" Remarque :
    Cette commande se connecte à l'instance américaine via SSH et utilise "curl" pour tester la stratégie de géoblocage. Une réponse "200 OK" indique que la requête provient des États-Unis.

    RÉSULTAT ATTENDU

    GET / HTTP/1.1 Host: 34.144.245.10 User-Agent: curl/7.88.1 Accept: */* HTTP/1.1 200 OK Date: Wed, 06 Aug 2025 04:02:08 GMT Server: Apache/2.4.62 (Debian) Content-Length: 65 Content-Type: text/html; charset=UTF-8 Via: 1.1 google
  6. Testez la règle de refus à partir d'une instance GCE européenne.

    gcloud compute ssh test-vm-europe \ --zone=europe-west1-b \ --tunnel-through-iap \ --command "curl -v $BACKEND_IP" Remarque :
    Cette commande se connecte à l'instance européenne via SSH et utilise "curl" pour tester la stratégie de géoblocage. Une erreur 403 (Accès interdit) est attendue.

    RÉSULTAT ATTENDU

    GET / HTTP/1.1 Host: 34.144.245.10 User-Agent: curl/7.88.1 Accept: */* HTTP/1.1 403 Forbidden Content-Length: 134 Content-Type: text/html; charset=UTF-8 Date: Wed, 06 Aug 2025 04:02:36 GMT

Félicitations !

Vous avez configuré Cloud Armor pour implémenter le géoblocage. Vous avez appris à créer et à appliquer des stratégies de sécurité, et à définir des règles basées sur l'origine géographique. Cet atelier vous donne les bases pour sécuriser vos applications Google Cloud avec Cloud Armor.

Autres ressources

Dernière mise à jour du manuel : 6 août 2025

Dernier test de l'atelier : 6 août 2025

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Le meilleur moyen d'exécuter cet atelier consiste à utiliser une fenêtre de navigation privée. 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.