Compartir a través de


Habilitación de Azure Key Vault para el Administrador de orquestación de flujo de trabajo

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. ¡Obtenga más información sobre cómo iniciar una nueva evaluación gratuita!

Nota:

El Administrador de orquestación de flujo de trabajo cuenta con la tecnología de Apache Airflow.

Apache Airflow ofrece varios back-ends que permiten almacenar información confidencial, como variables y conexiones, de forma segura. Una de estas opciones es Azure Key Vault. En este artículo se explica el proceso de configuración de Key Vault como back-end secreto para Apache Airflow en un entorno de Administrador de orquestación de flujo de trabajo.

Nota:

El administrador de orquestación de flujo de trabajo para Azure Data Factory se basa en la aplicación Apache Airflow de código abierto. Puede encontrar documentación y más tutoriales para Airflow en las páginas de Documentación o la Comunidad de Airflow de Apache.

Requisitos previos

  • Suscripción de Azure: Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
  • Cuenta de almacenamiento de Azure: si no tiene una cuenta de almacenamiento de Azure, consulte Creación de una cuenta de almacenamiento para crear una. Asegúrese de que la cuenta de almacenamiento solo permita el acceso desde las redes seleccionadas.
  • Azure Key Vault: puede seguir este tutorial para crear una nueva instancia de Key Vault si no tiene ninguna.
  • Entidad de servicio: puede crear una nueva entidad de servicio o usar una existente y concederle permiso para acceder a la instancia de Key Vault. Por ejemplo, puede conceder el rol key-vault-contributor al nombre de entidad de seguridad de servicio (SPN) para la instancia de Key Vault para que el SPN pueda administrarlo. También debe obtener el id. de cliente de la entidad de servicio y el secreto de cliente (clave de API) para agregarlos como variables de entorno, como se describe más adelante en este artículo.

Permisos

Asigne al SPN los siguientes roles en la instancia de Key Vault desde los roles integrados:

  • Colaborador de almacén de claves
  • Usuario de secretos de Key Vault

Habilitación del back-end de Key Vault para una instancia de Administrador de orquestación de flujo de trabajo

Para habilitar Key Vault como back-end secreto para la instancia de Administrador de orquestación de flujo de trabajo:

  1. Vaya al entorno de ejecución de integración de la instancia de Administrador de orquestación de flujo de trabajo.

  2. Instale apache-airflow-providers-microsoft-azure para los requisitos de Airflow durante la configuración inicial del entorno de Airflow.

    Captura de pantalla que muestra la ventana de configuración del entorno de Airflow en la que se resaltan los requisitos de Airflow.

  3. Agregue las siguientes opciones para las invalidaciones de configuración de Airflow en las propiedades del entorno de ejecución integrado:

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

    Captura de pantalla que muestra la configuración del ajuste de invalidación de configuración de Airflow en la configuración del entorno de Airflow.

  4. Agregue las siguientes variables para la configuración de Variable de entorno en las propiedades del entorno de ejecución de integración de Airflow:

    • AZURE_CLIENT_ID = <Id. de cliente de SPN>
    • AZURE_TENANT_ID = <Id. de inquilino>
    • AZURE_CLIENT_SECRET = <Secreto de cliente de SPN>

    Captura de pantalla que muestra la sección Variables de entorno de las propiedades de entorno de ejecución de integración de Airflow.

  5. A continuación, puede usar variables y conexiones y se almacenan automáticamente en Key Vault. Los nombres de las conexiones y variables deben seguir AIRFLOW__SECRETS__BACKEND_KWARGS, tal como se definió anteriormente. Para más información, consulte Azure Key Vault como back-end secreto.

Ejemplo de DAG mediante Key Vault como back-end

  1. Cree el nuevo archivo adf.py de Python con el siguiente contenido:

    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. Almacene variables para las conexiones en Key Vault. Para obtener más información, consulte Almacenamiento de credenciales en Azure Key Vault.

    Captura de pantalla que muestra la configuración de secretos en Azure Key Vault.