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.
Konfiguration einer Apache Airflow-Verbindung mithilfe eines Geheimnisses AWS Secrets Manager
AWS Secrets Manager ist ein unterstütztes alternatives Apache Airflow-Backend in einer Amazon Managed Workflows für Apache Airflow-Umgebung. Diese Anleitung zeigt, wie Sie AWS Secrets Manager Geheimnisse für Apache Airflow-Variablen und eine Apache Airflow-Verbindung auf Amazon Managed Workflows for Apache Airflow sicher speichern können.
Anmerkung
-
Die von Ihnen erstellten Geheimnisse werden Ihnen in Rechnung gestellt. Weitere Informationen zu den Preisen von Secrets Manager finden Sie unter AWS Preise
. -
AWS Systems Manager Parameter Store wird auch als geheimes Backend in Amazon MWAA unterstützt. Weitere Informationen finden Sie in der Dokumentation zum Amazon Provider Package
.
Inhalt
- Schritt eins: Erteilen Sie Amazon MWAA die Erlaubnis, auf geheime Schlüssel von Secrets Manager zuzugreifen
- Schritt zwei: Erstellen Sie das Secrets Manager Manager-Backend als Apache Airflow-Konfigurationsoption
- Schritt drei: Generieren Sie eine Apache Airflow-Verbindungszeichenfolge AWS URI
- Schritt 4: Fügen Sie die Variablen in Secrets Manager hinzu
- Schritt fünf: Fügen Sie die Verbindung in Secrets Manager hinzu
- Beispiel-Code
- Ressourcen
- Als nächstes
Schritt eins: Erteilen Sie Amazon MWAA die Erlaubnis, auf geheime Schlüssel von Secrets Manager zuzugreifen
Die Ausführungsrolle für Ihre MWAA Amazon-Umgebung benötigt Lesezugriff auf den geheimen Schlüssel in AWS Secrets Manager. Die folgende IAM Richtlinie ermöglicht Lese- und Schreibzugriff mithilfe der AWS verwalteten SecretsManagerReadWrite
Um die Richtlinie Ihrer Ausführungsrolle zuzuordnen
-
Öffnen Sie die Seite Umgebungen
auf der MWAA Amazon-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie im Bereich „Berechtigungen“ Ihre Ausführungsrolle aus.
-
Wählen Sie Richtlinien anfügen.
-
Geben Sie
SecretsManagerReadWrite
in das Textfeld Filterrichtlinien ein. -
Wählen Sie Richtlinie anfügen aus.
Wenn Sie keine AWS verwaltete Berechtigungsrichtlinie verwenden möchten, können Sie die Ausführungsrolle Ihrer Umgebung direkt aktualisieren, um eine beliebige Zugriffsebene auf Ihre Secrets Manager Manager-Ressourcen zu ermöglichen. Die folgende Richtlinienanweisung gewährt beispielsweise Lesezugriff auf alle Secrets, die Sie in einer bestimmten AWS Region in Secrets Manager erstellen.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:us-west-2:012345678910:secret:*" }, { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } ] }
Schritt zwei: Erstellen Sie das Secrets Manager Manager-Backend als Apache Airflow-Konfigurationsoption
Im folgenden Abschnitt wird beschrieben, wie Sie eine Apache Airflow-Konfigurationsoption auf der MWAA Amazon-Konsole für das AWS Secrets Manager Backend erstellen. Wenn Sie in eine gleichnamige Konfigurationseinstellung verwenden, hat die Konfigurationairflow.cfg
, die Sie in den folgenden Schritten erstellen, Vorrang und überschreibt die Konfigurationseinstellungen.
-
Öffnen Sie die Seite Umgebungen
auf der MWAA Amazon-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie Edit (Bearbeiten) aus.
-
Wählen Sie Weiter.
-
Wählen Sie im Bereich mit den Airflow-Konfigurationsoptionen die Option Benutzerdefinierte Konfiguration hinzufügen aus. Fügen Sie die folgenden Schlüssel-Wert-Paare hinzu:
-
:secrets.backend
airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
-
:secrets.backend_kwargs
Dadurch wird Apache Airflow so konfiguriert, dass es unter Pfaden nach Verbindungszeichenfolgen und Variablen sucht.{"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}
airflow/connections/*
airflow/variables/*
Sie können ein Suchmuster
verwenden, um die Anzahl der API Aufrufe zu reduzieren, die Amazon MWAA in Ihrem Namen an Secrets Manager tätigt. Wenn Sie kein Suchmuster angeben, sucht Apache Airflow im konfigurierten Backend nach allen Verbindungen und Variablen. Indem Sie ein Muster angeben, schränken Sie die möglichen Pfade ein, nach denen Apache Airflow sucht. Dies senkt Ihre Kosten, wenn Sie Secrets Manager mit Amazon verwendenMWAA. Um ein Suchmuster anzugeben, geben Sie die
variables_lookup_pattern
Parameterconnections_lookup_pattern
und an. Diese Parameter akzeptieren eine RegEx Zeichenfolge als Eingabe. Um beispielsweise nach Geheimnissen zu suchen, die mit beginnentest
, geben Sie Folgendes einsecrets.backend_kwargs
:{ "connections_prefix": "airflow/connections", "connections_lookup_pattern": "^test", "variables_prefix" : "airflow/variables", "variables_lookup_pattern": "^test" }
Anmerkung
Um
connections_lookup_pattern
und verwenden zu könnenvariables_lookup_pattern
, müssen Sieapache-airflow-providers-amazon
Version 7.3.0 oder höher installieren. Weitere Informationen zum Aktualisieren von Anbieterpaketen auf neuere Versionen finden Sie unter. Spezifizierung neuerer Provider-Pakete
-
-
Wählen Sie Save (Speichern) aus.
Schritt drei: Generieren Sie eine Apache Airflow-Verbindungszeichenfolge AWS URI
Um eine Verbindungszeichenfolge zu erstellen, verwenden Sie die Tabulatortaste auf Ihrer Tastatur, um die Schlüssel-Wert-Paare im Connection-Objekt einzuziehen.extra
Objekt zu erstellen. Der folgende Abschnitt führt Sie durch die Schritte zum Generieren einer Apache URI Airflow-Verbindungszeichenfolge
Schritt 4: Fügen Sie die Variablen in Secrets Manager hinzu
Im folgenden Abschnitt wird beschrieben, wie Sie das Geheimnis für eine Variable in Secrets Manager erstellen.
Um das Geheimnis zu erstellen
-
Öffnen Sie die AWS Secrets Manager -Konsole
. -
Wählen Sie Store a new secret (Ein neues Secret speichern).
-
Wählen Sie Andere Art von Geheimnis.
-
Wählen Sie im Bereich Geben Sie die Schlüssel/Wert-Paare an, die in diesem geheimen Schlüssel gespeichert werden sollen, die Option Klartext aus.
-
Fügen Sie den Variablenwert als Klartext im folgenden Format hinzu.
"
YOUR_VARIABLE_VALUE
"Um beispielsweise eine Ganzzahl anzugeben:
14
Um beispielsweise eine Zeichenfolge anzugeben:
"mystring"
-
Wählen Sie für den Verschlüsselungsschlüssel eine AWS KMS Schlüsseloption aus der Dropdownliste aus.
-
Geben Sie in das Textfeld für Geheimer Name einen Namen im folgenden Format ein.
airflow/variables/
YOUR_VARIABLE_NAME
Beispielsweise:
airflow/variables/test-variable
-
Wählen Sie Weiter.
-
Gehen Sie auf der Seite Geheimen Schlüssel konfigurieren im Bereich Geheimer Name und Beschreibung wie folgt vor.
-
Geben Sie unter Geheimer Name einen Namen für Ihr Geheimnis ein.
-
(Optional) Geben Sie unter Beschreibung eine Beschreibung für Ihr Geheimnis ein.
Wählen Sie Weiter.
-
-
Behalten Sie unter Rotation konfigurieren — optional die Standardoptionen bei und wählen Sie Weiter.
-
Wiederholen Sie diese Schritte in Secrets Manager für alle zusätzlichen Variablen, die Sie hinzufügen möchten.
-
Überprüfe auf der Seite „Überprüfen“ deinen geheimen Schlüssel und wähle dann „Speichern“.
Schritt fünf: Fügen Sie die Verbindung in Secrets Manager hinzu
Im folgenden Abschnitt wird beschrieben, wie Sie das Geheimnis für Ihre Verbindungszeichenfolge URI in Secrets Manager erstellen.
Um das Geheimnis zu erstellen
-
Öffnen Sie die AWS Secrets Manager -Konsole
. -
Wählen Sie Store a new secret (Ein neues Secret speichern).
-
Wählen Sie Andere Art von Geheimnis.
-
Wählen Sie im Bereich Geben Sie die Schlüssel/Wert-Paare an, die in diesem geheimen Schlüssel gespeichert werden sollen, die Option Klartext aus.
-
Fügen Sie die URI Verbindungszeichenfolge als Klartext im folgenden Format hinzu.
YOUR_CONNECTION_URI_STRING
Beispielsweise:
mysql://288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com%2Fhome?role_arn=arn%3Aaws%3Aiam%3A%3A001122332255%3Arole%2Fservice-role%2FAmazonMWAA-MyAirflowEnvironment-iAaaaA®ion_name=us-east-1
Warnung
Apache Airflow analysiert jeden der Werte in der Verbindungszeichenfolge. Sie dürfen weder einfache noch doppelte Anführungszeichen verwenden, da die Verbindung sonst als einzelne Zeichenfolge analysiert wird.
-
Wählen Sie für den Verschlüsselungsschlüssel eine AWS KMS Schlüsseloption aus der Dropdownliste aus.
-
Geben Sie in das Textfeld für Geheimer Name einen Namen im folgenden Format ein.
airflow/connections/
YOUR_CONNECTION_NAME
Beispielsweise:
airflow/connections/myconn
-
Wählen Sie Weiter.
-
Gehen Sie auf der Seite Geheimen Schlüssel konfigurieren im Bereich Geheimer Name und Beschreibung wie folgt vor.
-
Geben Sie unter Geheimer Name einen Namen für Ihr Geheimnis ein.
-
(Optional) Geben Sie unter Beschreibung eine Beschreibung für Ihr Geheimnis ein.
Wählen Sie Weiter.
-
-
Behalten Sie unter Rotation konfigurieren — optional die Standardoptionen bei und wählen Sie Weiter.
-
Wiederholen Sie diese Schritte in Secrets Manager für alle zusätzlichen Variablen, die Sie hinzufügen möchten.
-
Überprüfe auf der Seite „Überprüfen“ deinen geheimen Schlüssel und wähle dann „Speichern“.
Beispiel-Code
-
Erfahren Sie auf dieser Seite anhand des Beispielcodes unter, wie Sie den geheimen Schlüssel für die Apache Airflow-Verbindung (
myconn
) verwenden. Verwendung eines geheimen Schlüssels AWS Secrets Manager für eine Apache Airflow-Verbindung -
Erfahren Sie auf dieser Seite anhand des Beispielcodes unter, wie Sie den geheimen Schlüssel für die Apache Airflow-Variable (
test-variable
) verwenden. Verwendung eines geheimen Schlüssels AWS Secrets Manager für eine Apache Airflow-Variable
Ressourcen
-
Weitere Informationen zur Konfiguration von Secrets Manager Manager-Geheimnissen mit der Konsole und dem AWS CLI finden Sie unter Create a Secret im AWS Secrets Manager Benutzerhandbuch.
-
Verwenden Sie ein Python-Skript, um eine große Menge von Apache Airflow-Variablen und -Verbindungen zu Secrets Manager zu migrieren, siehe Move your Apache Airflow connections and variables
to. AWS Secrets Manager
Als nächstes
-
Erfahren Sie unter, wie Sie ein Token für den Zugriff auf die Apache Airflow-Benutzeroberfläche generieren. Zugreifen auf Apache Airflow