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.
Sections
- Privates Netzwerk
- Anwendungsfälle
- Bevor Sie beginnen
- Ziele
- Erster Schritt: Erstellen Sie die Bastion-Instanz
- Schritt zwei: Erstellen Sie den SSH-Tunnel
- Schritt drei: Konfigurieren Sie die Bastion-Sicherheitsgruppe als Regel für eingehenden Datenverkehr
- Vierter Schritt: Kopieren Sie die Apache Airflow-URL
- Fünfter Schritt: Proxyeinstellungen konfigurieren
- Schritt 6: Öffnen Sie die Apache Airflow-Benutzeroberfläche
- Als nächstes
Privates Netzwerk
In diesem Tutorial wird davon ausgegangen, dass Sie den privaten Netzwerkzugriffsmodus für Ihren Apache Airflow-Webserver ausgewählt haben.
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.
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
-
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.
-
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
-
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:
-
Erstellen Sie eine Linux Bastion Host-Instanz mithilfe einer AWS CloudFormation Vorlage für eine bestehende VPC
. -
Autorisieren Sie eingehenden Datenverkehr zur Sicherheitsgruppe der Bastion-Instance mithilfe einer Eingangsregel am Port.
22
-
Autorisieren Sie eingehenden Datenverkehr von der Sicherheitsgruppe einer Amazon MWAA-Umgebung zur Sicherheitsgruppe der Bastion-Instance.
-
Erstellen Sie einen SSH-Tunnel zur Bastion-Instance.
-
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
Um den Linux Bastion Host zu erstellen
-
Öffnen Sie die Seite Deploy Quick Start
auf der AWS CloudFormation Konsole. -
Verwenden Sie die Regionsauswahl in der Navigationsleiste, um dieselbe AWS Region wie Ihre Amazon MWAA-Umgebung auszuwählen.
-
Wählen Sie Weiter aus.
-
Geben Sie einen Namen in das Textfeld Stackname ein, z. B.
mwaa-linux-bastion
-
Wählen Sie im Bereich Parameter, Netzwerkkonfiguration die folgenden Optionen aus:
-
Wählen Sie die VPC-ID Ihrer Amazon MWAA-Umgebung.
-
Wählen Sie die Public Subnet 1-ID Ihrer Amazon MWAA-Umgebung.
-
Wählen Sie die Public Subnet 2-ID Ihrer Amazon MWAA-Umgebung.
-
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
-
-
Wählen Sie im Amazon EC2 EC2-Konfigurationsbereich Folgendes aus:
-
Wählen Sie Ihren SSH-Schlüssel in der Dropdownliste unter Name des Schlüsselpaars aus.
-
Geben Sie einen Namen in das Feld Bastion Host Name ein.
-
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.
-
-
Wählen Sie Weiter, Weiter aus.
-
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
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.
-
Öffnen Sie die Seite Umgebungen
auf der Amazon MWAA-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie im Bereich Netzwerk die Option VPC-Sicherheitsgruppe aus.
-
Wählen Sie Edit inbound rules (Regeln für eingehenden Datenverkehr bearbeiten) aus.
-
Wählen Sie Regel hinzufügen aus.
-
Wählen Sie Ihre VPC-Sicherheitsgruppen-ID in der Dropdownliste Quelle aus.
-
Lassen Sie die übrigen Optionen leer oder setzen Sie sie auf ihre Standardwerte.
-
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.
-
Öffnen Sie die Seite Umgebungen
auf der Amazon MWAA-Konsole. -
Wählen Sie eine Umgebung aus.
-
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.
-
Öffnen Sie ein neues Befehlszeilenfenster.
-
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.rproxy.goskope.com-L
steht 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. -
Geben Sie
http://localhost:8157/
Ihren Browser ein.Anmerkung
Möglicherweise müssen Sie verwenden
https://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.
-
Öffnen Sie in Firefox die Seite mit der FoxyProxy Standarderweiterung
. -
Wählen Sie Zu Firefox hinzufügen.
-
Wählen Sie Hinzufügen aus.
-
Wählen Sie das FoxyProxy Symbol in der Werkzeugleiste Ihres Browsers und dann Optionen.
-
Kopieren Sie den folgenden Code und speichern Sie ihn lokal unter
mwaa-proxy.json
. Ersetzen Sie den Beispielwert inYOUR_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" } -
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
-
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.
-
Öffnen Sie die Seite Umgebungen
auf der Amazon MWAA-Konsole. -
Wählen Sie „Airflow-Benutzeroberfläche öffnen“.
Als nächstes
-
Erfahren Sie in, wie Sie Airflow CLI-Befehle auf einem SSH-Tunnel zu einem Bastion-Host ausführen. Befehlsreferenz für Apache Airflow CLI
-
Erfahren Sie unter, wie Sie DAG-Code in Ihren Amazon S3 S3-Bucket hochladenHinzufügen oder Aktualisieren von DAGs.