Objectifs
Dans ce tutoriel, vous allez apprendre à :
- créer un modèle d'instance Compute Engine et un groupe d'instances géré ;
- obtenir un nom de domaine et un certificat ;
- créer un équilibreur de charge HTTPS avec un certificat ;
- activer IAP ;
- tester le fonctionnement d'IAP.
Coûts
Ce tutoriel utilise des composants facturables de Google Cloud, dont :
- Compute Engine
- Quatre machines virtuelles (VM)
- Mise en réseau
- Règle générale de transfert de l'équilibreur de charge
- Trafic entrant
Pour obtenir une estimation du coût en fonction de votre utilisation prévue, accédez au simulateur de coût.
Avant de commencer
Avant de commencer ce tutoriel, vous devrez effectuer les opérations suivantes :
Sélectionnez ou créez un projet Google Cloud.
ACCÉDER À LA PAGE "PROJETS"Activez la facturation pour votre projet. Découvrez comment modifier les paramètres de facturation d'un projet.
Étape 1 : Créez un modèle Compute Engine
Dans la console Google Cloud, accédez à la page Compute Engine > Créer un modèle d'instance, puis sélectionnez le projet dans lequel vous souhaitez créer un modèle.
ACCÉDER À LA PAGE "CRÉER UN MODÈLE D'INSTANCE"
Utilisez les valeurs par défaut, sauf pour les champs suivants :
- Type de machine :
- micro (f1-micro)
- Niveaux d'accès :
- Définir l'accès pour chaque API
- Compute Engine : lecture seule
- Pare-feu :
- Autoriser le trafic HTTP
- Dans la section Gestion, sous Automatisation > Script de démarrage, copiez et collez le script suivant :
Une fois les valeurs mises à jour, cliquez sur Créer pour créer le modèle.
Étape 2 : Créez un groupe d'instances géré
Dans la console Google Cloud, accédez à la page Compute Engine > Créer un groupe d'instances, puis sélectionnez le projet dans lequel vous souhaitez créer un groupe d'instances géré.
ACCÉDER À LA PAGE "CRÉER UN GROUPE D'INSTANCES"
Utilisez les valeurs par défaut, sauf pour les champs suivants :
- Nom : my-managed-instance-group
- Zone : Multizone
- Modèle d'instance : sélectionnez le modèle d'instance créé à l'étape 1.
- Nombre d'instances:pour modifier le nombre d'instances, vous devez d'abord désactiver l'autoscaling.
- Mode autoscaling : Ne pas procéder à un autoscaling
Vérification d'état : sélectionnez Créer une vérification d'état, puis saisissez les valeurs suivantes :
- Nom : my-health-check
- Protocole : HTTP
Pour utiliser la nouvelle vérification d'état, cliquez sur Enregistrer et continuer.
Une fois les valeurs mises à jour, cliquez sur Créer pour créer le groupe d'instances géré.
Étape 3 : Obtenez un nom de domaine et un certificat
Pour utiliser l'équilibreur de charge avec le trafic HTTPS, vous avez besoin d'un nom de domaine et d'un certificat signé. Vous pouvez enregistrer un domaine sur Google Domains ou utiliser le service d'enregistrement de noms de domaine que vous souhaitez. Enregistrez votre domaine avant de poursuivre.
Configurer votre certificat
Créez un certificat qui identifie votre site Web auprès de vos utilisateurs. Pour savoir comment créer un certificat, consultez la section Utiliser des certificats SSL gérés par Google.
L'autorité de certification doit vérifier que vous êtes le propriétaire du nom de domaine que vous avez enregistré. Lors des étapes suivantes, vous allez créer une VM pour authentifier votre domaine auprès de l'autorité de certification.
Créer une VM pour authentifier la propriété du domaine
Dans la console Google Cloud, accédez à la page Compute Engine > Créer une instance.
ACCÉDER À LA PAGE "CRÉER UNE INSTANCE"
Utilisez les valeurs par défaut, sauf pour les champs suivants :
- Nom : certbot-vm
- Type de machine : micro (f1-micro)
- Niveaux d'accès :
- Définir l'accès pour chaque API
- Compute Engine : lecture/écriture
- Image du disque de démarrage :
- Debian GNU/Linux 9 (stretch)
- Pare-feu :
- Autoriser le trafic HTTP
- Autoriser le trafic HTTPS
Une fois les valeurs mises à jour, cliquez sur Créer pour créer l'instance de VM. Notez l'adresse IP externe de la VM que vous venez de créer. Vous en aurez besoin à l'étape suivante.
Configurer le domaine pour qu'il pointe vers la VM
Pour configurer votre domaine de sorte qu'il pointe vers la VM, suivez cette procédure de configuration des enregistrements A :
- Connectez-vous au compte que vous possédez auprès de votre hébergeur de domaine.
- Recherchez la page pour mettre à jour les enregistrements DNS de votre domaine. Cette page porte généralement un nom tel que "Gestion DNS", "Gestion du serveur de noms" ou "Paramètres avancés".
- Modifiez les valeurs de vos enregistrements A comme suit :
- Nom/Hôte/Alias : @
- Valeur : adresse IP externe de la VM que vous avez créée pour authentifier la propriété de votre domaine précédemment.
- Valeur TTL : valeur par défaut de votre bureau d'enregistrement, soit 86 400 (un jour).
- Patientez jusqu'à la mise à jour de l'enregistrement DNS. La propagation de l'enregistrement ajouté peut prendre jusqu'à un jour complet.
Pour en savoir plus, consultez l'article À propos des enregistrements A.
Tester le serveur
Pour vérifier que votre serveur fonctionne correctement, procédez comme suit :
Dans la console Google Cloud, accédez à la page Compute Engine > Instances de VM.
ACCÉDER À LA PAGE "INSTANCES DE VM"Sous Se connecter pour certbot-vm, cliquez sur SSH.
Exécutez un petit serveur Web sur votre VM à l'aide de la commande suivante :
mkdir web cd web echo "Hello" > index.html sudo busybox httpd -v -f
Dans un navigateur Web, accédez au nom de domaine que vous avez enregistré.
Hello
doit être indiqué dans votre navigateur Web, et votre session SSH doit afficher un message contenant... response:200
. Si ce n'est pas le cas, patientez quelques minutes, puis répétez cette opération.Une fois le test réussi, appuyez sur les touches Ctrl+C pour interrompre le serveur Web.
Créer un certificat
Pour créer un certificat, enregistrez-vous auprès de Let's Encrypt en exécutant les commandes suivantes sur la VM, où YOUR_DOMAIN correspond à votre nom de domaine (sans le protocole) :
sudo pkill busybox sudo apt-get install -y certbot sudo certbot certonly --standalone -d YOUR-DOMAIN
Au cours de cette procédure, Let's Encrypt pourra vous demander une adresse e-mail afin de pouvoir vous envoyer un rappel avant l'expiration de votre certificat (par défaut, trois mois après son émission). Vous devrez également accepter les conditions d'utilisation de Let's Encrypt.
Une fois que vous êtes enregistré, le message suivant doit s'afficher : Congratulations! Your certificate and chain have been saved at...
Ajouter le certificat au projet
Pour ajouter le certificat à votre projet, exécutez les commandes suivantes sur la machine VM :
sudo su cd /etc/letsencrypt/live/YOUR_DOMAIN gcloud compute ssl-certificates create my-cert --certificate=fullchain.pem --private-key=privkey.pem
Une fois le certificat créé, un message de ce type doit s'afficher : Created
[https://www.googleapis.com/compute/v1/projects/example-project/global/sslCertificates/my-cert]
Avant de continuer, fermez la session SSH.
Étape 4 : Créez un équilibreur de charge
Avant de commencer cette étape, assurez-vous de bien avoir fermé la session SSH que vous avez lancée à l'étape précédente. Lorsque vous êtes prêt, procédez comme suit pour créer un équilibreur de charge :
Dans la console Google Cloud, accédez à la page Services réseau > Créer un équilibreur de charge, puis sélectionnez le projet pour lequel vous souhaitez créer un équilibreur de charge.
ACCÉDER À LA PAGE "CRÉER UN ÉQUILIBREUR DE CHARGE"Dans la section Équilibrage de charge HTTP(S), cliquez sur Démarrer la configuration.
Sélectionnez D'Internet vers mes VM.
Sur la page Nouvel équilibreur de charge d'application externe qui s'affiche, saisissez un nom pour votre équilibreur de charge.
Cliquez sur Configuration du backend, puis sélectionnez Services backend > Créer un service backend.
Dans le panneau Créer un service de backend, saisissez
my-backend-service
dans le champ Nom.Sous Nouveau backend, utilisez les valeurs par défaut, sauf pour le champ suivant :
- Groupe d'instances : my-managed-instance-group
Sous Vérification d'état, sélectionnez my-health-check.
Une fois les valeurs mises à jour, cliquez sur Créer. Le panneau Nouvel équilibreur de charge HTTP(S) s'affiche de nouveau.
Cliquez sur Règles d'hôte et de chemin d'accès pour charger les valeurs par défaut. Vous n'avez pas besoin d'ajouter de règles.
Cliquez sur Configuration du frontend. Utilisez les valeurs par défaut, sauf pour les champs suivants :
- Protocole : HTTPS
- Adresse IP : cliquez sur Créer une adresse IP.
- Saisissez un nom à associer à votre nouvelle adresse IP statique.
- Cliquez sur Réserver pour réserver l'adresse IP statique.
- Certificat : my-cert
Une fois les valeurs de la configuration du frontend saisies, cliquez sur OK.
Cliquez sur Créer. La page Équilibrage de charge s'affiche, et votre équilibreur de charge est créé dans la liste des équilibreurs de charge.
Une fois que la console Google Cloud a fini de créer l'équilibreur de charge, cliquez sur son nom et notez l'adresse IP externe sous Détails > Interface. Vous en aurez besoin à l'étape suivante.
Configurer le domaine pour qu'il pointe vers l'équilibreur de charge
Pour configurer votre domaine afin qu'il pointe vers l'équilibreur de charge, configurez les enregistrements A en procédant comme suit :
- Connectez-vous au compte que vous possédez auprès de votre hébergeur de domaine.
- Recherchez la page pour mettre à jour les enregistrements DNS de votre domaine. Cette page porte généralement un nom tel que "Gestion DNS", "Gestion du serveur de noms" ou "Paramètres avancés".
- Modifiez les valeurs de vos enregistrements A comme suit :
- Nom/Hôte/Alias : @
- Valeur : adresse IP externe de l'équilibreur de charge que vous venez de créer. N'incluez pas le port
:443
dans votre enregistrement DNS. - Valeur TTL : valeur par défaut de votre bureau d'enregistrement, soit 86 400 (un jour).
- Patientez jusqu'à la mise à jour de l'enregistrement DNS. La propagation de l'enregistrement que vous venez d'ajouter peut prendre jusqu'à un jour entier.
- Pour tester l'équilibreur de charge, utilisez un navigateur Web pour accéder à votre domaine à l'aide d'un protocole
https://
.- Si l'équilibreur de charge n'est pas encore configuré, des erreurs "HTTP 502" s'affichent.
- Lorsque l'équilibreur de charge est prêt, le message "Requête non autorisée" apparaît.
Pour en savoir plus, consultez l'article À propos des enregistrements A.
Redémarrer les VM
Pour authentifier correctement les requêtes d'IAP, vous devez redémarrer les VM de votre groupe d'instances géré en procédant comme suit :
- Dans la console Google Cloud, accédez à la page Compute Engine > Groupes d'instances.
ACCÉDER À LA PAGE "GROUPES D'INSTANCES" - Cliquez sur my-managed-instance-group.
- En haut des informations relatives au groupe d'instances qui s'affichent, cliquez sur Redémarrer/Remplacer progressivement.
- Sur la page Redémarrer/Remplacer les instances de my-managed-instance-group qui s'affiche, définissez les valeurs suivantes :
- Opération : Redémarrer
- Nombre maximal d'instances indisponibles : 3 instances sur 3
- Durée d'attente minimale : 0 s
- Une fois les valeurs mises à jour, cliquez sur Redémarrer.
Étape 5 : Configurez IAP
Configurer le pare-feu
Vous allez ensuite configurer votre pare-feu pour bloquer l'accès des VM sous-jacentes et n'autoriser que les accès via IAP :
- Dans la console Google Cloud, accédez à Réseau VPC > Règles de pare-feu.
ACCÉDER À LA PAGE "RÈGLES DE PARE-FEU" - Cochez les cases situées à côté des règles suivantes :
- default-allow-http
- default-allow-https
- default-allow-internal
- Cliquez sur Supprimer.
- Cliquez sur Créer une règle de pare-feu, puis définissez les valeurs suivantes :
- Nom : allow-iap-traffic
- Cibles : Toutes les instances du réseau
- Plages d'adresses IP sources (appuyez sur Entrée après avoir collé chaque valeur dans le champ). Les plages d'adresses IP sont ajoutées à la liste d'autorisation, car il s'agit d'une condition préalable à la communication de l'équilibreur de charge avec les backends.
- 130.211.0.0/22
- 35.191.0.0/16
- Protocoles et ports :
- Protocoles et ports spécifiés
- tcp:80
- Une fois les valeurs mises à jour, cliquez sur Créer.
Configurer IAP
Pour configurer IAP pour votre projet, procédez comme suit :
- Dans la console Google Cloud, accédez à la page Sécurité > Identity-Aware Proxy et sélectionnez le projet pour lequel vous souhaitez activer IAP.
ACCÉDER À LA PAGE "IDENTITY-AWARE PROXY" Si vous n'avez pas configuré l'écran d'autorisation OAuth de votre projet, vous êtes invité à le faire :
-
Accédez à l'écran d'autorisation OAuth.
Configurer l'écran d'autorisation - Sous Adresse e-mail d'assistance, sélectionnez l'adresse e-mail que vous souhaitez afficher en tant que contact public. L'adresse e-mail doit appartenir au compte utilisateur actuellement connecté ou à un groupe Google dont l'utilisateur actuellement connecté est administrateur ou propriétaire.
- Saisissez le nom de l'application que vous souhaitez afficher.
- Ajoutez des détails, si nécessaire.
- Cliquez sur Save.
Pour modifier ultérieurement les informations affichées sur l'écran d'autorisation OAuth, comme le nom du produit ou l'adresse e-mail, répétez les étapes de configuration précédentes.
-
Accédez à l'écran d'autorisation OAuth.
En regard de my-backend-service,
Dans la fenêtre Activer IAP qui s'affiche, cochez la case en regard de "J'ai consulté la configuration requise, et j'ai configuré ma ressource Compute Engine conformément à la documentation".
Cliquez sur Activer.
Ajouter des comptes principaux à la liste d'accès
Vous allez ensuite ajouter des comptes principaux à la liste d'accès IAP de votre projet.
- Dans la section Accès située sur le côté droit de la page IAM et administration > Identity-Aware Proxy, cliquez sur Ajouter.
- Saisissez les comptes principaux auxquels vous souhaitez accorder l'accès, y compris vous-même, puis attribuez-leur le rôle Utilisateur de l'application Web sécurisée par IAP. Les comptes principaux peuvent être :
- Comptes Google : utilisateur@gmail.com
- Groupes Google : administrateurs@googlegroups.com
- Comptes de service: serveur@example.gserviceaccount.com
- Domaines Google Workspace : example.com
Étape 6 : Testez IAP
Pour savoir si IAP fonctionne correctement, procédez comme suit :
- Dans votre navigateur Web, accédez à votre domaine.
- Si le message "Requête non autorisée" s'affiche, réessayez dans quelques minutes.
- Lorsque l'écran de connexion Google s'affiche, connectez-vous à l'aide du compte Google auquel vous avez accordé l'accès lors de l'étape précédente.
- Un message du type "Bonjour, user@example.com. Je suis my-managed-instance-group-29z6" doit s'afficher.
- Essayez d'actualiser la page. Votre navigateur doit afficher le nom des trois machines de votre groupe d'instances géré. Il s'agit de l'équilibreur de charge, qui répartit le trafic sur les VM du groupe.
Félicitations ! Vous avez activé un service à équilibrage de charge à l'aide d'IAP.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Une fois que vous avez fini de configurer IAP pour Compute Engine, vous pouvez nettoyer les ressources que vous avez créées sur Google Cloud, pour éviter qu'elles ne vous soient facturées par la suite. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.
Supprimer le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
Pour supprimer le projet :
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Supprimer des instances
Pour supprimer une instance Compute Engine, procédez comme suit :
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
Supprimer des règles de pare-feu pour le réseau par défaut
Pour supprimer une règle de pare-feu, procédez comme suit :
- In the Google Cloud console, go to the Firewall page.
- Select the checkbox for the firewall rule that you want to delete.
- To delete the firewall rule, click Delete.
Étape suivante
- Modifiez l'exemple d'application que nous avons utilisé dans ce tutoriel pour diffuser d'autres données.
- Lisez les bonnes pratiques pour savoir comment écrire vos propres applications et les sécuriser avec IAP.