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
Wechseln Sie zur Integration Runtime-Umgebung der Workflow Orchestration Manager-Instanz.
Installieren Sie während der anfänglichen Einrichtung der Airflow-Umgebung apache-airflow-providers-microsoft-azure unter Airflow-Anforderungen.
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\>**}
- AIRFLOW__SECRETS__BACKEND:
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>
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
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
Speichern Sie Variablen für Verbindungen in Key Vault. Weitere Informationen finden Sie unter Speichern von Anmeldeinformationen in Azure Key Vault.