Tutoriel : Configuration de l'accès au réseau privé à l'aide d'un hôte Linux Bastion - Amazon Managed Workflows for Apache Airflow

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tutoriel : Configuration de l'accès au réseau privé à l'aide d'un hôte Linux Bastion

Ce didacticiel explique les étapes de création d'un tunnel SSH entre votre ordinateur et le serveur Web Apache Airflow pour votre environnement Amazon Managed Workflows for Apache Airflow. Cela suppose que vous avez déjà créé un environnement Amazon MWAA. Une fois configuré, un hôte Linux Bastion agit comme un serveur de saut permettant une connexion sécurisée entre votre ordinateur et les ressources de votre VPC. Vous utiliserez ensuite un module complémentaire de gestion de proxy SOCKS pour contrôler les paramètres du proxy dans votre navigateur afin d'accéder à votre interface utilisateur Apache Airflow.

Réseau privé

Ce didacticiel part du principe que vous avez choisi le mode d'accès au réseau privé pour votre serveur Web Apache Airflow.

Cette image montre l'architecture d'un environnement Amazon MWAA avec un serveur Web privé.

Le mode d'accès au réseau privé limite l'accès à l'interface utilisateur d'Apache Airflow aux utilisateurs de votre Amazon VPC qui ont obtenu l'accès à la politique IAM de votre environnement.

Lorsque vous créez un environnement avec accès à un serveur Web privé, vous devez empaqueter toutes vos dépendances dans une archive Python Wheel (.whl), puis y faire référence .whl dans votrerequirements.txt. Pour obtenir des instructions sur l'empaquetage et l'installation de vos dépendances à l'aide de wheel, consultez la section Gestion des dépendances à l'aide de Python Wheel.

L'image suivante montre où trouver l'option Réseau privé sur la console Amazon MWAA.

Cette image montre où trouver l'option Réseau privé sur la console Amazon MWAA.

Cas d’utilisation

Vous pouvez utiliser ce didacticiel après avoir créé un environnement Amazon MWAA. Vous devez utiliser le même Amazon VPC, le même groupe de sécurité VPC et les mêmes sous-réseaux publics que votre environnement.

Avant de commencer

  1. Vérifiez les autorisations des utilisateurs. Assurez-vous que votre compte dans AWS Identity and Access Management (IAM) dispose des autorisations suffisantes pour créer et gérer les ressources VPC.

  2. Utilisez votre VPC Amazon MWAA. Ce didacticiel part du principe que vous associez l'hôte bastion à un VPC existant. Le VPC Amazon doit se trouver dans la même région que votre environnement Amazon MWAA et disposer de deux sous-réseaux privés, comme défini dans. Créez le VPC réseau

  3. Créez une clé SSH. Vous devez créer une clé SSH Amazon EC2 (.pem) dans la même région que votre environnement Amazon MWAA pour vous connecter aux serveurs virtuels. Si vous n'avez pas de clé SSH, consultez la section Créer ou importer une paire de clés dans le guide de l'utilisateur Amazon EC2.

Objectifs

Dans le cadre de ce didacticiel, vous effectuerez les tâches suivantes :

  1. Créez une instance d'hôte Linux Bastion à l'aide d'un AWS CloudFormation modèle pour un VPC existant.

  2. Autorisez le trafic entrant vers le groupe de sécurité de l'instance Bastion à l'aide d'une règle d'entrée sur le port. 22

  3. Autorisez le trafic entrant depuis le groupe de sécurité d'un environnement Amazon MWAA vers le groupe de sécurité de l'instance Bastion.

  4. Créez un tunnel SSH vers l'instance de bastion.

  5. Installez et configurez le FoxyProxy module complémentaire pour le navigateur Firefox afin d'afficher l'interface utilisateur d'Apache Airflow.

Première étape : créer l'instance de bastion

La section suivante décrit les étapes de création de l'instance Linux Bastion à l'aide d'un AWS CloudFormation modèle pour un VPC existant sur la AWS CloudFormation console.

Pour créer l'hôte Linux Bastion
  1. Ouvrez la page de démarrage rapide du déploiement sur la AWS CloudFormation console.

  2. Utilisez le sélecteur de région dans la barre de navigation pour choisir la même AWS région que votre environnement Amazon MWAA.

  3. Choisissez Suivant.

  4. Tapez un nom dans le champ de texte Stack name, tel quemwaa-linux-bastion.

  5. Dans le volet Paramètres, Configuration réseau, choisissez les options suivantes :

    1. Choisissez l'ID VPC de votre environnement Amazon MWAA.

    2. Choisissez l'ID de sous-réseau public 1 de votre environnement Amazon MWAA.

    3. Choisissez l'ID de sous-réseau public 2 de votre environnement Amazon MWAA.

    4. Entrez la plage d'adresses la plus étroite possible (par exemple, une plage d'adresses CIDR interne) dans Allowed Bastion external access CIDR.

      Note

      Le moyen le plus simple d'identifier une plage est d'utiliser la même plage CIDR que celle de vos sous-réseaux publics. Par exemple, les sous-réseaux publics du AWS CloudFormation modèle de la Créez le VPC réseau page sont 10.192.10.0/24 et10.192.11.0/24.

  6. Dans le volet de configuration Amazon EC2, choisissez ce qui suit :

    1. Choisissez votre clé SSH dans la liste déroulante dans Nom de la paire de clés.

    2. Entrez un nom dans le champ Nom d'hôte de Bastion.

    3. Choisissez true pour le transfert TCP.

      Avertissement

      Le transfert TCP doit être défini sur true à cette étape. Dans le cas contraire, vous ne pourrez pas créer de tunnel SSH à l'étape suivante.

  7. Appuyez sur Suivant, Suivant.

  8. Sélectionnez l'accusé de réception, puis choisissez Create stack.

Pour en savoir plus sur l'architecture de votre hôte Linux Bastion, consultez Linux Bastion Hosts on the AWS Cloud : Architecture.

Deuxième étape : créer le tunnel SSH

Les étapes suivantes décrivent comment créer le tunnel SSH vers votre bastion Linux. Un tunnel SSH reçoit la demande de votre adresse IP locale vers le bastion Linux, c'est pourquoi le transfert TCP pour le bastion Linux a été défini dans les étapes précédentes. true

macOS/Linux
Pour créer un tunnel via la ligne de commande
  1. Ouvrez la page Instances sur la console Amazon EC2.

  2. Choisissez un type d’instance.

  3. Copiez l'adresse dans le DNS IPv4 public. Par exemple, ec2-4-82-142-1.compute-1.amazonaws.com.

  4. Dans votre invite de commande, accédez au répertoire dans lequel votre clé SSH est stockée.

  5. Exécutez la commande suivante pour vous connecter à l'instance de bastion à l'aide de ssh. Remplacez la valeur de l'échantillon par le nom de votre clé SSH. mykeypair.pem

    ssh -i mykeypair.pem -N -D 8157 ec2-user@YOUR_PUBLIC_IPV4_DNS
Windows (PuTTY)
Pour créer un tunnel à l'aide de PuTTY
  1. Ouvrez la page Instances sur la console Amazon EC2.

  2. Choisissez un type d’instance.

  3. Copiez l'adresse dans le DNS IPv4 public. Par exemple, ec2-4-82-142-1.compute-1.amazonaws.com.

  4. Ouvrez PuTTY, sélectionnez Session.

  5. Entrez le nom d'hôte dans Nom d'hôte sous la forme ec2-user@ YOUR_PUBLIC_IPV4_DNS et le port sous la forme. 22

  6. Développez l'onglet SSH, sélectionnez Auth. Dans le fichier de clé privée pour l'authentification, choisissez votre fichier « ppk » local.

  7. Sous SSH, choisissez l'onglet Tunnels, puis sélectionnez les options Dynamique et Auto.

  8. Dans Port source, ajoutez le 8157 port (ou tout autre port non utilisé), puis laissez le champ Port de destination vide. Choisissez Ajouter.

  9. Choisissez l'onglet Session et entrez un nom de session. Par exemple SSH Tunnel.

  10. Choisissez Enregistrer, Ouvrir.

    Note

    Il se peut que vous deviez saisir une phrase secrète pour votre clé publique.

Note

Si vous recevez un Permission denied (publickey) message d'erreur, nous vous recommandons d'utiliser l'outil AWSSupport-TroubleShootSSH et de choisir Run this Automation (console) pour résoudre les problèmes liés à votre configuration SSH.

Troisième étape : configurer le groupe de sécurité Bastion en tant que règle entrante

L'accès aux serveurs et l'accès régulier à Internet depuis les serveurs sont autorisés grâce à un groupe de sécurité de maintenance spécial attaché à ces serveurs. Les étapes suivantes décrivent comment configurer le groupe de sécurité Bastion en tant que source de trafic entrant vers le groupe de sécurité VPC d'un environnement.

  1. Ouvrez la page Environnements sur la console Amazon MWAA.

  2. Choisissez un environnement.

  3. Dans le volet Mise en réseau, choisissez le groupe de sécurité VPC.

  4. Choisissez Modifier les règles entrantes.

  5. Choisissez Ajouter une règle.

  6. Choisissez l'ID de votre groupe de sécurité VPC dans la liste déroulante Source.

  7. Laissez les options restantes vides ou définissez leurs valeurs par défaut.

  8. Sélectionnez Enregistrer les règles.

Quatrième étape : copier l'URL d'Apache Airflow

Les étapes suivantes décrivent comment ouvrir la console Amazon MWAA et copier l'URL dans l'interface utilisateur d'Apache Airflow.

  1. Ouvrez la page Environnements sur la console Amazon MWAA.

  2. Choisissez un environnement.

  3. Copiez l'URL dans l'interface utilisateur d'Airflow pour les étapes suivantes.

Étape 5 : configurer les paramètres du proxy

Si vous utilisez un tunnel SSH avec réacheminement de port dynamique, vous devez utiliser un module complémentaire de gestion de proxy SOCKS pour contrôler les paramètres de proxy dans votre navigateur. Par exemple, vous pouvez utiliser la --proxy-server fonctionnalité de Chromium pour démarrer une session de navigateur ou utiliser l' FoxyProxy extension dans le FireFox navigateur Mozilla.

Première option : configurer un tunnel SSH à l'aide de la redirection de port locale

Si vous ne souhaitez pas utiliser de proxy SOCKS, vous pouvez configurer un tunnel SSH en utilisant la redirection de port locale. L'exemple de commande suivant accède à l'interface Web Amazon ResourceManagerEC2 en transférant le trafic sur le port local 8157.

  1. Ouvrez une nouvelle fenêtre d’invite de commandes.

  2. Tapez la commande suivante pour ouvrir un tunnel SSH.

    ssh -i mykeypair.pem -N -L 8157:YOUR_VPC_ENDPOINT_ID-vpce.YOUR_REGION.airflow.amazonaws.com:443 ubuntu@YOUR_PUBLIC_IPV4_DNS.YOUR_REGION.compute.amazonaws.com

    -Lsignifie l'utilisation de la redirection de port local qui vous permet de spécifier un port local utilisé pour transférer les données vers le port distant identifié sur le serveur Web local du nœud.

  3. Tapez http://localhost:8157/ dans votre navigateur.

    Note

    Il se peut que vous deviez utiliserhttps://localhost:8157/.

Deuxième option : Proxies via la ligne de commande

La plupart des navigateurs Web vous permettent de configurer des proxys via une ligne de commande ou un paramètre de configuration. Par exemple, avec Chromium, vous pouvez démarrer le navigateur avec la commande suivante :

chromium --proxy-server="socks5://localhost:8157"

Cela démarre une session de navigateur qui utilise le tunnel SSH que vous avez créé lors des étapes précédentes pour transmettre ses demandes par proxy. Vous pouvez ouvrir l'URL de votre environnement Amazon MWAA privé (avec https ://) comme suit :

https://YOUR_VPC_ENDPOINT_ID-vpce.YOUR_REGION.airflow.amazonaws.com/home.

Troisième option : utilisation de proxys FoxyProxy pour Mozilla Firefox

L'exemple suivant illustre une configuration FoxyProxy Standard (version 7.5.1) pour Mozilla Firefox. FoxyProxy fournit un ensemble d'outils de gestion de proxy. Il vous permet d'utiliser un serveur proxy pour les URL qui correspondent aux modèles correspondant aux domaines utilisés par l'interface utilisateur d'Apache Airflow.

  1. Dans Firefox, ouvrez la page de l'extension FoxyProxy Standard.

  2. Choisissez Ajouter à Firefox.

  3. Choisissez Ajouter.

  4. Cliquez FoxyProxy sur l'icône dans la barre d'outils de votre navigateur, puis sélectionnez Options.

  5. Copiez le code suivant et enregistrez-le localement sousmwaa-proxy.json. Remplacez la valeur d'échantillon dans YOUR_HOST_NAME par votre URL Apache Airflow.

    { "e0b7kh1606694837384": { "type": 3, "color": "#66cc66", "title": "airflow", "active": true, "address": "localhost", "port": 8157, "proxyDNS": false, "username": "", "password": "", "whitePatterns": [ { "title": "airflow-ui", "pattern": "YOUR_HOST_NAME", "type": 1, "protocols": 1, "active": true } ], "blackPatterns": [], "pacURL": "", "index": -1 }, "k20d21508277536715": { "active": true, "title": "Default", "notes": "These are the settings that are used when no patterns match a URL.", "color": "#0055E5", "type": 5, "whitePatterns": [ { "title": "all URLs", "active": true, "pattern": "*", "type": 1, "protocols": 1 } ], "blackPatterns": [], "index": 9007199254740991 }, "logging": { "active": true, "maxSize": 500 }, "mode": "patterns", "browserVersion": "82.0.3", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard" }
  6. Dans le volet Paramètres d'importation à partir de la FoxyProxy version 6.0, choisissez Paramètres d'importation et sélectionnez le mwaa-proxy.json fichier.

  7. Choisissez OK.

Sixième étape : ouvrir l'interface utilisateur d'Apache Airflow

Les étapes suivantes décrivent comment ouvrir l'interface utilisateur d'Apache Airflow.

  1. Ouvrez la page Environnements sur la console Amazon MWAA.

  2. Choisissez Open Airflow UI.

Quelle est la prochaine étape ?