Freigeben über


Aktivieren von Azure Key Vault für Workflow Orchestration Manager

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Hinweis

Workflow Orchestration Manager wird von Apache Airflow unterstützt.

Apache Airflow bietet verschiedene Back-Ends zum sicheren Speichern vertraulicher Informationen wie Variablen und Verbindungen. Eine dieser Optionen ist Azure Key Vault. In diesem Artikel werden Sie durch den Prozess der Konfiguration von Key Vault als Geheimnis-Back-End für Apache Airflow in einer Workflow Orchestration Manager-Umgebung geführt.

Hinweis

Workflow Orchestration Manager für Azure Data Factory basiert auf der Open-Source-Anwendung Apache Airflow. Die Dokumentation und weitere Tutorials zu Airflow finden Sie in der Dokumentation zu Apache Airflow oder auf den Webseiten der Community.

Voraussetzungen

  • Azure-Abonnement: Wenn Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen, bevor Sie beginnen.
  • Azure Storage-Konto: Wenn Sie kein Speicherkonto haben, finden Sie unter Erstellen eines Azure Storage-Kontos die erforderlichen Schritte zum Erstellen eines solchen Kontos. Stellen Sie sicher, dass das Speicherkonto nur den Zugriff über ausgewählte Netzwerke zulässt.
  • Azure Key Vault: Sie können dieses Tutorial befolgen, um eine neue Key Vault-Instanz zu erstellen, falls Sie noch keine besitzen.
  • Dienstprinzipal: Sie können einen neuen Dienstprinzipal erstellen oder einen vorhandenen Dienstprinzipal verwenden und ihm die Berechtigung für den Zugriff auf Ihre Key Vault-Instanz erteilen. Sie können dem Dienstprinzipalnamen (Service Principal Name, SPN) für Ihre Key Vault-Instanz beispielsweise die Rolle „Key Vault-Mitwirkender“ zuweisen, um dem SPN die Verwaltung zu ermöglichen. Darüber hinaus müssen Sie die Client-ID und den geheimen Clientschlüssel (API-Schlüssel) des Dienstprinzipals abrufen, um sie als Umgebungsvariablen hinzuzufügen, wie weiter unten in diesem Artikel beschrieben.

Berechtigungen

Weisen Sie Ihrem SPN die folgenden Rollen in Ihrer Key Vault-Instanz aus den integrierten Rollen zu.

  • Key Vault-Mitwirkender
  • Benutzer für Key Vault-Geheimnisse

Aktivieren des Key Vault-Back-Ends für eine Workflow Orchestration Manager-Instanz

So aktivieren Sie Key Vault als Geheimnis-Back-End für eine Workflow Orchestration Manager-Instanz

  1. Wechseln Sie zur Integration Runtime-Umgebung der Workflow Orchestration Manager-Instanz.

  2. Installieren Sie während der anfänglichen Einrichtung der Airflow-Umgebung apache-airflow-providers-microsoft-azure unter Airflow-Anforderungen.

    Screenshot: Fenster für die Einrichtung der Airflow-Umgebung mit hervorgehobener Option „Airflow-Anforderungen“

  3. Fügen Sie die folgenden Einstellungen für die Airflow-Konfigurationsüberschreibungen in den Integration Runtime-Eigenschaften hinzu:

    • AIRFLOW__SECRETS__BACKEND: airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend
    • AIRFLOW__SECRETS__BACKEND_KWARGS: {"connections_prefix": "airflow-connections", "variables_prefix": "airflow-variables", "vault_url": **\<your keyvault uri\>**}

    Screenshot: Konfiguration der Einstellung für die Airflow-Konfigurationsüberschreibungen im Airflow-Umgebungssetup

  4. Fügen Sie die folgenden Variablen für die Konfiguration von Umgebungsvariablen in den Integration Runtime-Eigenschaften von Airflow hinzu:

    • AZURE_CLIENT_ID = <Client-ID des SPN>
    • AZURE_TENANT_ID = <Mandanten-ID>
    • AZURE_CLIENT_SECRET = <Geheimer Clientschlüssel des SPN>

    Screenshot: Abschnitt „Umgebungsvariablen“ der Integration Runtime-Eigenschaften von Airflow

  5. Anschließend können Sie Variablen und Verbindungen verwenden, die automatisch in Azure Key Vault gespeichert werden. Die Namen der Verbindungen und Variablen müssen AIRFLOW__SECRETS__BACKEND_KWARGS folgen, wie zuvor definiert. Weitere Informationen finden Sie unter Azure Key Vault als Geheimnis-Back-End.

Beispiel-DAG mit Key Vault als Back-End

  1. Erstellen Sie eine neue Python-Datei vom Typ adf.py mit dem folgenden Inhalt:

    from datetime import datetime, timedelta
    from airflow.operators.python_operator import PythonOperator
    from textwrap import dedent
    from airflow.models import Variable
    from airflow import DAG
    import logging
    
    def retrieve_variable_from_akv():
        variable_value = Variable.get("sample-variable")
        logger = logging.getLogger(__name__)
        logger.info(variable_value)
    
    with DAG(
       "tutorial",
       default_args={
           "depends_on_past": False,
           "email": ["airflow@example.com"],
           "email_on_failure": False,
           "email_on_retry": False,
           "retries": 1,
           "retry_delay": timedelta(minutes=5),
        },
       description="This DAG shows how to use Azure Key Vault to retrieve variables in Apache Airflow DAG",
       schedule_interval=timedelta(days=1),
       start_date=datetime(2021, 1, 1),
       catchup=False,
       tags=["example"],
    ) as dag:
    
        get_variable_task = PythonOperator(
            task_id="get_variable",
            python_callable=retrieve_variable_from_akv,
        )
    
    get_variable_task
    
  2. Speichern Sie Variablen für Verbindungen in Key Vault. Weitere Informationen finden Sie unter Speichern von Anmeldeinformationen in Azure Key Vault.

    Screenshot: Konfiguration von Geheimnissen in Azure Key Vault