Partilhar via


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:

  1. Vá para o ambiente de tempo de execução de integração da instância do Workflow Orchestration Manager.

  2. Instale apache-airflow-providers-microsoft-azure para os requisitos de fluxo de ar durante a configuração inicial do ambiente de fluxo de ar.

    Captura de tela que mostra a janela Configuração do ambiente de fluxo de ar destacando os requisitos de fluxo de ar.

  3. 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\>**}

    Captura de tela que mostra a configuração da configuração de substituição de configuração de fluxo de ar na configuração do ambiente de fluxo de ar.

  4. 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>

    Captura de tela que mostra a seção Variáveis de ambiente das propriedades de tempo de execução da integração do Airflow.

  5. 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_KWARGSconforme 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

  1. 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
    
  2. Armazene variáveis para conexões no Cofre da Chave. Para obter mais informações, consulte Armazenar credenciais no Cofre da Chave do Azure.

    Captura de ecrã que mostra a configuração de segredos no Cofre de Chaves do Azure.