Udostępnij za pośrednictwem


Włączanie usługi Azure Key Vault dla programu Workflow Orchestration Manager

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Uwaga

Menedżer orkiestracji przepływu pracy jest obsługiwany przez platformę Apache Airflow.

Platforma Apache Airflow oferuje różne zaplecza do bezpiecznego przechowywania poufnych informacji, takich jak zmienne i połączenia. Jedną z tych opcji jest usługa Azure Key Vault. W tym artykule opisano proces konfigurowania usługi Key Vault jako tajnego zaplecza dla systemu Apache Airflow w środowisku menedżera orkiestracji przepływu pracy.

Uwaga

Program Workflow Orchestration Manager dla usługi Azure Data Factory korzysta z aplikacji Apache Airflow typu open source. Aby uzyskać dokumentację i więcej samouczków dotyczących rozwiązania Airflow, zobacz stronę internetową platformy Apache Airflow lub witrynę społeczności.

Wymagania wstępne

  • Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
  • Konto usługi Azure Storage: jeśli nie masz konta magazynu, zobacz Tworzenie konta usługi Azure Storage, aby uzyskać instrukcje tworzenia konta. Upewnij się, że konto magazynu zezwala na dostęp tylko z wybranych sieci.
  • Azure Key Vault: możesz wykonać czynności opisane w tym samouczku, aby utworzyć nowe wystąpienie usługi Key Vault, jeśli go nie masz.
  • Jednostka usługi: możesz utworzyć nową jednostkę usługi lub użyć istniejącej jednostki usługi i udzielić jej uprawnienia dostępu do wystąpienia usługi Key Vault. Można na przykład przyznać rolę współautora magazynu kluczy do głównej nazwy usługi (SPN) dla wystąpienia usługi Key Vault, aby nazwa SPN mogła nim zarządzać. Musisz również uzyskać identyfikator klienta jednostki usługi i klucz tajny klienta (klucz interfejsu API), aby dodać je jako zmienne środowiskowe, zgodnie z opisem w dalszej części tego artykułu.

Uprawnienia

Przypisz nazwę SPN następujące role w wystąpieniu usługi Key Vault z wbudowanych ról:

  • Współautor usługi Key Vault
  • Użytkownik wpisów tajnych usługi Key Vault

Włączanie zaplecza usługi Key Vault dla wystąpienia programu Workflow Orchestration Manager

Aby włączyć usługę Key Vault jako zaplecze wpisu tajnego dla wystąpienia programu Workflow Orchestration Manager:

  1. Przejdź do środowiska Integration Runtime wystąpienia programu Workflow Orchestration Manager.

  2. Zainstaluj platformę apache-airflow-providers-microsoft-azure , aby spełnić wymagania dotyczące przepływu powietrza podczas początkowej konfiguracji środowiska Airflow.

    Zrzut ekranu przedstawiający okno Konfiguracja środowiska Airflow z wyróżnionymi wymaganiami dotyczącymi przepływu powietrza.

  3. Dodaj następujące ustawienia dla przesłonięć konfiguracji rozwiązania Airflow we właściwościach środowiska Integration Runtime:

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

    Zrzut ekranu przedstawiający konfigurację ustawienia konfiguracji przepływu powietrza w konfiguracji środowiska Airflow.

  4. Dodaj następujące zmienne dla konfiguracji zmiennych środowiskowych we właściwościach środowiska Integration Runtime airflow:

    • AZURE_CLIENT_ID = <identyfikator klienta głównej nazwy usługi>
    • AZURE_TENANT_ID = <identyfikator dzierżawy>
    • AZURE_CLIENT_SECRET = <klucz tajny klienta głównej nazwy usługi>

    Zrzut ekranu przedstawiający sekcję Zmienne środowiskowe we właściwościach środowiska Integration Runtime airflow.

  5. Następnie możesz użyć zmiennych i połączeń, a są one przechowywane automatycznie w usłudze Key Vault. Nazwy połączeń i zmiennych muszą być zgodne AIRFLOW__SECRETS__BACKEND_KWARGSz wartością , zgodnie z definicją wcześniej. Aby uzyskać więcej informacji, zobacz Azure Key Vault as secret back end (Usługa Azure Key Vault jako zaplecze wpisów tajnych).

Przykładowa grupa DAG korzystająca z usługi Key Vault jako zaplecza

  1. Utwórz nowy plik adf.py w języku Python z następującą zawartością:

    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. Przechowuj zmienne dla połączeń w usłudze Key Vault. Aby uzyskać więcej informacji, zobacz Przechowywanie poświadczeń w usłudze Azure Key Vault.

    Zrzut ekranu przedstawiający konfigurację wpisów tajnych w usłudze Azure Key Vault.