

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 Airflow-Verbindung mithilfe eines Geheimnisses AWS Secrets Manager
<a name="connections-secrets-manager"></a>

AWS Secrets Manager ist ein unterstütztes alternatives Apache Airflow-Backend in einer Amazon Managed Workflows für Apache Airflow Airflow-Umgebung. In diesem Thema wird erklärt, 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](https://aws.amazon.com/secrets-manager/pricing/).
[AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store) wird auch als Secrets-Backend in Amazon MWAA unterstützt. Weitere Informationen finden Sie in der [Dokumentation zum Amazon Provider Package](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/secrets-backends/aws-ssm-parameter-store.html).

**Contents**
+ [Schritt eins: Erteilen Sie Amazon MWAA die Erlaubnis, auf geheime Schlüssel von Secrets Manager zuzugreifen](#connections-sm-policy)
+ [Schritt zwei: Erstellen Sie das Secrets Manager Manager-Backend als Apache Airflow Airflow-Konfigurationsoption](#connections-sm-aa-configuration)
+ [Schritt drei: Generieren Sie eine Apache Airflow AWS Airflow-Verbindungs-URI-Zeichenfolge](#connections-sm-aa-uri)
+ [Schritt 4: Fügen Sie die Variablen in Secrets Manager hinzu](#connections-sm-createsecret-variables)
+ [Schritt fünf: Fügen Sie die Verbindung in Secrets Manager hinzu](#connections-sm-createsecret-connection)
+ [Beispiel-Code](#connections-sm-samples)
+ [Ressourcen](#connections-sm-blogs)
+ [Als nächstes](#connections-sm-next-up)

## Schritt eins: Erteilen Sie Amazon MWAA die Erlaubnis, auf geheime Schlüssel von Secrets Manager zuzugreifen
<a name="connections-sm-policy"></a>

Die [Ausführungsrolle](mwaa-create-role.md) für Ihre Amazon MWAA-Umgebung benötigt Lesezugriff auf den geheimen Schlüssel in. AWS Secrets Manager Die folgende IAM-Richtlinie ermöglicht Lese- und Schreibzugriff mithilfe der -managed Policy. AWS[SecretsManagerReadWrite](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/SecretsManagerReadWrite$jsonEditor)

**Um die Richtlinie Ihrer Ausführungsrolle zuzuordnen**

1. Öffnen Sie die Seite [Umgebungen](https://console.aws.amazon.com/mwaa/home#/environments) auf der Amazon MWAA-Konsole.

1. Wählen Sie eine Umgebung aus.

1. Wählen Sie im Bereich „**Berechtigungen**“ Ihre Ausführungsrolle aus.

1. Wählen Sie **Richtlinien anfügen**.

1. Geben Sie `SecretsManagerReadWrite` in das Textfeld **Filterrichtlinien** ein.

1. 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 einem bestimmten AWS-Region Secrets Manager erstellen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*"
        },
        {
            "Effect": "Allow",
            "Action": "secretsmanager:ListSecrets",
            "Resource": "*"
        }
    ]
}
```

------

## Schritt zwei: Erstellen Sie das Secrets Manager Manager-Backend als Apache Airflow Airflow-Konfigurationsoption
<a name="connections-sm-aa-configuration"></a>

Im folgenden Abschnitt wird beschrieben, wie Sie eine Apache Airflow Airflow-Konfigurationsoption auf der Amazon MWAA-Konsole für das Backend erstellen. AWS Secrets Manager Wenn Sie in eine gleichnamige Konfigurationseinstellung verwenden, hat die Konfiguration`airflow.cfg`, die Sie in den folgenden Schritten erstellen, Vorrang und überschreibt die Konfigurationseinstellungen.

1. Öffnen Sie die Seite [Umgebungen](https://console.aws.amazon.com/mwaa/home#/environments) auf der Amazon MWAA-Konsole.

1. Wählen Sie eine Umgebung aus.

1. Wählen Sie **Bearbeiten** aus.

1. Wählen Sie **Weiter** aus.

1. 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:

   1. **`secrets.backend`**: **`airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend`**

   1. **`secrets.backend_kwargs`**: **`{"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}`** Dadurch wird Apache Airflow so konfiguriert, dass es unter `airflow/connections/*` Pfaden und Verbindungszeichenfolgen nach Verbindungszeichenfolgen und Variablen sucht. `airflow/variables/*`

      Sie können ein [Suchmuster](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/secrets-backends/aws-secrets-manager.html#optional-lookup) verwenden, um die Anzahl der API-Aufrufe zu reduzieren, die Amazon MWAA in Ihrem Namen an Secrets Manager durchführt. Wenn Sie kein Suchmuster angeben, sucht Apache Airflow nach allen Verbindungen und Variablen im konfigurierten Backend. Durch die Angabe eines Musters schränken Sie die möglichen Pfade ein, die Apache Airflow durchsucht. Dies senkt Ihre Kosten, wenn Sie Secrets Manager mit Amazon MWAA verwenden.

      Um ein Suchmuster anzugeben, geben Sie die Parameter `connections_lookup_pattern` und `variables_lookup_pattern` an. Diese Parameter akzeptieren eine RegEx Zeichenfolge als Eingabe. Um beispielsweise nach Geheimnissen zu suchen, die mit beginnen`test`, geben Sie Folgendes ein für`secrets.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önnen`variables_lookup_pattern`, müssen Sie `apache-airflow-providers-amazon` Version 7.3.0 oder höher installieren. Weitere Informationen zum Aktualisieren von Anbieterpaketen auf neuere Versionen finden Sie unter. [Datei mit Einschränkungen](connections-packages.md#connections-packages-constraints)

1. Wählen Sie **Speichern**.

## Schritt drei: Generieren Sie eine Apache Airflow AWS Airflow-Verbindungs-URI-Zeichenfolge
<a name="connections-sm-aa-uri"></a>

[Um eine Verbindungszeichenfolge zu erstellen, verwenden Sie die Tabulatortaste auf Ihrer Tastatur, um die Schlüssel-Wert-Paare im Connection-Objekt einzurücken.](https://airflow.apache.org/docs/stable/howto/connection/index.html) Wir empfehlen außerdem, in Ihrer Shell-Sitzung eine Variable für das `extra` Objekt zu erstellen. Der folgende Abschnitt führt Sie durch die Schritte zum [Generieren einer Apache Airflow-Verbindungs-URI-Zeichenfolge](https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#generating-a-connection-uri) für eine Amazon MWAA-Umgebung mithilfe von Apache Airflow oder einem Python-Skript.

------
#### [ Apache Airflow CLI ]

Die folgende Shell-Sitzung verwendet Ihre lokale Airflow-CLI, um eine Verbindungszeichenfolge zu generieren. Wenn Sie die CLI nicht installiert haben, empfehlen wir die Verwendung des Python-Skripts.

1. Öffnen Sie eine Python-Shell-Sitzung:

   ```
   python3
   ```

1. Geben Sie den folgenden Befehl ein:

   ```
   >>> import json
   ```

1. Geben Sie den folgenden Befehl ein:

   ```
   >>> from airflow.models.connection import Connection
   ```

1. Erstellen Sie in Ihrer Shell-Sitzung eine Variable für das `extra` Objekt. Ersetzen Sie die Beispielwerte *YOUR\$1EXECUTION\$1ROLE\$1ARN* durch den ARN der Ausführungsrolle und die Region in *us-east-1* (z. B.`us-east-1`).

   ```
   >>> extra=json.dumps({'role_arn': 'YOUR_EXECUTION_ROLE_ARN', 'region_name': 'us-east-1'})
   ```

1. Erstellen Sie das Verbindungsobjekt. Ersetzen Sie den Beispielwert `myconn` durch den Namen der Apache Airflow Airflow-Verbindung.

   ```
   >>> myconn = Connection(
   ```

1. Verwenden Sie die Tabulatortaste auf Ihrer Tastatur, um jedes der folgenden Schlüssel-Wert-Paare in Ihrem Verbindungsobjekt einzurücken. Ersetzen Sie die Beispielwerte durch. *red*

   1. Geben Sie den AWS Verbindungstyp an:

      ```
      ... conn_id='aws',
      ```

   1. Geben Sie die Apache Airflow Airflow-Datenbankoption an:

      ```
      ... conn_type='mysql',
      ```

   1. Geben Sie die Apache Airflow Airflow-UI-URL auf Amazon MWAA an:

      ```
      ... host='288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com/home',
      ```

   1. Geben Sie die AWS Zugriffsschlüssel-ID (Benutzername) an, um sich bei Amazon MWAA anzumelden:

      ```
      ... login='YOUR_AWS_ACCESS_KEY_ID',
      ```

   1. Geben Sie den AWS geheimen Zugriffsschlüssel (Passwort) an, um sich bei Amazon MWAA anzumelden:

      ```
      ... password='YOUR_AWS_SECRET_ACCESS_KEY',
      ```

   1. Geben Sie die `extra` Shell-Sitzungsvariable an:

      ```
      ... extra=extra
      ```

   1. Schließt das Verbindungsobjekt.

      ```
      ... )
      ```

1. Druckt die Verbindungs-URI-Zeichenfolge aus:

   ```
   >>> myconn.get_uri()
   ```

   Beziehen Sie sich auf die Verbindungs-URI-Zeichenfolge in der Antwort:

   ```
   '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&region_name=us-east-1'
   ```

------
#### [ Python script ]

Das folgende Python-Skript benötigt die Apache Airflow CLI nicht.

1. Kopieren Sie den Inhalt des folgenden Codebeispiels und speichern Sie ihn lokal unter. `mwaa_connection.py`

   ```
   import urllib.parse
   								
   								conn_type = 'YOUR_DB_OPTION'
   								host = 'YOUR_MWAA_AIRFLOW_UI_URL'
   								port = 'YOUR_PORT'
   								login = 'YOUR_AWS_ACCESS_KEY_ID'
   								password = 'YOUR_AWS_SECRET_ACCESS_KEY'
   								role_arn = urllib.parse.quote_plus('YOUR_EXECUTION_ROLE_ARN')
   								region_name = 'us-east-1'
   								
   								conn_string = '{0}://{1}:{2}@{3}:{4}?role_arn={5}&region_name={6}'.format(conn_type, login, password, host, port, role_arn, region_name)
   								print(conn_string)
   ```

1. Ersetzen Sie die Platzhalter durch. *red*

1. Führen Sie das folgende Skript aus, um eine Verbindungszeichenfolge zu generieren.

   ```
   python3 mwaa_connection.py
   ```

------

## Schritt 4: Fügen Sie die Variablen in Secrets Manager hinzu
<a name="connections-sm-createsecret-variables"></a>

Im folgenden Abschnitt wird beschrieben, wie Sie das Geheimnis für eine Variable in Secrets Manager erstellen.

**Um das Geheimnis zu erstellen**

1. Öffnen Sie die [AWS Secrets Manager -Konsole](https://console.aws.amazon.com/secretsmanager/home#/environments).

1. Wählen Sie **Store a new secret** (Ein neues Secret speichern).

1. Wählen Sie **Andere Art von Geheimnis**.

1. Wählen **Sie im Bereich Geben Sie die key/value Paare an, die in diesem geheimen Schlüssel gespeichert werden sollen** die Option **Klartext** aus.

1. 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"
   ```

1. Wählen Sie für den **Verschlüsselungsschlüssel** eine AWS KMS Schlüsseloption aus der Dropdownliste aus.

1. Geben Sie in das Textfeld für **Geheimer Name einen Namen** im folgenden Format ein.

   ```
   airflow/variables/YOUR_VARIABLE_NAME
   ```

   Beispiel:

   ```
   airflow/variables/test-variable
   ```

1. Wählen Sie **Weiter** aus.

1. Gehen Sie auf der Seite **Geheimen Schlüssel konfigurieren** im Bereich **Geheimer Name und Beschreibung** wie folgt vor.

   1. Geben Sie **unter Geheimer Name** einen Namen für Ihr Geheimnis ein.

   1. (Optional) Geben Sie unter **Beschreibung** eine Beschreibung für Ihr Geheimnis ein.

   Wählen Sie **Weiter** aus.

1. Behalten **Sie unter Rotation konfigurieren — optional** die Standardoptionen bei und wählen Sie **Weiter**.

1. Wiederholen Sie diese Schritte in Secrets Manager für alle zusätzlichen Variablen, die Sie hinzufügen möchten.

1. **Ü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
<a name="connections-sm-createsecret-connection"></a>

Im folgenden Abschnitt wird beschrieben, wie Sie das Geheimnis für Ihre Verbindungszeichenfolge-URI in Secrets Manager erstellen.

**Um das Geheimnis zu erstellen**

1. Öffnen Sie die [AWS Secrets Manager -Konsole](https://console.aws.amazon.com/secretsmanager/home#/environments).

1. Wählen Sie **Store a new secret** (Ein neues Secret speichern).

1. Wählen Sie **Andere Art von Geheimnis**.

1. Wählen **Sie im Bereich Geben Sie die key/value Paare an, die in diesem geheimen Schlüssel gespeichert werden sollen** die Option **Klartext** aus.

1. Fügen Sie die Verbindungs-URI-Zeichenfolge als **Klartext** im folgenden Format hinzu.

   ```
   YOUR_CONNECTION_URI_STRING
   ```

   Beispiel:

   ```
   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&region_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.

1. Wählen Sie für den **Verschlüsselungsschlüssel** eine AWS KMS Schlüsseloption aus der Dropdownliste aus.

1. Geben Sie in das Textfeld für **Geheimer Name einen Namen** im folgenden Format ein.

   ```
   airflow/connections/YOUR_CONNECTION_NAME
   ```

   Beispiel:

   ```
   airflow/connections/myconn
   ```

1. Wählen Sie **Weiter** aus.

1. Gehen Sie auf der Seite **Geheimen Schlüssel konfigurieren** im Bereich **Geheimer Name und Beschreibung** wie folgt vor.

   1. Geben Sie **unter Geheimer Name** einen Namen für Ihr Geheimnis ein.

   1. (Optional) Geben Sie unter **Beschreibung** eine Beschreibung für Ihr Geheimnis ein.

   Wählen Sie **Weiter** aus.

1. Behalten **Sie unter Rotation konfigurieren — optional** die Standardoptionen bei und wählen Sie **Weiter**.

1. Wiederholen Sie diese Schritte in Secrets Manager für alle zusätzlichen Variablen, die Sie hinzufügen möchten.

1. **Überprüfe auf der Seite „**Überprüfen“ deinen geheimen Schlüssel und wähle dann „**Speichern**“.

## Beispiel-Code
<a name="connections-sm-samples"></a>
+ Erfahren Sie auf dieser Seite anhand des Beispielcodes unter, wie Sie den geheimen Schlüssel für die Apache Airflow Airflow-Verbindung (`myconn`) verwenden. [Verwendung eines geheimen Schlüssels AWS Secrets Manager für eine Apache Airflow Airflow-Verbindung](samples-secrets-manager.md)
+ Erfahren Sie auf dieser Seite anhand des Beispielcodes unter, wie Sie den geheimen Schlüssel für die Apache Airflow Airflow-Variable (`test-variable`) verwenden. [Verwendung eines geheimen Schlüssels AWS Secrets Manager für eine Apache Airflow Airflow-Variable](samples-secrets-manager-var.md)

## Ressourcen
<a name="connections-sm-blogs"></a>
+ Weitere Informationen zur Konfiguration von Secrets Manager Manager-Geheimnissen mit der Konsole und dem AWS CLI finden Sie unter [Create a Secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) 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](https://aws.amazon.com/blogs/opensource/move-apache-airflow-connections-variables-aws-secrets-manager/) to. AWS Secrets Manager

## Als nächstes
<a name="connections-sm-next-up"></a>
+ Erfahren Sie unter, wie Sie ein Token für den Zugriff auf die Apache Airflow Airflow-Benutzeroberfläche generieren. [Zugreifen auf Apache Airflow](access-airflow-ui.md)