Поделиться через


Включение Azure Key Vault для диспетчера оркестрации рабочих процессов

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Примечание.

Диспетчер оркестрации рабочих процессов управляется Apache Airflow.

Apache Airflow предлагает различные серверные части для безопасного хранения конфиденциальных данных, таких как переменные и подключения. Одним из этих вариантов является Azure Key Vault. В этой статье описывается процесс настройки Key Vault в качестве серверной части секрета для Apache Airflow в среде Диспетчера рабочих процессов.

Примечание.

Диспетчер оркестрации рабочих процессов для Фабрика данных Azure использует приложение Apache Airflow с открытым исходным кодом. Документация и дополнительные руководства по Airflow см. на веб-страницах документации Apache Airflow или сообщества.

Необходимые компоненты

  • Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись Azure перед началом работы.
  • служба хранилища Azure учетная запись. Если у вас нет учетной записи хранения, ознакомьтесь с инструкциями по созданию учетной записи служба хранилища Azure. Убедитесь, что получить доступ к учетной записи хранения можно только из выбранных сетей.
  • Azure Key Vault. Вы можете следовать этому руководству, чтобы создать новый экземпляр Key Vault, если у вас его нет.
  • Субъект-служба. Вы можете создать новый субъект-службу или использовать существующий и предоставить ему разрешение на доступ к экземпляру Key Vault. Например, вы можете предоставить роль участника key-vault имени субъекта-службы (SPN) для экземпляра Key Vault, чтобы имя субъекта-службы ему можно было управлять. Кроме того, необходимо получить идентификатор клиента и секрет клиента субъекта-службы (ключ API), чтобы добавить их в качестве переменных среды, как описано далее в этой статье.

Разрешения

Назначьте имя субъекта-службы следующим ролям в экземпляре Key Vault из встроенных ролей:

  • Участник Key Vault
  • Пользователь секретов хранилища ключей

Включение серверной части Key Vault для экземпляра Диспетчера оркестрации рабочих процессов

Чтобы включить Key Vault в качестве серверной части секрета для экземпляра диспетчера оркестрации рабочих процессов, выполните следующие действия.

  1. Перейдите в среду выполнения интеграции диспетчера рабочих процессов.

  2. Установите apache-airflow-providers-microsoft-azure для требований Airflow во время начальной настройки среды Airflow.

    Снимок экрана: окно установки среды Airflow, в котором выделены требования к airflow.

  3. Добавьте следующие параметры для переопределения конфигурации Airflow в свойствах среды выполнения интеграции:

    • 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 переопределяет параметр в настройке среды Airflow.

  4. Добавьте следующие переменные для конфигурации переменных среды в свойствах среды выполнения интеграции Airflow:

    • AZURE_CLIENT_ID = <идентификатор клиента субъекта-службы>
    • AZURE_TENANT_ID = <идентификатор клиента>
    • AZURE_CLIENT_SECRET = <секрет клиента субъекта-службы>

    Снимок экрана: раздел переменных среды для свойств среды выполнения интеграции Airflow.

  5. Затем вы можете использовать переменные и подключения, и они хранятся автоматически в Key Vault. Имена подключений и переменных должны следовать AIRFLOW__SECRETS__BACKEND_KWARGS, как определено ранее. Дополнительные сведения см. в azure Key Vault в качестве секретной внутренней части.

Пример DAG с помощью Key Vault в качестве внутренней части

  1. Создайте новый файл adf.py Python со следующим содержимым:

    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. Сохраните переменные для подключений в Key Vault. Дополнительные сведения см. в разделе "Хранение учетных данных" в Azure Key Vault.

    Снимок экрана: настройка секретов в Azure Key Vault.