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 :
Accédez à Environnement du runtime d’intégration de l’instance de gestionnaire du flux de travail.
Installez apache-airflow-providers-microsoft-azure pour les Exigences Airflow lors de la configuration initiale de votre environnement Airflow.
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\>**}
- AIRFLOW__SECRETS__BACKEND:
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>
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
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
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).