Aktivera Azure Key Vault för Workflow Orchestration Manager
GÄLLER FÖR: Azure Data Factory
Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Kommentar
Workflow Orchestration Manager drivs av Apache Airflow.
Apache Airflow erbjuder olika serverdelar för säker lagring av känslig information, till exempel variabler och anslutningar. Ett av dessa alternativ är Azure Key Vault. Den här artikeln beskriver hur du konfigurerar Key Vault som den hemliga serverdelen för Apache Airflow i en Workflow Orchestration Manager-miljö.
Kommentar
Workflow Orchestration Manager för Azure Data Factory förlitar sig på Apache Airflow-programmet med öppen källkod. Dokumentation och fler självstudier för Airflow finns i Apache Airflow-dokumentationen eller communityns webbsidor.
Förutsättningar
- Azure-prenumeration: Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
- Azure Storage-konto: Om du inte har något lagringskonto kan du läsa Skapa ett Azure Storage-konto för steg för att skapa ett. Kontrollera att lagringskontot endast tillåter åtkomst från valda nätverk.
- Azure Key Vault: Du kan följa den här självstudien för att skapa en ny Key Vault-instans om du inte har någon.
- Tjänstens huvudnamn: Du kan skapa ett nytt huvudnamn för tjänsten eller använda ett befintligt och ge det behörighet att komma åt din Key Vault-instans. Du kan till exempel ge rollen key-vault-contributor till tjänstens huvudnamn (SPN) för din Key Vault-instans så att SPN kan hantera den. Du måste också hämta tjänstens huvudnamns klient-ID och klienthemlighet (API-nyckel) för att lägga till dem som miljövariabler, enligt beskrivningen senare i den här artikeln.
Behörigheter
Tilldela ditt SPN följande roller i din Key Vault-instans från de inbyggda rollerna:
- Key Vault-deltagare
- Nyckelvalvshemlighetsanvändare
Aktivera Key Vault-serverdelen för en Workflow Orchestration Manager-instans
Så här aktiverar du Key Vault som den hemliga serverdelen för din Workflow Orchestration Manager-instans:
Gå till arbetsflödet Orchestration Manager-instansens integrationskörningsmiljö.
Installera apache-airflow-providers-microsoft-azure för airflow-kraven under den första konfigurationen av Airflow-miljön.
Lägg till följande inställningar för åsidosättningar för Airflow-konfigurationen i integreringskörningsegenskaper :
- 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:
Lägg till följande variabler för konfigurationen av miljövariabler i egenskaperna för Airflow Integration Runtime:
- AZURE_CLIENT_ID = <KLIENT-ID för SPN>
- AZURE_TENANT_ID = <Klientorganisations-ID>
- AZURE_CLIENT_SECRET = <SPN:s klienthemlighet>
Sedan kan du använda variabler och anslutningar och de lagras automatiskt i Key Vault. Namnen på anslutningarna och variablerna måste följa
AIRFLOW__SECRETS__BACKEND_KWARGS
, enligt definitionen tidigare. Mer information finns i Azure Key Vault som hemlig serverdel.
Exempel på DAG med Key Vault som serverdel
Skapa den nya Python-filen
adf.py
med följande innehåll: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
Lagra variabler för anslutningar i Key Vault. Mer information finns i Lagra autentiseringsuppgifter i Azure Key Vault.