Delen via


Azure Key Vault inschakelen voor Werkstroomindelingsbeheer

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Notitie

Workflow Orchestration Manager wordt mogelijk gemaakt door Apache Airflow.

Apache Airflow biedt verschillende back-ends voor het veilig opslaan van gevoelige informatie, zoals variabelen en verbindingen. Een van deze opties is Azure Key Vault. In dit artikel wordt u begeleid bij het configureren van Key Vault als de geheime back-end voor Apache Airflow in een werkstroomindelingsbeheeromgeving.

Notitie

Werkstroomindelingsbeheer voor Azure Data Factory is afhankelijk van de opensource Apache Airflow-toepassing. Zie de Apache Airflow-documentatie of communitywebpagina's voor documentatie en meer zelfstudies voor Airflow.

Vereisten

  • Azure-abonnement: Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint.
  • Azure Storage-account: Als u geen opslagaccount hebt, raadpleegt u Een Azure Storage-account maken voor stappen om er een te maken. Zorg ervoor dat het opslagaccount alleen toegang toestaat vanuit geselecteerde netwerken.
  • Azure Key Vault: U kunt deze zelfstudie volgen om een nieuw Key Vault-exemplaar te maken als u er geen hebt.
  • Service-principal: U kunt een nieuwe service-principal maken of een bestaande service-principal gebruiken en deze toestemming geven voor toegang tot uw Key Vault-exemplaar. U kunt bijvoorbeeld de rol key-vault-inzender verlenen aan de naam van de service-principal (SPN) voor uw Key Vault-exemplaar, zodat de SPN deze kan beheren. U moet ook de client-id en het clientgeheim (API-sleutel) van de service-principal ophalen om ze toe te voegen als omgevingsvariabelen, zoals verderop in dit artikel wordt beschreven.

Machtigingen

Wijs uw SPN de volgende rollen toe aan uw Key Vault-exemplaar vanuit de ingebouwde rollen:

  • Key Vault-inzender
  • Key Vault-geheimengebruiker

De Key Vault-back-end inschakelen voor een werkstroomindelingsbeheerexemplaar

Key Vault inschakelen als de geheime back-end voor uw werkstroomindelingsbeheerexemplaar:

  1. Ga naar de integration runtime-omgeving van het werkstroomindelingsbeheerexemplaar.

  2. Installeer apache-airflow-providers-microsoft-azure voor de Airflow-vereisten tijdens de eerste installatie van de Airflow-omgeving.

    Schermopname van het venster Airflow Environment Setup waarin de vereisten voor airflow worden gemarkeerd.

  3. Voeg de volgende instellingen toe voor de onderdrukkingen van de Airflow-configuratie in de eigenschappen van integration runtime:

    • 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\>**}

    Schermopname van de configuratie van de instelling voor het overschrijven van de Airflow-configuratie in de installatie van de Airflow-omgeving.

  4. Voeg de volgende variabelen toe voor de configuratie van omgevingsvariabelen in de eigenschappen van de Airflow Integration Runtime:

    • AZURE_CLIENT_ID = <Client-id van SPN>
    • AZURE_TENANT_ID = <Tenant-id>
    • AZURE_CLIENT_SECRET = <Clientgeheim van SPN>

    Schermopname van de sectie Omgevingsvariabelen van de eigenschappen van de Airflow Integration Runtime.

  5. Vervolgens kunt u variabelen en verbindingen gebruiken en ze worden automatisch opgeslagen in Key Vault. De namen van de verbindingen en variabelen moeten worden gevolgd AIRFLOW__SECRETS__BACKEND_KWARGS, zoals eerder is gedefinieerd. Zie Azure Key Vault als geheime back-end voor meer informatie.

Voorbeeld van DAG met Key Vault als back-end

  1. Maak het nieuwe Python-bestand adf.py met de volgende inhoud:

    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. Sla variabelen op voor verbindingen in Key Vault. Zie Referenties opslaan in Azure Key Vault voor meer informatie.

    Schermopname van de configuratie van geheimen in Azure Key Vault.