IBM Cloud Docs
Sous-réseaux publics (front-end) et privés (back-end) dans un cloud privé virtuel

Sous-réseaux publics (front-end) et privés (back-end) dans un cloud privé virtuel

Ce tutoriel peut entraîner des coûts. Utilisez l'Estimateur de coûts pour générer une estimation du coût en fonction de votre utilisation projetée.

Ce tutoriel vous guide dans la création de votre propre cloud privé virtuel IBM Cloud® Virtual Private Cloud (VPC) avec plusieurs sous-réseaux et une instance de serveur virtuel (VSI) dans chaque sous-réseau. Un VPC est votre propre cloud privé sur une infrastructure de cloud partagé avec un isolement logique des autres réseaux virtuels.

Un sous-réseau est une plage d'adresses IP. Il est lié à une seule zone et ne peut pas couvrir plusieurs zones ou régions. Pour les besoins du VPC, la caractéristique importante d'un sous-réseau est le fait que les sous-réseaux peuvent être isolés les uns des autres ou interconnectés de la manière habituelle. Un sous-réseau peut être isolé à l'aide de Groupes de sécurité qui font office de pare-feux pour contrôler le trafic entrant et sortant d'une ou plusieurs instances de serveur virtuel.

Il est recommandé d'utiliser un sous-réseau pour les ressources devant être exposées au monde extérieur. Les ressources dont l'accès est restreint et qui ne doivent jamais être directement accessibles par le public sont placées dans un autre sous-réseau. Les instances sur ce type de sous-réseau peuvent être votre base de données back-end ou un stockage secret que vous ne souhaitez pas rendre accessible au public. Vous allez définir des groupes de sécurité pour autoriser ou refuser le trafic vers les instances VSI.

En bref, avec VPC, vous pouvez :

  • créer un réseau défini par logiciel (Software-Defined Network - SDN),
  • isoler des charges de travail,
  • obtenir un contrôle approfondi du trafic entrant et sortant.

Objectifs

  • Comprendre les objets d'infrastructure disponibles pour les clouds privés virtuels
  • Apprendre à créer un cloud privé virtuel, des sous-réseaux et des instances
  • Savoir comment appliquer des groupes de sécurité pour sécuriser l'accès aux serveurs

Architecture*Diagramme d'
du

  1. L'administrateur (DevOps) configure l'infrastructure requise (VPC, sous-réseaux, groupes de sécurité avec règles, VSI) sur le cloud.
  2. L'internaute envoie une requête HTTP/HTTPS au serveur Web sur le front-end.
  3. Le front-end demande des ressources privées du back-end sécurisé et renvoie les résultats à l'utilisateur.

Avant de commencer

  • Vérifiez les autorisations d'utilisateur. Assurez-vous que votre compte d'utilisateur dispose des droits suffisants pour créer et gérer des ressources VPC. Consultez la liste des autorisations requises pour VPC.
  • Une clé SSH est nécessaire pour la connexion aux serveurs virtuels. Si vous n'avez pas de clé SSH, reportez-vous aux instructions afin d'en créer une pour VPC.

Création d'un cloud privé virtuel et de sous-réseaux

Pour renforcer la sécurité de vos serveurs, il est recommandé de n'autoriser les connexions que sur les ports nécessaires aux applications déployées sur les serveurs. Dans ce tutoriel, l'application est un serveur Web, qui n'a donc besoin d'autoriser que les connexions entrantes sur le port 80.

Pour effectuer des tâches de maintenance sur ces serveurs, par exemple, installer des logiciels, effectuer des mises à niveau de système d'exploitation, vous passerez par un hôte bastion. Un hôte bastion est une instance mise à disposition avec une adresse IP publique, accessible via SSH. Une fois configuré, l'hôte bastion sert de serveur intermédiaire pour permettre une connexion sécurisée aux instances mises à disposition dans le cloud privé virtuel (VPC).

Dans cette section, vous allez créer le cloud privé virtuel (VPC) et l'hôte bastion.

Ce tutoriel inclut des script shell complémentaires et un modèle Terraform, pouvant être utilisés pour générer les ressources créées en utilisant l'interface utilisateur ci-dessous. Ils sont disponibles dans ce dépôt Github.

  1. Naviguez jusqu'à la page Clouds privés virtuels et cliquez sur Créer.
  2. A la section Nouveau cloud privé virtuel :
    1. Entrez vpc-pubpriv comme nom de VPC.
    2. Sélectionnez un Groupe de ressources.
    3. Ajoutez éventuellement des Etiquettes pour organiser vos ressources.
  3. Désélectionnez Autoriser SSH et Autoriser la commande ping à partir du Groupe de sécurité par défaut. L'accès SSH sera ajouté ultérieurement au groupe de sécurité de maintenance. Ce groupe doit être ajouté à une instance pour autoriser l'accès SSH à partir du serveur bastion. Un accès par commande Ping n'est pas requis pour ce tutoriel.
  4. Sous Sous-réseaux, modifiez le nom du sous-réseau Zone 1. Cliquez sur l'icône de crayon.
    • Entrez vpc-secure-bastion-subnet comme nom unique de votre sous-réseau.
    • Utilisez le même groupe de ressources que le groupe de ressources VPC.
    • Conservez les valeurs par défaut pour les autres options.
    • Cliquez sur Sauvegarder.
  5. Sous Sous-réseaux, modifiez le nom du sous-réseau Zone 2. Cliquez sur l'icône de crayon.
    • Entrez vpc-pubpriv-backend-subnet comme unique de votre sous-réseau.
    • Utilisez le même groupe de ressources que le groupe de ressources VPC.
    • Conservez les valeurs par défaut pour les autres options.
    • Cliquez sur Sauvegarder.
  6. Sous Sous-réseaux, modifiez le nom du sous-réseau Zone 3. Cliquez sur l'icône de crayon.
    • Entrez vpc-pubpriv-frontend-subnet comme nom unique de votre sous-réseau.
    • Utilisez le même groupe de ressources que le groupe de ressources VPC.
    • Conservez les valeurs par défaut pour les autres options.
    • Cliquez sur Sauvegarder.
  7. Cliquez sur Nouveau cloud privé virtuel.

Pour confirmer la création du sous-réseau, allez à la page Sous-réseaux et attendez que le statut devienne Disponible.

Création et configuration d'un groupe de sécurité de bastion

Suivez les étapes décrites dans cette section du tutoriel pour le bastion pour créer un groupe de sécurité et configurer des règles entrantes pour l'instance de serveur virtuel du bastion.

Créez une instance de bastion

Suivez les étapes décrites dans cette section du tutoriel pour le bastion pour créer l'instance de serveur virtuel du bastion.

Configuration d'un groupe de sécurité avec des règles d'accès de maintenance

Suivez les étapes décrites dans cette section du tutoriel pour le bastion pour créer le groupe de sécurité vpc-secure-maintenance-sg. Ce groupe de sécurité sera utilisé lors de l'exécution des tâches de maintenance sur des instances de serveur virtuel, par exemple l'installation de logiciels ou la mise à jour du système d'exploitation.

Création d'un groupe de sécurité et d'une instance de serveur virtuel pour le back-end

Dans cette section, vous allez créer un groupe de sécurité et une instance de serveur virtuel pour le back-end.

Création d'un groupe de sécurité de back-end

Le groupe de sécurité de back-end contrôle les connexions entrantes et sortantes des serveurs de back-end.

Pour créer un groupe de sécurité pour le back-end :

  1. Sélectionnez Groupes de sécurité sous Réseau, puis cliquez sur Créer.
  2. Entrez vpc-pubpriv-backend-sg en tant que nom et sélectionnez le VPC que vous avez créé précédemment.
  3. Sélectionnez un groupe de ressources identique à votre VPC.
  4. Cliquez sur Créer un groupe de sécurité.

Vous modifierez ensuite le groupe de sécurité pour ajouter les règles entrantes et sortantes.

Création d'une instance de serveur virtuel de back-end

Pour créer une instance de serveur virtuel sur le sous-réseau que vous venez de créer :

  1. Cliquez sur le sous-réseau du backend sous Sous-réseaux.
  2. Cliquez sur Ressources associées, puis sous Instances associées cliquez sur Créer.
  3. Pour configurer l'instance :
    1. Choisissez un lieu et assurez-vous de réutiliser le même endroit plus tard.
    2. Définissez le nom sur vpc-pubpriv-backend-vsi.
    3. Sélectionnez le groupe de ressources comme précédemment.
    4. Sous Image, cliquez sur Modifier l'image. Utilisez la zone de recherche pour sélectionner Ubuntu Linux comme système d'exploitation. Vous pouvez sélectionner n'importe quelle version de l'image.
    5. Cliquez sur Modifier le profil, sélectionnez Calculer comme catégorie et choisissez cx2-2x4 (2 vCPUs et 4 Go de mémoire RAM) comme profil.
    6. Définissez les clés SSH sur la clé SSH que vous avez créée précédemment.
    7. Sous Options avancées, définissez Données utilisateur sur
      #!/bin/bash
      apt-get update
      apt-get install -y nginx
      echo "I'm the backend server" > /var/www/html/index.html
      service nginx start
      
      Cette commande installe un serveur Web simple dans l'instance.
  4. Sous Réseau, sélectionnez le VPC que vous avez créé.
  5. Assurez-vous que l'interface de réseau virtuel est sélectionnée et que vpc-pubpriv-backend-subnet est répertorié en tant que sous-réseau. Cliquez sur l'icône d'édition de ce sous-réseau.
    1. Tout d'abord, sous Détails de connexion réseau et d'interface réseau virtuelle, vérifiez que vpc-pubpriv-backend-subnet est sélectionné. Cliquez sur Suivant.
    2. Décochez le groupe de sécurité par défaut et cochez vpc-pubpriv-backend-sg et vpc-secure-maintenance-sg.
    3. Dans la boîte de dialogue Configuration IP, laissez tout tel qu'il est et cliquez sur Suivant.
    4. Enfin, passez tout en revue et terminez en cliquant sur Sauvegarder.
  6. Cliquez sur Créer une instance de serveur virtuel.

Création d'un groupe de sécurité et d'une instance de serveur virtuel pour le front-end

De même que pour le back-end, vous allez créer une instance de serveur virtuel et un groupe de sécurité de front-end.

Création d'un groupe de sécurité de front-end

Pour créer un groupe de sécurité pour le front-end :

  1. Cliquez sur Groupes de sécurité sous Réseau, puis sur Créer.
  2. Entrez vpc-pubpriv-frontend-sg en tant que nom et sélectionnez le VPC que vous avez créé précédemment.
  3. Sélectionnez un groupe de ressources identique à votre VPC.
  4. Cliquez sur Créer un groupe de sécurité.

Création d'une instance de serveur virtuel de front-end

Pour créer une instance de serveur virtuel sur le sous-réseau que vous venez de créer :

  1. Cliquez sur le sous-réseau du frontend sous Subnets.
  2. Cliquez sur Ressources associées, puis sous Instances associées cliquez sur Créer.
  3. Pour configurer l'instance :
    1. Choisissez un lieu et assurez-vous de réutiliser le même endroit plus tard.
    2. Définissez le nom sur vpc-pubpriv-frontend-vsi.
    3. Sélectionnez le groupe de ressources comme précédemment.
    4. Sous Image, cliquez sur Modifier l'image. Utilisez la zone de recherche pour sélectionner Ubuntu Linux comme système d'exploitation. Vous pouvez sélectionner n'importe quelle version de l'image.
    5. Cliquez sur Modifier le profil, sélectionnez Calculer comme catégorie et choisissez cx2-2x4 (2 vCPUs et 4 Go de mémoire RAM) comme profil.
    6. Définissez Clés SSH avec la clé SSH créée précédemment.
    7. Sous Options avancées, définissez Données utilisateur sur
      #!/bin/bash
      apt-get update
      apt-get install -y nginx
      echo "I'm the frontend server" > /var/www/html/index.html
      service nginx start
      
      Cette commande installe un serveur Web simple dans l'instance.
  4. Sous Réseau, sélectionnez le VPC que vous avez créé.
  5. Vérifiez que l'interface de réseau virtuel est sélectionnée et que vpc-pubpriv-frontend-subnet est répertorié en tant que sous-réseau. Cliquez sur l'icône d'édition de ce sous-réseau.
    1. Tout d'abord, sous Détails de la connexion réseau et de l'interface réseau virtuelle, vérifiez que vpc-pubpriv-frontend-subnet est sélectionné. Cliquez sur Suivant.
    2. Décochez le groupe de sécurité par défaut et cochez vpc-pubpriv-frontend-sg et vpc-secure-maintenance-sg.
    3. Dans la boîte de dialogue Configuration IP, laissez tout tel qu'il est et cliquez sur Suivant.
    4. Enfin, passez tout en revue et terminez en cliquant sur Sauvegarder.
  6. Cliquez sur Créer une instance de serveur virtuel.

Une fois que l'instance est opérationnelle et en cours d'exécution, sélectionnez l'instance de serveur virtuel de front-end vpc-pubpriv-frontend-vsi, accédez à Network attachments with Virtual network interface et sélectionnez Editer les adresses IP flottantes dans le menu à trois points pour eth0. Cliquez sur Connecter, puis sur Réserver une nouvelle adresse IP flottante et utilisez vpc-pubpriv-frontend-vsi-ip comme nom. Après avoir terminé avec Réserver, vous devrez peut-être actualiser la page pour voir l'adresse IP nouvellement connectée.

Configuration de la connectivité entre les serveurs de front-end et de back-end

Une fois tous les serveurs en cours d'exécution, dans cette section, vous allez configurer la connectivité pour permettre des opérations normales entre les serveurs de front-end et de back-end.

Configuration d'un groupe de sécurité de front-end

Le logiciel de l'instance de front-end est installé, mais il est encore inaccessible en raison de la configuration.

  1. Pour confirmer que le serveur Web n'est pas encore accessible, ouvrez un navigateur Web pointant vers http://<floating-ip-address-of-the-frontend-vsi> ou utilisez :

    curl -v -m 30 http://<floating-ip-address-of-the-frontend-vsi>
    

    La connexion devrait finir par dépasser le délai d'attente.

  2. Pour activer la connexion entrante au serveur Web installé sur l'instance de front-end, Vous devez ouvrir le port sur lequel le serveur Web est à l'écoute.

  3. Accédez à Groupes de sécurité dans la section Réseau, puis cliquez sur vpc-pubpriv-frontend-sg.

  4. Cliquez sur l'onglet Règles et, sous Règles entrantes, cliquez sur Créer. Ajoutez les règles du tableau ci-dessous, elles autorisent les requêtes HTTP entrantes et le Ping (ICMP). .

    Règles entrantes
    Protocole Type source Source Valeur Description
    TCP Tout 0.0.0.0/0 Ports 80-80 Cette règle autorise les connexions à partir de n'importe quelle adresse IP au serveur Web de front-end.
    ICMP Tout 0.0.0.0/0 Type : 8, Code : Laisser vide Cette règle autorise le serveur de front-end à être interrogé par n'importe quel hôte avec la commande ping.
  5. Ajoutez ensuite la règle sortante. Le port du serveur de back-end dépend du logiciel que vous installez sur le serveur virtuel. Ce tutoriel utilise un serveur Web à l'écoute sur le port 80. Consultez le tableau Règles sortantes ci-dessous pour connaître les valeurs.

    Règles sortantes
    Protocole Type de destination Destination Valeur Description
    TCP Groupe de sécurité vpc-pubpriv-backend-sg Ports 80-80 Cette règle autorise le serveur de front-end à communiquer avec le serveur de back-end.
  6. Accédez de nouveau à l'instance frontale à l'adresse http://<floating-ip-address-of-the-frontend-vsi> pour afficher la page d'accueil du serveur Web.

Test de la connectivité entre les serveurs de front-end et de back-end

Le serveur de back-end exécute le même logiciel de serveur Web que le serveur de front-end. Il pourrait être considéré comme un microservice exposant une interface HTTP appelée par le serveur de front-end. Dans cette section, vous allez essayer de vous connecter au serveur de back-end à partir de l'instance de serveur de front-end.

  1. Dans la liste Instances de serveur virtuel, récupérez l'adresse IP flottante du serveur bastion (vpc-secure-bastion ) et les adresses IP privées des instances de serveur frontend (vpc-pubpriv-frontend-vsi ) et backend (vpc-pubpriv-backend-vsi ).

  2. Utilisez ssh pour vous connecter au serveur virtuel de front-end :

    ssh -J root@<floating-ip-address-of-the-bastion-vsi> root@<private-ip-address-of-the-frontend-vsi>
    

    SSH sur le serveur de front-end n'est possible que par l'intermédiaire du serveur bastion et uniquement si vpc-secure-maintenance-sg a été connecté à l'instance de front-end.

  3. Appelez le serveur Web de back-end :

    curl -v -m 30 http://<private-ip-address-of-the-backend-vsi>
    

    Après 30 secondes, le délai d'attente de l'appel doit être écoulé. En effet, le groupe de sécurité du serveur de back-end n'a pas été encore configuré et n'autorise pas les connexions entrantes.

Configuration d'un groupe de sécurité de back-end

Pour autoriser les connexions entrantes sur le serveur de back-end, vous devez configurer le groupe de sécurité associé.

  1. Accédez à Groupes de sécurité dans la section Réseau, puis cliquez sur vpc-pubpriv-backend-sg.

  2. Cliquez sur l'onglet Règles et, sous Règles entrantes, cliquez sur Créer. Ajoutez la règle suivante.

    Règles entrantes
    Protocole Type de source source Valeur Description
    TCP Groupe de sécurité vpc-pubpriv-frontend-sg Ports 80-80 Cette règle autorise les connexions entrantes sur le port 80 à partir du serveur frontal vers le serveur dorsal.

Vérification de la connectivité

  1. Appelez à nouveau le serveur Web de back-end à partir du serveur de front-end :
    curl -v -m 30 http://<private-ip-address-of-the-backend-vsi>
    
  2. La demande répond rapidement en affichant le message I'm the backend server du serveur Web de back-end. Ce message termine la configuration de la connectivité entre les serveurs.

Fin des opérations de maintenance

Avec les logiciels de serveur de back-end et de front-end correctement installés et opérationnels, les serveurs peuvent être retirés du groupe de sécurité de maintenance.

  1. Accédez à Groupes de sécurité dans la section Réseau, puis cliquez sur vpc-secure-maintenance-sg.
  2. Sélectionnez Ressources connectées.
  3. Cliquez sur Editer les interfaces, développez et décochez les interfaces vpc-pubpriv-frontend-vsi et vpc-pubpriv-backend-vsi.
  4. Enregistrez la configuration.
  5. Accédez de nouveau à l'instance frontale à l'adresse http://<floating-ip-address-of-the-frontend-vsi> pour confirmer qu'elle fonctionne toujours comme prévu.

Une fois les serveurs retirés du groupe de maintenance, ils ne sont plus accessibles avec ssh. Ils autoriseront uniquement le trafic vers leurs serveurs Web.

Dans ce tutoriel, vous avez déployé deux niveaux d'une application, un serveur de front-end visible sur l'Internet public et un serveur de back-end uniquement accessible au sein du cloud privé virtuel par le serveur de front-end. Vous avez configuré des règles de groupe de sécurité pour garantir que le trafic n'est autorisé que sur les ports spécifiques requis par l'application.

Suppression de ressources

  1. Dans la console VPC Infrastructure, cliquez sur Floating IPs sous Network, puis sur l'adresse IP de vos VSI, et dans le menu d'action, sélectionnez Release. Confirmez que vous souhaitez libérer l'adresse IP.
  2. Ensuite, accédez à Instances de serveur virtuel, Arrêter et Supprimer pour supprimer vos instances en cliquant sur le menu d'action concerné.
  3. Une fois les instances VSI supprimées, passez aux Sous-réseaux. Si le sous-réseau est connecté à une passerelle publique, cliquez sur le nom du sous-réseau. Dans les détails du sous-réseau, déconnectez la passerelle publique. Les sous-réseaux sans passerelle publique peuvent être supprimés de la page Vue d'ensemble. Supprimez les sous-réseaux.
  4. Une fois les sous-réseaux supprimés, cliquez sur l'onglet VPC et supprimez votre VPC.

Lorsque vous utilisez la console, vous devrez peut-être actualiser votre navigateur pour consulter les informations d'état mises à jour après la suppression d'une ressource.