arrow_back

Protéger le cache périphérique avec Cloud Armor

Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

Protéger le cache périphérique avec Cloud Armor

Atelier 1 heure universal_currency_alt 1 crédit show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

GSP878

Présentation

Les règles de sécurité périphérique de Google Cloud Armor permettent de limiter l'accès aux objets mis en cache dans Cloud CDN (Content Delivery Network) et Cloud Storage. Ces règles sont déployées et appliquées au périmètre le plus externe du réseau de Google, en amont de l'emplacement du cache Cloud CDN. Elles vous permettent, entre autres, d'empêcher l'accès à des objets des buckets de stockage à partir de zones géographiques restreintes ou de vous assurer que votre distribution de médias filtre les contenus selon les zones géographiques pour lesquelles vous disposez d'une licence.

Dans cet atelier, vous allez créer un bucket Google Cloud Storage, y importer une image, l'associer à un équilibreur de charge, puis activer Cloud CDN ainsi que des règles de sécurité périphérique Cloud Armor pour ce bucket.

Points abordés

Dans cet atelier, vous allez apprendre à :

  • configurer un bucket Cloud Storage pour des contenus pouvant être mis en cache ;
  • créer une règle de sécurité périphérique pour protéger les contenus ;
  • vérifier que la règle de sécurité périphérique fonctionne bien comme prévu.

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 vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour 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/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up 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
  2. 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.
  3. 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.

  4. Cliquez sur Suivant.

  5. 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.

  6. 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.
  7. 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 gratuits.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche. Icône du menu de navigation

Avant de commencer

  • Dans Cloud Shell, définissez l'ID de votre projet et créez une variable d'environnement pour celui-ci :
export PROJECT_ID=$(gcloud config get-value project) echo $PROJECT_ID gcloud config set project $PROJECT_ID

Tâche 1 : Créer un bucket Cloud Storage et importer un objet

Le bucket Cloud Storage sera la source initiale pour Cloud CDN.

  1. Dans la console, accédez au menu de navigation (Menu de navigation) > Cloud Storage > Buckets.

  2. Pour créer un bucket Cloud Storage, cliquez sur CRÉER.

  3. Nommez-le -bucket .

  4. Cliquez sur Continuer.

  5. Pour Type d'emplacement, sélectionnez Région, puis choisissez .

  6. Cliquez sur Continuer.

  7. La classe de stockage par défaut de votre bucket est Standard. Cliquez sur Continuer.

  8. Dans la section Empêcher l'accès public, décochez la case Appliquer la protection contre l'accès public sur ce bucket.

  9. Sous Contrôle des accès, sélectionnez Ultraprécis.

  10. Cliquez sur Continuer.

  11. Cliquez sur Créer.

Voilà ! Vous venez de créer un bucket Cloud Storage.

Importer un objet dans le bucket

À présent, vous allez importer dans le bucket un objet que vous utiliserez plus tard. Par défaut, les buckets Cloud Storage sont privés. Pour cet atelier, vous allez rendre l'objet accessible sur Internet.

  1. Exécutez la commande suivante dans Cloud Shell pour y télécharger une image. Pour cet atelier, nous utilisons un logo Google figurant sur la page d'accueil de Google.
wget --output-document google.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
  1. Exécutez la commande gsutil cp pour importer l'image depuis Cloud Shell vers le bucket que vous avez créé :
gsutil cp google.png gs://{{{project_0.startup_script.project_id|Bucket Name}}}
  1. Supprimez l'image téléchargée dans Cloud Shell :
rm google.png
  1. Localisez l'objet que vous avez importé dans le bucket en accédant à Cloud Storage > Buckets > .

  2. Cliquez maintenant sur les trois points à droite de l'objet que vous avez importé, puis sélectionnez Modifier l'accès.

  3. Cliquez sur Ajouter une entrée et, dans la liste déroulante, définissez l'élément comme Public.

  4. Cliquez sur Enregistrer.

Page "Modifier l'accès" avec la liste des entités ainsi que les boutons "Enregistrer" et "Annuler"

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un bucket Cloud Storage et importer un objet

Tâche 2 : Créer un équilibreur de charge

Cloud CDN et Cloud Armor sont des composants pouvant être associés au système d'équilibrage mondial Cloud Load Balancing de Google. Dans cette section, vous allez créer un équilibreur de charge HTTP.

  1. Accédez à Mise en réseau > Services réseau > Équilibrage de charge.
  2. Cliquez sur +CRÉER UN ÉQUILIBREUR DE CHARGE.
  3. Sous Type d'équilibreur de charge, sélectionnez Équilibreur de charge d'application (HTTP/HTTPS), puis cliquez sur SUIVANT.
  4. Pour Public ou interne, sélectionnez Public (externe), puis cliquez sur SUIVANT.
  5. Pour Déploiement mondial ou dans une seule région, sélectionnez Recommandé pour les charges de travail à l'échelle mondiale, puis cliquez sur SUIVANT.
  6. Pour Génération de l'équilibreur de charge, sélectionnez Équilibreur de charge d'application externe global, puis cliquez sur SUIVANT.
  7. Cliquez sur le bouton CONFIGURER.
  8. Nommez l'équilibreur de charge edge-cache-lb.

Créer la configuration de l'interface

Pour créer la configuration de l'interface :

  1. Cliquez sur Configuration de l'interface.

  2. Pour la configuration de l'interface, utilisez HTTP (HTTPS fonctionne également si vous possédez un certificat) et une adresse IP éphémère, et assurez-vous d'avoir sélectionné le niveau de service réseau Premium. Il s'agit du niveau par défaut.

  3. Cliquez sur OK.

Page "Configuration de l'interface" avec la description de l'équilibreur de charge

Créer la configuration du backend

Pour créer la configuration du backend :

  1. Cliquez sur Configuration du backend.

  2. Pour Services de backend et buckets backend, cliquez sur Créer un bucket backend.

  3. Pour Nom du bucket backend, indiquez lb-backend-bucket.

  4. Dans le champ suivant, cliquez sur le bouton Parcourir pour sélectionner le bucket Cloud Storage créé précédemment.

  5. Conservez toutes les autres valeurs par défaut.

  6. Cliquez sur Créer.

Créer les règles d'hôte et de chemin d'accès

Pour créer les règles d'hôte et de chemin d'accès :

  1. Cliquez sur Règles de routage à gauche.

  2. Sous "Mode", sélectionnez Règle simple d'hôte et de chemin d'accès pour envoyer n'importe quelle requête au bucket. Il s'agit de l'option par défaut.

Examiner et créer l'équilibreur de charge HTTP

Pour examiner et créer l'équilibreur de charge HTTP :

  1. Cliquez sur Vérifier et finaliser.
  2. Vérifiez les services de backend et l'interface.
  3. Cliquez sur Créer.

Obtenir l'adresse IP de l'équilibreur de charge

Pour obtenir l'adresse IP de l'équilibreur de charge depuis la console :

  • Cliquez sur le nom de l'équilibreur de charge dans la liste des équilibreurs de charge du projet. Notez l'adresse IPv4 de l'équilibreur de charge pour la prochaine tâche. Elle sera représentée par [LOAD_BALANCER_IP].

Page "Détails" avec l'adresse IP:Port encadrée en rouge

Interroger l'équilibreur de charge

Patientez quelques minutes, puis demandez à l'équilibreur de charge l'objet que vous avez importé. Vous aurez besoin de l'adresse IP de l'équilibreur de charge, ainsi que du nom de l'image.

  1. Exécutez la commande suivante depuis Cloud Shell et remplacez LOAD_BALANCER_IP par l'adresse IPv4 de l'équilibreur de charge :
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png Remarque : L'accès à l'équilibreur de charge HTTP peut prendre jusqu'à cinq minutes.

Résultat :

student-cloudshell% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtoILI76KVsvBvdVGvSfzaxys1m3zYqCepBrmJxAI48ni24cWCRIdNu-53PX3DS6iycxp6xwFbMpwtcHHZQUQmEBxAgng < Expires: Mon, 13 Dec 2021 22:58:26 GMT < Date: Mon, 13 Dec 2021 21:58:26 GMT < Cache-Control: public, max-age=3600 < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer
  1. Exécutez quelques requêtes à l'aide de cette commande :
for i in `seq 1 50`; do curl http://LOAD_BALANCER_IP/google.png; done

Confirmer le contenu diffusé par Cloud CDN

  • Vérifiez que votre contenu est bien diffusé depuis le CDN par le biais de Cloud CDN ou de la surveillance de l'équilibrage de charge en accédant à Services réseau > Cloud CDN.

Page de présentation de Cloud CDN avec un résultat inséré

Vous devriez être en mesure d'atteindre un taux d'accès au cache proche de 100 %.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un équilibreur de charge

Tâche 3 : Supprimer l'objet du bucket Cloud Storage

Maintenant que les données sont insérées dans le cache, supprimez l'objet du bucket. Cela permettra de confirmer que vous appliquez la règle au cache, et non au backend.

  1. Accédez à Cloud Storage > Buckets > -bucket > Objets.

  2. Sélectionnez l'objet et supprimez-le en cliquant sur le bouton Supprimer situé en haut.

  3. Lorsque vous y êtes invité, cliquez sur Supprimer.

Cliquez sur Vérifier ma progression pour valider l'objectif. Supprimer l'objet du bucket Cloud Storage

Tâche 4 : Créer une règle de sécurité périphérique

Les règles Cloud Armor sont gérées en dehors de l'équilibreur de charge HTTP. Une fois la règle Cloud Armor déployée, vous pouvez l'associer à une ou plusieurs ressources du service de backend ou du bucket backend de l'équilibreur de charge HTTP, appelées "cibles".

  1. Accédez à Sécurité réseau > Règles Cloud Armor et cliquez sur Créer une règle.
  1. Indiquez les valeurs suivantes, conservez les valeurs par défaut des autres paramètres, puis cliquez sur Étape suivante :
Propriété Valeur (saisissez la valeur ou sélectionnez l'option spécifiée)
Nom edge-security-policy
Type de règle Règle de sécurité périphérique
Action de règle par défaut Refuser
  1. Dans la section Appliquer les règles aux cibles, cliquez sur Ajouter une cible et définissez les valeurs suivantes :
Propriété Valeur
Type 1 Bucket backend (équilibreur de charge d'application externe)
Cible du bucket backend 1 lb-backend-bucket
  1. Cliquez sur OK.

  2. Cliquez sur Créer une règle.

Valider la règle de sécurité périphérique

Maintenant que vous avez créé une règle de sécurité périphérique devant le bucket backend, vérifiez qu'elle fonctionne bien comme prévu.

Vérifier la règle de sécurité

Au bout de quelques minutes, vous pouvez vérifier que la règle Cloud Armor est bien en cours d'exécution.

Depuis la ligne de commande, exécutez la commande suivante, qui doit vous renvoyer une erreur 403 :

curl -svo /dev/null http://LOAD_BALANCER_IP/google.png

Une erreur 403 se produit lorsque vous ne disposez pas des autorisations nécessaires pour accéder à une page Web ou à un élément d'un serveur Web.

Résultat :

curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 403 Forbidden < X-GUploader-UploadID: ADPycdtS6FtJOGIsiWYDrAAE8VFeQuNutcvbGoQe2t8EZxsuspVtmCjyiTv_P3CNktroHMOGFXkTCfG-Jj-rUO60ZGPpEbpqcw < Content-Type: application/xml; charset=UTF-8 < Content-Length: 111 < Date: Mon, 13 Dec 2021 23:09:35 GMT < Expires: Mon, 13 Dec 2021 23:09:35 GMT < Cache-Control: private, max-age=0 < Server: UploadServer

Examiner les journaux

Ensuite, vous devez vérifier les journaux pour constater que la règle de sécurité périphérique est appliquée.

  1. Accédez à Observabilité > Journalisation > Explorateur de journaux.

  2. Dans la zone de la requête, saisissez l'extrait ci-dessous, puis cliquez sur Exécuter la requête :

resource.type:(http_load_balancer) AND jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" AND severity>=WARNING
  1. Notez le code de réponse 403 et la règle de sécurité appliquée.

Page de la requête, avec le message du code de réponse 403 et la règle de sécurité associée encadrés en rouge

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer une règle de sécurité périphérique pour Cloud Armor

Supprimer la règle de sécurité

Pour démontrer que l'objet est diffusé à partir du cache CDN, supprimez la règle de sécurité Cloud Armor et envoyez une requête pour cet objet. L'objet d'origine a été supprimé de Cloud Storage, ce qui prouve que l'objet diffusé provient bien du cache périphérique.

  1. Accédez à Sécurité réseau > Règles Cloud Armor > edge-security-policy > Cibles.
  2. Sélectionnez la cible lb-backend-bucket et cliquez sur Supprimer pour supprimer le bucket cible. Confirmez votre choix en cliquant à nouveau sur Supprimer.
  1. Patientez quelques minutes avant d'envoyer une autre requête curl à la ressource dans le bucket Cloud Storage :
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png

Cette fois, vous obtenez un code de réponse 200. La page Web se comporte bien comme prévu.

Résultat :

student-cloudshell% curl -svo /dev/null http://34.98.81.123/google.png Trying 34.98.81.123... TCP_NODELAY set Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) GET /google.png HTTP/1.1 Host: YOUR_IP User-Agent: curl/7.64.1 Accept: */* HTTP/1.1 200 OK X-GUploader-UploadID: ADPycdtI7f49P3MSuZSZ8vl6RwfwmnIDJ59EeSKp7UPvLPawdaiRHXiNWLtseQTxUxceWOvSLvpYmT3pWVkV4qeIP7M Date: Mon, 13 Dec 2021 23:06:46 GMT Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT ETag: "8f9327db2597fa57d2f42b4a6c5a9855" x-goog-generation: 1639431957957903 x-goog-metageneration: 2 x-goog-stored-content-encoding: identity x-goog-stored-content-length: 5969 Content-Type: image/png x-goog-hash: crc32c=TeiHTA== x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== x-goog-storage-class: STANDARD Accept-Ranges: bytes Content-Length: 5969 Server: UploadServer Age: 1621 Cache-Control: public,max-age=3600 { [775 bytes data] Connection #0 to host 34.98.81.123 left intact Closing connection 0

Faites le test deux ou trois fois pour voir si vous obtenez un code d'état 403.

Félicitations !

Vous avez créé un bucket Cloud Storage et y avez importé une image, puis vous l'avez associé à un équilibreur de charge. Enfin, vous avez activé Cloud CDN ainsi que des règles de sécurité périphérique pour ce bucket.

Dernière modification du manuel : 16 juillet 2024

Dernier test de l'atelier : 16 juillet 2024

Copyright 2024 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.

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