Condividi tramite


Abilitare Azure Key Vault per Workflow Orchestration Manager

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Nota

Il gestore dell'orchestrazione del flusso di lavoro dispone di tecnologia Apache Airflow.

Apache Airflow offre diversi back-end per l'archiviazione sicura di informazioni riservate, ad esempio variabili e connessioni. Una di queste opzioni è Azure Key Vault. Questo articolo illustra il processo di configurazione di Key Vault come back-end segreto per Apache Airflow all'interno di un ambiente di Workflow Orchestration Manager.

Nota

Workflow Orchestration Manager per Azure Data Factory si basa sull'applicazione Apache Airflow open source. Per la documentazione e altre esercitazioni su Airflow, vedere la documentazione di Apache Airflow o le pagine Web della community.

Prerequisiti

  • Sottoscrizione di Azure: se non si dispone di una sottoscrizione di Azure, prima di iniziare, creare un account Azure gratuito.
  • Archiviazione di Azure account: se non si ha un account di archiviazione, vedere Creare un account Archiviazione di Azure per la procedura per crearne uno. Assicurarsi che l'account di archiviazione consenta l'accesso solo da reti selezionate.
  • Azure Key Vault: è possibile seguire questa esercitazione per creare una nuova istanza di Key Vault se non ne se ne ha una a disposizione.
  • Entità servizio: è possibile creare una nuova entità servizio o usarne una esistente e concederle l'autorizzazione per accedere all'istanza di Key Vault. Ad esempio, è possibile concedere il ruolo collaboratore di Key Vault al nome dell'entità servizio (SPN) per la propria istanza Key Vault in modo che il nome SPN possa gestirla. È inoltre necessario ottenere l'ID client e il segreto client (chiave API) dell'entità servizio per aggiungerli come variabili di ambiente, come descritto più avanti in questo articolo.

Autorizzazioni

Assegnare il nome SPN ai seguenti ruoli predefiniti nell'istanza Key Vault:

  • Collaboratore di Key Vault
  • Utente dei segreti di Key Vault

Abilitare il back-end di Key Vault per un'istanza di Workflow Orchestration Manager

Per abilitare Key Vault come back-end segreto per l'istanza di Workflow Orchestration Manager:

  1. Passare all'ambiente del runtime di integrazione dell'istanza di Workflow Orchestration Manager.

  2. Installare apache-airflow-providers-microsoft-azure per i requisiti di Airflow durante la configurazione iniziale dell'ambiente Airflow.

    Screenshot che mostra la finestra di configurazione dell'ambiente Airflow con i requisiti di Airflow in evidenza.

  3. Aggiungere le impostazioni seguenti per le sostituzioni della configurazione airflow nelle proprietà del runtime di integrazione:

    • 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 che mostra la come impostare le sostituzioni Airflow nella configurazione dell'ambiente Airflow.

  4. Aggiungere le variabili seguenti per la configurazione delle variabili di ambiente nelle proprietà del runtime di integrazione Airflow:

    • AZURE_CLIENT_ID = <ID client dell'SPN>
    • AZURE_TENANT_ID = <Id Tenant>
    • AZURE_CLIENT_SECRET = <Segreto client dell'SPN>

    Screenshot che mostra la sezione Variabili di ambiente delle proprietà del runtime di integrazione Airflow.

  5. È quindi possibile usare variabili e connessioni che vengono archiviate automaticamente in Key Vault. I nomi delle connessioni e delle variabili devono seguire AIRFLOW__SECRETS__BACKEND_KWARGS, come definito in precedenza. Per altre informazioni, vedere Azure Key Vault come back-end segreto.

DAG di esempio che usa Key Vault come back-end

  1. Creare un nuovo file Python adf.py con il contenuto seguente:

    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. Archiviare le variabili per le connessioni in Key Vault. Per altre informazioni, vedere Memorizzare credenziali in Azure Key Vault.

    Screenshot che mostra la configurazione dei segreti in Azure Key Vault.