View a markdown version of this page

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 à suivre pour créer un tunnel SSH entre votre ordinateur et le serveur Web Apache Airflow pour votre environnement Amazon Managed Workflows pour Apache Airflow. Cela suppose que vous avez déjà créé un environnement Amazon MWAA. Une fois configuré, un Linux Bastion Host agit comme un serveur de saut permettant une connexion sécurisée entre votre ordinateur et les ressources de votre VPC. Vous utilisez 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.

Note

Ce didacticiel s'applique au mode d'accès au réseau privé. Si vous avez choisi Accès au réseau public et privé, vous n'avez pas besoin d'un hôte bastion pour accéder à l'interface utilisateur d'Apache Airflow car celle-ci est accessible via Internet.

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 accès au réseau 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 un accès réseau privé, vous devez regrouper toutes vos dépendances dans une archive en forme de roue Python (.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, reportez-vous à la section Gestion des dépendances à l'aide de Python Wheel.

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

Cette image montre où se trouve 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, les mêmes groupes 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 Gestion des identités et des accès AWS (IAM) dispose des autorisations suffisantes pour créer et gérer des ressources VPC.

  2. Utilisez votre Amazon MWAA VPC. Ce didacticiel part du principe que vous associez l'hôte bastion à un VPC existant. L'Amazon VPC 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éation du réseau VPC

  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 ne possédez 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 Linux Bastion Host à l'aide d'un 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 Bastion.

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

Étape 1 : Création de l'instance de bastion

La section suivante décrit les étapes à suivre pour créer l'instance Linux Bastion.

Ouvrez la console Amazon Elastic Compute Cloud à https://console.aws.amazon.com/ec2/ l'adresse et créez une instance Amazon EC2 dans l'un des sous-réseaux publics du VPC utilisé pour votre environnement Amazon MWAA.

Note

Nous vous recommandons d'autoriser le transfert TCP sur l'instance Amazon EC2. Le transfert TCP signifie le transfert TCP SSH, qui permet la création de ssh -L/-D tunnels via l'hôte. La AllowTcpForwarding directive du démon SSH config (/etc/ssh/sshd_config) contrôle ce paramètre. Il est activé par défaut yes sur la plupart des AMI Amazon Linux et Ubuntu, mais il est souvent désactivé sur les AMI bastion renforcées.

Étape 2 : Création du 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 sur true lors des étapes précédentes.

macOS/Linux
Pour créer un tunnel à l'aide de 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 d'exemple par le nom de votre clé SSH dansmykeypair.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 Host Name comme ec2-user@ YOUR_PUBLIC_IPV4_DNS et le port comme. 22

  6. Développez l'onglet SSH, sélectionnez Auth. Dans 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 inutilisé), puis laissez le champ Port de destination vide. Choisissez Ajouter.

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

  10. Choisissez Enregistrer, Ouvrir.

    Note

    Il se peut que vous deviez saisir un mot de passe pour votre clé publique.

Note

Si vous recevez un Permission denied (publickey) message d'erreur, nous vous recommandons d'utiliser l'AWSSupport-TroubleshootSSHoutil et de choisir Exécuter cette automatisation (console) pour résoudre les problèmes de 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 Internet régulier à partir des serveurs sont autorisés avec 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 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 autres options vides ou retrouvez-les sur leurs valeurs par défaut.

  8. Sélectionnez Enregistrer les règles.

Étape 4 : copiez l'URL d'Apache Airflow

Les étapes suivantes décrivent comment ouvrir la console Amazon MWAA et copier l'URL vers 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.

Option 1 : 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 à l'aide de la redirection de port locale. L'exemple de commande suivant permet d'accéder au serveur Web Apache Airflow en transférant le trafic sur le port local 8157.

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

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

    ssh -i mykeypair.pem -N -L 8157:YOUR_VPC_ENDPOINT_ID-vpce.us-east-1.airflow.amazonaws.com:443 ec2-user@YOUR_PUBLIC_IPV4_DNS

    -Lsignifie l'utilisation de la redirection de port locale que vous pouvez utiliser pour 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. Entrez http://localhost:8157/ dans votre navigateur.

    Note

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

Option 2 : proxy à l'aide de la ligne de commande

Vous pouvez utiliser la plupart des navigateurs Web pour configurer des proxys à l'aide d'une ligne de commande ou d'un paramètre de configuration. Par exemple, avec Chromium, vous pouvez démarrer le navigateur à l'aide de 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 requêtes par proxy. Vous pouvez ouvrir l'URL de votre environnement Amazon MWAA privé (avec https ://) comme suit :

https://YOUR_VPC_ENDPOINT_ID-vpce.us-east-1.airflow.amazonaws.com/home.

Option 3 : 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 à des 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. Choisissez l' FoxyProxy icône dans la barre d'outils de votre navigateur, puis choisissez Options.

  5. Copiez le code suivant et enregistrez-le localement sousmwaa-proxy.json. Remplacez la valeur de l'échantillon 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.

Étape 6 : Ouvrez 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 ?