Tutorial: Konfiguration des privaten Netzwerkzugriffs mit einem Linux Bastion Host - Amazon Managed Workflows für Apache Airflow

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorial: Konfiguration des privaten Netzwerkzugriffs mit einem Linux Bastion Host

Dieses Tutorial führt Sie durch die Schritte zum Erstellen eines SSH-Tunnels von Ihrem Computer zum Apache Airflow-Webserver für Ihre Amazon Managed Workflows for Apache Airflow-Umgebung. Es wird davon ausgegangen, dass Sie bereits eine Amazon MWAA-Umgebung erstellt haben. Nach der Einrichtung fungiert ein Linux Bastion Host als Jump-Server, der eine sichere Verbindung von Ihrem Computer zu den Ressourcen in Ihrer VPC ermöglicht. Anschließend verwenden Sie ein SOCKS-Proxy-Management-Add-on, um die Proxyeinstellungen in Ihrem Browser für den Zugriff auf Ihre Apache Airflow-Benutzeroberfläche zu steuern.

Privates Netzwerk

In diesem Tutorial wird davon ausgegangen, dass Sie den privaten Netzwerkzugriffsmodus für Ihren Apache Airflow-Webserver ausgewählt haben.

Dieses Bild zeigt die Architektur für eine Amazon MWAA-Umgebung mit einem privaten Webserver.

Der private Netzwerkzugriffsmodus beschränkt den Zugriff auf die Apache Airflow-Benutzeroberfläche auf Benutzer in Ihrer Amazon VPC, denen Zugriff auf die IAM-Richtlinie für Ihre Umgebung gewährt wurde.

Wenn Sie eine Umgebung mit privatem Webserverzugriff erstellen, müssen Sie alle Ihre Abhängigkeiten in einem Python-Radarchiv (.whl) verpacken und dann auf das .whl in Ihrem verweisenrequirements.txt. Anweisungen zum Paketieren und Installieren Ihrer Abhängigkeiten mit Wheel finden Sie unter Abhängigkeiten mit Python Wheel verwalten.

Die folgende Abbildung zeigt, wo Sie die Option Privates Netzwerk auf der Amazon MWAA-Konsole finden.

Dieses Bild zeigt, wo Sie die Option Privates Netzwerk auf der Amazon MWAA-Konsole finden.

Anwendungsfälle

Sie können dieses Tutorial verwenden, nachdem Sie eine Amazon MWAA-Umgebung erstellt haben. Sie müssen dieselbe Amazon VPC, dieselben VPC-Sicherheitsgruppen und dieselben öffentlichen Subnetze wie Ihre Umgebung verwenden.

Bevor Sie beginnen

  1. Suchen Sie nach Benutzerberechtigungen. Stellen Sie sicher, dass Ihr Konto in AWS Identity and Access Management (IAM) über ausreichende Berechtigungen zum Erstellen und Verwalten von VPC-Ressourcen verfügt.

  2. Verwenden Sie Ihre Amazon MWAA VPC. In diesem Tutorial wird davon ausgegangen, dass Sie den Bastion-Host einer vorhandenen VPC zuordnen. Die Amazon VPC muss sich in derselben Region wie Ihre Amazon MWAA-Umgebung befinden und über zwei private Subnetze verfügen, wie unter definiert. Erstellen Sie das VPC Netzwerk

  3. Erstellen Sie einen SSH-Schlüssel. Sie müssen einen Amazon EC2 EC2-SSH-Schlüssel (.pem) in derselben Region wie Ihre Amazon MWAA-Umgebung erstellen, um eine Verbindung zu den virtuellen Servern herzustellen. Wenn Sie keinen SSH-Schlüssel haben, finden Sie weitere Informationen unter Erstellen oder Importieren eines key pair im Amazon EC2 EC2-Benutzerhandbuch.

Ziele

In diesem Tutorial führen Sie folgende Aufgaben durch:

  1. Erstellen Sie eine Linux Bastion Host-Instanz mithilfe einer AWS CloudFormation Vorlage für eine bestehende VPC.

  2. Autorisieren Sie eingehenden Datenverkehr zur Sicherheitsgruppe der Bastion-Instance mithilfe einer Eingangsregel am Port. 22

  3. Autorisieren Sie eingehenden Datenverkehr von der Sicherheitsgruppe einer Amazon MWAA-Umgebung zur Sicherheitsgruppe der Bastion-Instance.

  4. Erstellen Sie einen SSH-Tunnel zur Bastion-Instance.

  5. Installieren und konfigurieren Sie das FoxyProxy Add-on für den Firefox-Browser, um die Apache Airflow-Benutzeroberfläche anzuzeigen.

Erster Schritt: Erstellen Sie die Bastion-Instanz

Im folgenden Abschnitt werden die Schritte zum Erstellen der Linux-Bastion-Instanz mithilfe einer AWS CloudFormation Vorlage für eine bestehende VPC auf der AWS CloudFormation Konsole beschrieben.

Um den Linux Bastion Host zu erstellen
  1. Öffnen Sie die Seite Deploy Quick Start auf der AWS CloudFormation Konsole.

  2. Verwenden Sie die Regionsauswahl in der Navigationsleiste, um dieselbe AWS Region wie Ihre Amazon MWAA-Umgebung auszuwählen.

  3. Wählen Sie Weiter aus.

  4. Geben Sie einen Namen in das Textfeld Stackname ein, z. B. mwaa-linux-bastion

  5. Wählen Sie im Bereich Parameter, Netzwerkkonfiguration die folgenden Optionen aus:

    1. Wählen Sie die VPC-ID Ihrer Amazon MWAA-Umgebung.

    2. Wählen Sie die Public Subnet 1-ID Ihrer Amazon MWAA-Umgebung.

    3. Wählen Sie die Public Subnet 2-ID Ihrer Amazon MWAA-Umgebung.

    4. Geben Sie unter Allowed Bastion External Access CIDR den engstmöglichen Adressbereich (z. B. einen internen CIDR-Bereich) ein.

      Anmerkung

      Die einfachste Methode, einen Bereich zu identifizieren, besteht darin, denselben CIDR-Bereich wie Ihre öffentlichen Subnetze zu verwenden. Die öffentlichen Subnetze in der AWS CloudFormation Vorlage auf der Erstellen Sie das VPC Netzwerk Seite lauten beispielsweise und. 10.192.10.0/24 10.192.11.0/24

  6. Wählen Sie im Amazon EC2 EC2-Konfigurationsbereich Folgendes aus:

    1. Wählen Sie Ihren SSH-Schlüssel in der Dropdownliste unter Name des Schlüsselpaars aus.

    2. Geben Sie einen Namen in das Feld Bastion Host Name ein.

    3. Wählen Sie „true“ für die TCP-Weiterleitung.

      Warnung

      Die TCP-Weiterleitung muss in diesem Schritt auf true gesetzt werden. Andernfalls können Sie im nächsten Schritt keinen SSH-Tunnel erstellen.

  7. Wählen Sie Weiter, Weiter aus.

  8. Wählen Sie die Bestätigung aus und wählen Sie dann Stack erstellen aus.

Weitere Informationen zur Architektur Ihres Linux Bastion Hosts finden Sie unter Linux Bastion Hosts on the AWS Cloud: Architektur.

Schritt zwei: Erstellen Sie den SSH-Tunnel

Die folgenden Schritte beschreiben, wie Sie den SSH-Tunnel zu Ihrer Linux-Bastion erstellen. Ein SSH-Tunnel empfängt die Anfrage von Ihrer lokalen IP-Adresse zur Linux-Bastion, weshalb die TCP-Weiterleitung für die Linux-Bastion in den vorherigen Schritten auf TCP-Forwarding für die Linux-Bastion eingestellt wurde. true

macOS/Linux
Um einen Tunnel über die Befehlszeile zu erstellen
  1. Öffnen Sie die Instance-Seite auf der Amazon EC2 EC2-Konsole.

  2. Wählen einer Instance

  3. Kopieren Sie die Adresse in Public IPv4 DNS. z. B. ec2-4-82-142-1.compute-1.amazonaws.com.

  4. Navigieren Sie in der Befehlszeile zu dem Verzeichnis, in dem Ihr SSH-Schlüssel gespeichert ist.

  5. Führen Sie den folgenden Befehl aus, um mit SSH eine Verbindung zur Bastion-Instanz herzustellen. Ersetzen Sie den Beispielwert durch Ihren SSH-Schlüsselnamen in. mykeypair.pem

    ssh -i mykeypair.pem -N -D 8157 ec2-user@YOUR_PUBLIC_IPV4_DNS
Windows (PuTTY)
Um einen Tunnel mit PuTTY zu erstellen
  1. Öffnen Sie die Instance-Seite auf der Amazon EC2 EC2-Konsole.

  2. Wählen einer Instance

  3. Kopieren Sie die Adresse in Public IPv4 DNS. z. B. ec2-4-82-142-1.compute-1.amazonaws.com.

  4. Öffnen Sie PuTTY und wählen Sie Sitzung.

  5. Geben Sie im Feld Hostname den Hostnamen als ec2-user@ YOUR_PUBLIC_IPV4_DNS und den Port als ein. 22

  6. Erweitern Sie die Registerkarte SSH und wählen Sie Auth aus. Wählen Sie in der Datei mit dem privaten Schlüssel für die Authentifizierung Ihre lokale „ppk“ -Datei aus.

  7. Wählen Sie unter SSH die Registerkarte Tunnel und anschließend die Optionen Dynamisch und Automatisch aus.

  8. Fügen Sie unter Quellport den 8157 Port (oder einen anderen ungenutzten Port) hinzu und lassen Sie das Feld Zielport leer. Wählen Sie Hinzufügen aus.

  9. Wählen Sie die Registerkarte Sitzung und geben Sie einen Sitzungsnamen ein. Zum Beispiel SSH Tunnel.

  10. Wählen Sie Speichern, Öffnen.

    Anmerkung

    Möglicherweise müssen Sie eine Passphrase für Ihren öffentlichen Schlüssel eingeben.

Anmerkung

Wenn Sie eine Permission denied (publickey) Fehlermeldung erhalten, empfehlen wir, das Tool AWSSupport-TroubleshootSSH zu verwenden und Run This Automation (Konsole) auszuwählen, um Fehler bei Ihrer SSH-Einrichtung zu beheben.

Schritt drei: Konfigurieren Sie die Bastion-Sicherheitsgruppe als Regel für eingehenden Datenverkehr

Der Zugriff auf die Server und der reguläre Internetzugang von den Servern aus sind mit einer speziellen Wartungssicherheitsgruppe möglich, die an diese Server angeschlossen ist. In den folgenden Schritten wird beschrieben, wie die Bastion-Sicherheitsgruppe als eingehende Datenverkehrsquelle zur VPC-Sicherheitsgruppe einer Umgebung konfiguriert wird.

  1. Öffnen Sie die Seite Umgebungen auf der Amazon MWAA-Konsole.

  2. Wählen Sie eine Umgebung aus.

  3. Wählen Sie im Bereich Netzwerk die Option VPC-Sicherheitsgruppe aus.

  4. Wählen Sie Edit inbound rules (Regeln für eingehenden Datenverkehr bearbeiten) aus.

  5. Wählen Sie Regel hinzufügen aus.

  6. Wählen Sie Ihre VPC-Sicherheitsgruppen-ID in der Dropdownliste Quelle aus.

  7. Lassen Sie die übrigen Optionen leer oder setzen Sie sie auf ihre Standardwerte.

  8. Wählen Sie Save rules (Regeln speichern) aus.

Vierter Schritt: Kopieren Sie die Apache Airflow-URL

In den folgenden Schritten wird beschrieben, wie Sie die Amazon MWAA-Konsole öffnen und die URL in die Apache Airflow-Benutzeroberfläche kopieren.

  1. Öffnen Sie die Seite Umgebungen auf der Amazon MWAA-Konsole.

  2. Wählen Sie eine Umgebung aus.

  3. Kopieren Sie die URL in die Airflow-Benutzeroberfläche für nachfolgende Schritte.

Fünfter Schritt: Proxyeinstellungen konfigurieren

Wenn Sie einen SSH-Tunnel mit dynamischer Port-Weiterleitung verwenden, müssen Sie ein Add-On für die SOCKS-Proxy-Verwaltung einsetzen, um die Proxy-Einstellungen in Ihrem Browser zu steuern. Sie können beispielsweise die --proxy-server Funktion von Chromium verwenden, um eine Browsersitzung zu starten, oder die FoxyProxy Erweiterung im FireFox Mozilla-Browser verwenden.

Option eins: Richten Sie einen SSH-Tunnel mithilfe der lokalen Portweiterleitung ein

Wenn Sie keinen SOCKS-Proxy verwenden möchten, können Sie einen SSH-Tunnel mithilfe der lokalen Portweiterleitung einrichten. Der folgende Beispielbefehl greift auf die Amazon EC2 ResourceManagerEC2-Weboberfläche zu, indem er den Datenverkehr auf dem lokalen Port 8157 weiterleitet.

  1. Öffnen Sie ein neues Befehlszeilenfenster.

  2. Geben Sie den folgenden Befehl ein, um einen SSH-Tunnel zu öffnen.

    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

    -Lsteht für die Verwendung der lokalen Portweiterleitung, mit der Sie einen lokalen Port angeben können, über den Daten an den identifizierten Remote-Port auf dem lokalen Webserver des Knotens weitergeleitet werden.

  3. Geben Sie http://localhost:8157/ Ihren Browser ein.

    Anmerkung

    Möglicherweise müssen Sie verwendenhttps://localhost:8157/.

Option zwei: Proxys über die Befehlszeile

In den meisten Webbrowsern können Sie Proxys über eine Befehlszeile oder einen Konfigurationsparameter konfigurieren. Mit Chromium können Sie den Browser beispielsweise mit dem folgenden Befehl starten:

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

Dadurch wird eine Browsersitzung gestartet, die den SSH-Tunnel verwendet, den Sie in den vorherigen Schritten erstellt haben, um ihre Anfragen weiterzuleiten. Sie können Ihre private Amazon MWAA-Umgebungs-URL (mit https://) wie folgt öffnen:

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

Option drei: Proxys, die für Mozilla Firefox verwendet werden FoxyProxy

Das folgende Beispiel zeigt eine FoxyProxy Standardkonfiguration (Version 7.5.1) für Mozilla Firefox. FoxyProxy stellt eine Reihe von Tools zur Proxyverwaltung bereit. Damit können Sie einen Proxyserver für URLs verwenden, die Mustern entsprechen, die den von der Apache Airflow-Benutzeroberfläche verwendeten Domänen entsprechen.

  1. Öffnen Sie in Firefox die Seite mit der FoxyProxy Standarderweiterung.

  2. Wählen Sie Zu Firefox hinzufügen.

  3. Wählen Sie Hinzufügen aus.

  4. Wählen Sie das FoxyProxy Symbol in der Werkzeugleiste Ihres Browsers und dann Optionen.

  5. Kopieren Sie den folgenden Code und speichern Sie ihn lokal untermwaa-proxy.json. Ersetzen Sie den Beispielwert in YOUR_HOST_NAME durch Ihre Apache Airflow-URL.

    { "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. Wählen Sie im Bereich „Einstellungen aus FoxyProxy 6.0+ importieren“ die Option „Einstellungen importieren“ und wählen Sie die Datei aus. mwaa-proxy.json

  7. Wählen Sie OK aus.

Schritt 6: Öffnen Sie die Apache Airflow-Benutzeroberfläche

In den folgenden Schritten wird beschrieben, wie Sie Ihre Apache Airflow-Benutzeroberfläche öffnen.

  1. Öffnen Sie die Seite Umgebungen auf der Amazon MWAA-Konsole.

  2. Wählen Sie „Airflow-Benutzeroberfläche öffnen“.

Als nächstes