Habilitar o Azure Key Vault para o gerenciador de orquestração de fluxo de trabalho
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Observação
O gerenciador de orquestração de fluxo de trabalho é desenvolvido com Apache Airflow.
O Apache Airflow oferece vários back-ends para armazenar informações confidenciais, como variáveis e conexões, de maneira segura. Uma dessas opções é o Azure Key Vault. Este artigo explica o processo de configuração do Key Vault como o back-end secreto para o Apache Airflow em um ambiente do gerenciador de orquestração de fluxo de trabalho.
Observação
O gerenciador de orquestração de fluxo de trabalho para Azure Data Factory depende do aplicativo Apache Airflow de código aberto. Para obter documentação e mais tutoriais do Airflow, confira as páginas da Web Documentação ou Comunidade do Apache Airflow.
Pré-requisitos
- Assinatura do Azure: Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
- Conta de Armazenamento do Microsoft Azure: se você não tiver uma conta de armazenamento, veja Criar uma conta de Armazenamento do Azure para obter etapas para criar uma. Verifique se a conta de armazenamento permite acesso somente de redes selecionadas.
- Azure Key Vault: você pode seguir este tutorial para criar uma instância do Key Vault se não tiver um.
- Entidade deserviço: você pode criar uma entidade de serviço ou usar uma existente e conceder a ela permissão para acessar a sua instância do Key Vault. Por exemplo, você pode conceder a função de colaborador do cofre de chaves ao SPN (nome da entidade de serviço) para sua instância do Key Vault para que o SPN possa gerenciá-la. Além disso, você precisará obter a ID do Cliente da entidade de serviço e o Segredo do Cliente (Chave de API) 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 Key Vault das funções internas:
- Colaborador do Key Vault
- Usuário de Segredos do Key Vault
Habilitar o back-end do Key Vault para uma instância do gerenciador de orquestração de fluxo de trabalho
Para habilitar o Key Vault como o back-end secreto para sua instância do gerenciador de orquestração de fluxo de trabalho:
Vá para o ambiente de runtime de integração da instância do gerenciador de orquestração de fluxo de trabalho.
Instale o apache-airflow-providers-microsoft-azure para os requisitos do Airflow durante a configuração inicial do ambiente do Airflow.
Adicione as seguintes configurações para as substituições de configuração do Airflow em propriedades do runtime 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 as Variáveis de ambiente nas propriedades de runtime de 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 Key Vault. Os nomes das conexões e das variáveis precisam seguir
AIRFLOW__SECRETS__BACKEND_KWARGS
, conforme definido anteriormente. Para obter mais informações, confira Azure Key Vault como back-end secreto.
DAG de exemplo usando o Key Vault como back-end
Crie um arquivo do Python
adf.py
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 Key Vault. Para obter mais informações, confira Armazenar credenciais no Azure Key Vault.