Compartilhar via


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:

  1. Vá para o ambiente de runtime de integração da instância do gerenciador de orquestração de fluxo de trabalho.

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

    Captura de tela mostrando a janela de configuração do ambiente do Airflow com os requisitos do Airflow realçados.

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

    Captura de tela mostrando a configuração das substituições de configuração do Airflow na configuração do ambiente do Airflow.

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

    Captura de tela mostrando a seção Variáveis de ambiente nas propriedades de runtime de integração do Airflow.

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

  1. 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
    
  2. Armazene variáveis para conexões no Key Vault. Para obter mais informações, confira Armazenar credenciais no Azure Key Vault.

    Captura de tela mostrando a configuração dos segredos no Azure Key Vault.