Habilitar o Azure Key Vault para o Workflow Orchestration Manager
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Nota
O Workflow Orchestration Manager é alimentado pelo Apache Airflow.
O Apache Airflow oferece vários back-ends para armazenar com segurança informações confidenciais, como variáveis e conexões. Uma dessas opções é o Azure Key Vault. Este artigo orienta você pelo processo de configuração do Key Vault como o back-end secreto do Apache Airflow em um ambiente do Workflow Orchestration Manager.
Nota
O Workflow Orchestration Manager para Azure Data Factory depende do aplicativo Apache Airflow de código aberto. Para obter documentação e mais tutoriais sobre o fluxo de ar, consulte as páginas da Web Documentação do Apache Airflow ou da Comunidade.
Pré-requisitos
- Assinatura do Azure: se você não tiver uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
- Conta de Armazenamento do Azure: se você não tiver uma conta de armazenamento, consulte Criar uma conta de Armazenamento do Azure para conhecer as etapas para criar uma. Certifique-se de que a conta de armazenamento permite o acesso apenas a partir de redes selecionadas.
- Azure Key Vault: você pode seguir este tutorial para criar uma nova instância do Key Vault se não tiver uma.
- Entidade de serviço: você pode criar uma nova entidade de serviço ou usar uma existente e conceder-lhe permissão para acessar sua instância do Cofre da Chave. Por exemplo, você pode conceder a função key-vault-contributor ao SPN (nome da entidade de serviço) para sua instância do Cofre da Chave para que o SPN possa gerenciá-la. Você também precisa obter a ID do Cliente e o Segredo do Cliente (Chave de API) da entidade de serviço para adicioná-los como variáveis de ambiente, conforme descrito mais adiante neste artigo.
Permissões
Atribua ao SPN as seguintes funções na instância do Cofre da Chave a partir das funções internas:
- Contribuidor do Key Vault
- Usuário do Key Vault Secrets
Habilite o back-end do Cofre da Chave para uma instância do Workflow Orchestration Manager
Para habilitar o Key Vault como o back-end secreto para sua instância do Workflow Orchestration Manager:
Vá para o ambiente de tempo de execução de integração da instância do Workflow Orchestration Manager.
Instale apache-airflow-providers-microsoft-azure para os requisitos de fluxo de ar durante a configuração inicial do ambiente de fluxo de ar.
Adicione as seguintes configurações para as substituições de configuração de fluxo de ar nas propriedades de tempo de execução de integração:
- 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:
Adicione as seguintes variáveis para a configuração de variáveis de ambiente nas propriedades de tempo de execução da integração do Airflow:
- AZURE_CLIENT_ID = <ID do Cliente do SPN>
- AZURE_TENANT_ID = <ID do locatário>
- AZURE_CLIENT_SECRET = <Segredo do Cliente do SPN>
Em seguida, você pode usar variáveis e conexões e elas são armazenadas automaticamente no Cofre de Chaves. Os nomes das conexões e variáveis precisam seguir,
AIRFLOW__SECRETS__BACKEND_KWARGS
conforme definido anteriormente. Para obter mais informações, consulte Azure Key Vault como back-end secreto.
Exemplo de DAG usando o Key Vault como back-end
Crie o novo arquivo
adf.py
Python com o seguinte conteúdo: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
Armazene variáveis para conexões no Cofre da Chave. Para obter mais informações, consulte Armazenar credenciais no Cofre da Chave do Azure.