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:
Przejdź do środowiska Integration Runtime wystąpienia programu Workflow Orchestration Manager.
Zainstaluj platformę apache-airflow-providers-microsoft-azure , aby spełnić wymagania dotyczące przepływu powietrza podczas początkowej konfiguracji środowiska Airflow.
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\>**}
- AIRFLOW__SECRETS__BACKEND:
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>
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_KWARGS
z 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
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
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.