Dela via


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:

  1. Gå till arbetsflödet Orchestration Manager-instansens integrationskörningsmiljö.

  2. Installera apache-airflow-providers-microsoft-azure för airflow-kraven under den första konfigurationen av Airflow-miljön.

    Skärmbild som visar fönstret Installation av luftflödesmiljö som markerar kraven för luftflöde.

  3. 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\>**}

    Skärmbild som visar konfigurationen av inställningen för Airflow-konfigurationen åsidosätter i konfigurationen av Airflow-miljön.

  4. 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>

    Skärmbild som visar avsnittet Miljövariabler i egenskaperna för Airflow Integration Runtime.

  5. 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

  1. 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
    
  2. Lagra variabler för anslutningar i Key Vault. Mer information finns i Lagra autentiseringsuppgifter i Azure Key Vault.

    Skärmbild som visar konfigurationen av hemligheter i Azure Key Vault.