Utilisation d'une passerelle VPC/VPN pour un accès sur site sécurisé et privé aux ressources de cloud
Ce tutoriel entraînera 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.
IBM propose plusieurs méthodes pour étendre de manière sécurisée un réseau informatique sur site avec des ressources dans IBM Cloud. Cela vous permet de bénéficier de l'élasticité de la mise à disposition de ressources cloud lorsque vous en avez besoin et de les supprimer lorsque vous n'en avez plus besoin. De plus, vous pouvez connecter facilement et en toute sécurité vos fonctionnalités sur site aux services IBM Cloud.
Ce tutoriel fournit l'automatisation permettant de créer des ressources qui démontrent la connectivité du réseau privé virtuel (VPN) entre les serveurs sur site et les ressources cloud, telles que IBM Cloud® Virtual Private Cloud Virtual Service Instances (VSIs) et les services de données IBM Cloud. La résolution DNS aux ressources cloud est également configurée. La passerelle populaire VPN strongSwan est utilisée pour représenter la passerelle VPN sur site.
Objectifs
- Accéder à un environnement de nuage privé virtuel (VPC) à partir d'un centre de données sur site
- Accéder en toute sécurité aux services en nuage à l'aide de passerelles de points d'extrémité privés
- Utilisez DNS sur site pour accéder aux ressources de cloud via le VPN
Le diagramme suivant présente les ressources créées par ce tutoriel
Une configuration Terraform crée les ressources suivantes :
- L'infrastructure (VPC, sous-réseaux, groupes de sécurité avec règles, Network ACL et VSI).
- Les passerelles de nœud final privées Object Storage et Databases for PostgreSQL vers les services de données.
- Le logiciel de passerelle open source IPSec de strongSwan est utilisé sur site pour établir la connexion VPN à l'environnement de cloud.
- Une passerelle VPC/VPN est mise à disposition pour permettre la connectivité privée entre les ressources sur site et les ressources cloud.
- Le programme de résolution DNS sur site est connecté au cloud DNS Resolver Location pour permettre l'accès aux ressources cloud, y compris l'accès aux passerelles de nœuds finaux privés virtuels via un VPN.
Avant de commencer
Pour ce tutoriel, vous devez disposer des éléments suivants :
- IBM Cloud CLI,
- Plug-in IBM Cloud Schematics (
schematics),
- Plug-in IBM Cloud Schematics (
- de
jqpour interroger les fichiers JSON, gitto optionally clone source code repository,Terraform CLIto optionally run Terraform on your desktop instead of the Schematics service.
Vous trouverez des instructions de téléchargement et d'installation de ces outils pour votre environnement d'exploitation dans le document Démarrer avec les tutoriels.
Le centre de données sur site de ce tutoriel sera simulé à l'aide d'un VSI au sein d'un VPC.
Le mécanisme préféré pour connecter les VCP est Transit Gateway. La simulation d'un environnement sur site avec VPC, VSI et VPN n'est utilisée qu'à titre d'illustration.
De plus :
- 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. Pour obtenir une liste des autorisations requises, voir Octroi des autorisations nécessaires pour les ressources VPC.
- Une clé SSH est nécessaire pour la connexion aux serveurs virtuels. Si vous ne possédez pas de clé SSH, consultez les instructions de création d'une clé.
Utilisez Schematics pour créer les ressources
- Connectez-vous à IBM Cloud.
- Naviguez vers Créer Schematics Espaces de travail Sous la section Spécifier le modèle,
vérifiez :
- L'URL du référentiel est
https://github.com/IBM-Cloud/vpc-tutorials/tree/master/vpc-site2site-vpn - La version de Terraform est terraform_v1.2
- L'URL du référentiel est
- Sous Détails de l'espace de travail,
- Indiquez un nom d'espace de travail : vpnsts.
- Choisissez un
Resource Groupet unLocation. - Cliquez sur Suivant.
- Vérifiez les détails, puis cliquez sur Créer.
- Sous la section Variables, indiquez les valeurs requises (resource_group_name, ssh_key_name) en cliquant sur le menu déroulant dynamique et en sélectionnant Editer pour chaque ligne. La valeur de la variable maintenance doit être définie sur true.
- Accédez au haut de la page et cliquez sur Appliquer le plan. Consultez les journaux pour voir le statut des services créés.
Explorez les ressources créées en cliquant ci-dessous et en sélectionnant l'instance avec le préfixe correspondant. Localisez toutes les ressources du diagramme ci-dessus.
Vérifier la connectivité
La sortie de l'espace de travail Schematics contient des variables qui peuvent être utilisées pour vérifier la connectivité VPN.
-
Récupérez la liste des espaces de travail, notez la colonne ID, définissez la variable du shell :
ibmcloud schematics workspace list -
Définissez la variable WORKSPACE_ID :
WORKSPACE_ID=YOUR_WORKSPACE_ID -
Récupérez les variables d'environnement pour les ressources cloud :
ibmcloud schematics output --id $WORKSPACE_ID --output json | jq -r '.[0].output_values[].environment_variables.value' -
La sortie va ressembler à ce qui suit. Copiez / collez ces résultats dans votre shell afin de les définir dans l'environnement:
IP_FIP_ONPREM=169.48.x.x IP_PRIVATE_ONPREM=10.0.0.4 IP_PRIVATE_CLOUD=10.1.1.4 IP_FIP_BASTION=52.118.x.x IP_PRIVATE_BASTION=10.1.0.4 IP_DNS_SERVER_0=10.1.0.5 IP_DNS_SERVER_1=10.1.1.6 IP_ENDPOINT_GATEWAY_POSTGRESQL=10.1.1.9 IP_ENDPOINT_GATEWAY_COS=10.1.1.5 HOSTNAME_POSTGRESQL=a43ddb63-dcb1-430a-a2e4-5d87a0dd12a6.6131b73286f34215871dfad7254b4f7d.private.databases.appdomain.cloud HOSTNAME_COS=s3.direct.us-south.cloud-object-storage.appdomain.cloud PORT_POSTGRESQL=32525 -
Vous pouvez maintenant établir une connexion ssh à chacune des instances suivant différents chemins, y compris en effectuant un saut via le VPN. Le diagramme illustre les chemins de communication testés par les étapes.
Si la clé SSH n'est pas la clé par défaut pour SSH, vous pouvez définir l'option
-I PATH_TO_PRIVATE_KEY_FILEou consulter le manuel de référence SSH pour plus d'aide.
- Test de l'accès au VSI sur site :
ssh root@$IP_FIP_ONPREM - Test de l'accès au bastion cloud :
ssh root@$IP_FIP_BASTION - Testez l'accès au VSI cloud via le bastion :
ssh -J root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD - Testez l'accès au VSI cloud à via le système sur site, via le tunnel VPN, via le bastion :
ssh -J root@$IP_FIP_ONPREM,root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD - Testez l'accès au VSI sur site via un bastion, via le VSI cloud, via le tunnel VPN :
ssh -J root@$IP_FIP_BASTION,root@$IP_PRIVATE_CLOUD root@$IP_PRIVATE_ONPREM
Vérifiez la résolution DNS
La résolution DNS sur site a été configurée pour utiliser l'emplacement du résolveur DNS IBM Cloud VPC L'emplacement du résolveur DNS. Cela permet d'accéder aux services cloud par leur nom et de les convertir en adresses IP des passerelles de nœud final privées.
Testez la résolution DNS vers Postgresql et Object Storage via la passerelle de nœud final virtuel. Les deux chemins d'accès vérifiés sont indiqués dans le diagramme ci-dessous :
-
Accédez à l'instance de serveur virtuel sur site.
ssh root@$IP_FIP_ONPREM -
Copiez et collez trois (3) des variables capturées précédemment:
HOSTNAME_POSTGRESQL,HOSTNAME_COS,PORT_POSTGRESQL. -
Exécutez une commande
digpour confirmer la résolution de l'instance de base de données via la passerelle de noeud final virtuel.dig $HOSTNAME_POSTGRESQL -
Vérifiez la connectivité à la base de données en exécutant une commande
telnet. Il doit afficher "connecté".telnet $HOSTNAME_POSTGRESQL $PORT_POSTGRESQL -
Une fois connecté à la base de données, émettez une commande
Ctrl+Cpour vous déconnecter. -
Exécutez une commande
digpour confirmer la résolution de l'instance de stockage d'objets cloud via la passerelle de noeud final virtuel.dig $HOSTNAME_COS -
Vérifiez la connectivité à l'instance de stockage d'objets cloud en exécutant une commande
telnet. Il doit afficher "connecté".telnet $HOSTNAME_COS 443 -
Une fois connecté à l'instance de stockage d'objets cloud, émettez une commande
Ctrl+Cpour vous déconnecter.
Si un incident se produit, reportez-vous à la section Identification et résolution des incidents dans le référentiel github.
Vous pouvez éventuellement développer le tutoriel
Vous souhaitez enrichir ou développer ce tutoriel ? Voici quelques suggestions :
- Le référentielGitHub contient une application qui peut être déployée et qui utilise la base de données et le stockage d'objets cloud. Les instructions de déploiement se trouvent dans le fichier README.
- Si vous avez déployé l'application Ajout d'une zone DNS pour l'application.
- Exécutez l'application sur plusieurs Virtual Servers for VPC et ajoutez un équilibreur de charge pour distribuer le trafic de microservice entrant.
Suppression de ressources
- Accédez à Espaces de travail Schematics, cliquez sur votre espace de travail
- Cliquez sur Actions ... > Détruire les ressources
- Cliquez sur Actions ... > Détruire l'espace de travail