Partager via


Activer Azure Key Vault pour le gestionnaire du flux de travail

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Remarque

Le gestionnaire du flux de travail est propulsé par Apache Airflow.

Apache Airflow offre différents back ends pour stocker en toute sécurité des informations sensibles comme les variables et les connexions. L’une de ces options est Azure Key Vault. Cet article vous guide tout au long du processus de configuration de Key Vault en tant que back end secret pour Apache Airflow dans un environnement de gestionnaire du flux de travail.

Remarque

Le gestionnaire du flux de travail pour Azure Data Factory s’appuie sur l’application open source Apache Airflow. Pour obtenir de la documentation et d’autres didacticiels sur Airflow, consultez les pages web Documentation ou Communauté d’Apache Airflow.

Prérequis

  • Abonnement Azure : Si vous n’avez pas d’abonnement Azure, créez un compte Azure gratuit avant de commencer.
  • Compte de stockage Azure : si vous n’avez pas de compte de stockage, consultez Créer un compte de stockage Azure qui détaille les étapes pour en créer un. Vérifiez que le compte de stockage autorise l’accès provenant des réseaux sélectionnés uniquement.
  • Azure Key Vault : vous pouvez suivre ce didacticiel pour créer un nouvel Azure Key Vault si vous n’en avez pas.
  • Principal de service : vous pouvez créer un nouveau principal de service ou utiliser un principal de service existant et lui octroyer l’autorisation d’accéder à votre instance Key Vault. Par exemple, vous pouvez octroyer le rôle key-vault-contributor au nom du principal de service (Service Principal Name/SPN) de votre instance Key Vault afin que le SPN puisse la gérer. En outre, vous devez obtenir l’ID client du principal de service et la Clé secrète client (clé API) pour les ajouter en tant que variables d’environnement, comme décrit plus loin dans cet article.

Autorisations

Attribuez à votre SPN les rôles suivants dans votre instance Key Vault depuis les rôles intégrés :

  • Contributeur Key Vault
  • Utilisateur des secrets Key Vault

Activer le back end Key Vault pour une instance de gestionnaire du flux de travail

Pour activer Key Vault en tant que back end secret pour votre instance de gestionnaire du flux de travail :

  1. Accédez à Environnement du runtime d’intégration de l’instance de gestionnaire du flux de travail.

  2. Installez apache-airflow-providers-microsoft-azure pour les Exigences Airflow lors de la configuration initiale de votre environnement Airflow.

    Capture d’écran qui montre la fenêtre de configuration de l’environnement Airflow, mettant en évidence les exigences Airflow.

  3. Ajoutez les paramètres suivants pour les Paramètres de remplacement de la configuration Airflow dans les propriétés du runtime d'intégration :

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

    Capture d’écran qui montre la configuration des paramètres de remplacement de la configuration Airflow dans la configuration de l’environnement Airflow.

  4. Ajoutez les variables suivantes pour la configuration des Variables d’environnement dans les propriétés du runtime d’intégration Airflow :

    • AZURE_CLIENT_ID = <ID client du SPN>
    • AZURE_TENANT_ID = <ID du tenant>
    • AZURE_CLIENT_SECRET = <Clé secrète client du SPN>

    Capture d’écran qui montre la section Variables d’environnement des propriétés du runtime d’intégration Airflow.

  5. Vous pouvez ensuite utiliser les variables et les connexions, et elles sont stockées automatiquement dans Key Vault. Les noms des connexions et des variables doivent suivre AIRFLOW__SECRETS__BACKEND_KWARGS, comme défini précédemment. Pour plus d’informations, consultez Azure Key Vault comme back end secret.

Exemple de DAG utilisant Key Vault comme back end

  1. Créez le fichier Python adf.py avec le contenu suivant :

    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. Stocker les variables pour les connexions dans Key Vault. Pour plus d’informations, consultez Store credential in Azure Key Vault (Stocker les informations d’identification dans Azure Key Vault).

    Capture d’écran qui montre la configuration des secrets dans Azure Key Vault.