Compartilhar via


Tutorial: Conectar-se ao Azure Data Lake Storage

Observação

Este artigo descreve padrões herdados para configurar o acesso ao Azure Data Lake Storage. O Databricks recomenda o uso do Catálogo do Unity. Consulte Criar um metastore do Catálogo do Unity e conectar-se ao armazenamento de objetos de nuvem usando o Catálogo do Unity.

Este tutorial orienta você em todas as etapas necessárias para se conectar do Azure Databricks ao Azure Data Lake Storage usando o OAuth 2.0 com uma entidade de serviço do Microsoft Entra ID.

Requisitos

Conclua estas tarefas antes de iniciar este tutorial:

Etapa 1: crie uma entidade de serviço do Microsoft Entra ID

Para usar entidades de serviço a fim de se conectar ao Azure Data Lake Storage, um usuário administrador deve criar um novo aplicativo do Microsoft Entra ID. Se você já tiver uma entidade de serviço do Microsoft Entra ID disponível, vá para Etapa 2: Criar um segredo do cliente para a entidade de serviço.

Para criar uma entidade de serviço do Microsoft Entra ID, siga estas instruções:

  1. Entre no portal do Azure.

    Observação

    O portal a ser usado é diferente dependendo se o aplicativo do Microsoft Entra ID é executado na nuvem pública do Azure ou em uma nuvem nacional ou soberana. Para obter mais informações, consulte Nuvens nacionais.

  2. Se você tiver acesso a vários locatários, assinaturas ou diretórios, clique no ícone Diretórios + assinaturas (diretório com filtro) no menu superior para alternar para o diretório no qual você quer provisionar a entidade de serviço.

  3. Pesquise e selecione <a ID do Microsoft Entra.

  4. Em Gerenciar, clique em Registros de aplicativo > Novo registro.

  5. Para Nome, insira um nome para o aplicativo.

  6. Na seção Tipos de conta com suporte , selecione Contas somente neste diretório organizacional (locatário único).

  7. Clique em Registrar.

Etapa 2: Criar um segredo do cliente para sua entidade de serviço

  1. Em Gerenciar, clique em Certificados &segredos.

  2. Na guia Segredos do cliente , clique em Novo segredo do cliente.

    Novo segredo do cliente

  3. No painel Adicionar um segredo do cliente , para Descrição, insira uma descrição para o segredo do cliente.

  4. Para Expirar, selecione um período de expiração para o segredo do cliente e clique em Adicionar.

  5. Copie e armazene o Valor do segredo do cliente em um local seguro, pois esse segredo do cliente é a senha do aplicativo.

  6. Na página Visão geral da página do aplicativo, na seção Essentials , copie os seguintes valores:

    • ID do aplicativo (cliente)
    • ID do Diretório (locatário)

Etapa 3: Conceder à entidade de serviço acesso ao Azure Data Lake Storage

Você concede acesso aos recursos de armazenamento atribuindo funções à entidade de serviço. Neste tutorial, você atribuirá o Colaborador de dados do blob de armazenamento à entidade de serviço em sua conta do Azure Data Lake Storage. Você poderá precisar de outras funções dependendo dos requisitos específicos.

  1. No portal do Azure, acesse o serviço contas de armazenamento .
  2. Selecione uma conta de Armazenamento do Azure a ser usada.
  3. Clique em Controle de Acesso (IAM).
  4. Clique em + Adicionare selecione Adicionar atribuição de função no menu suspenso.
  5. Defina o campo Selecionar para o nome do aplicativo do Microsoft Entra ID criado na etapa 1 e defina a Função como Colaborador de dados de blob de armazenamento.
  6. Clique em Salvar.

Etapa 4: adicionar o segredo do cliente ao Azure Key Vault

Você pode armazenar o segredo do cliente da etapa 1 no Azure Key Vault.

  1. No portal do Azure, vá para o serviço Cofre de Chaves.
  2. Selecione um Azure Key Vault para uso.
  3. Nas páginas de configurações do Key Vault, selecione Segredos.
  4. Clique em + Gerar/Importar.
  5. Nas opções carregar, selecione Manual.
  6. Para Nome, insira um nome para o segredo. O nome do segredo precisa ser exclusivo dentro de um Key Vault.
  7. Para Valor, cole o Segredo do Cliente que você armazenou na Etapa 1.
  8. Clique em Criar.

Etapa 5: Configurar sua instância do cofre de chaves do Azure para o Azure Databricks

  1. No Portal do Azure, acesse a instância do cofre de chaves do Azure.

    1. Em Configurações, selecione a guia Configuração do Access .

    2. Defina o Modelo de permissão como Política de acesso do key vault.

      Observação

      A criação de uma função de escopo de segredo com suporte do Azure Key Vault concede as permissões Obter e Listar à ID do aplicativo para o serviço Azure Databricks usando as políticas de acesso do cofre de chaves. O modelo de permissão de controle de acesso baseado em função do Azure não é compatível com o Azure Databricks.

    3. Em Configurações, selecione Rede.

    4. Em Firewalls e redes virtuais, defina Permitir acesso de: para Permitir acesso público a partir de redes virtuais específicas e endereços IP.

      Em Exceção, verifique Permitir que serviços confiáveis da Microsoft ignorem esse firewall.

      Observação

      Você também pode definir Permitir acesso de: para permitir o acesso público de todas as redes.

Etapa 6: Criar o escopo secreto com suporte do Azure Key Vault em seu workspace do Azure Databricks

Para referenciar segredos do cliente armazenados em um Azure Key Vault, crie um escopo de segredos com suporte do Azure Key Vault no Azure Databricks.

  1. Ir para https://<databricks-instance>#secrets/createScope. Essa URL diferencia maiúsculas e minúsculas; o scope em createScope deve estar com letra maiúscula.

    Criar escopo

  2. Insira o nome do escopo de segredos. Os nomes de escopo secreto não diferenciam maiúsculas de minúsculas.

  3. Use o menu suspenso Gerenciar entidade de segurança para especificar se Todos os usuários têm a permissão MANAGE para esse escopo de segredos ou apenas o Criador do escopo de segredos (ou seja, você).

  4. Insira o nome DNS (por exemplo) https://databrickskv.vault.azure.net/e a ID do recurso, por exemplo:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Essas propriedades estão disponíveis na guia *Propriedades de Configurações > de um Azure Key Vault no portal do Azure.

  5. Clique no botão Criar .

Etapa 7: Conectar-se ao Azure Data Lake Storage usando o Python

Agora você pode acessar dados com segurança na conta de armazenamento do Azure usando o OAuth 2.0 com sua entidade de serviço do aplicativo do Microsoft Entra ID para autenticação de um notebook do Azure Databricks.

  1. Navegue até seu workspace do Azure Databricks e crie um novo notebook do Python.

  2. Execute o código python a seguir, com as substituições abaixo, para se conectar ao Azure Data Lake Storage.

    service_credential = dbutils.secrets.get(scope="<scope>",key="<service-credential-key>")
    
    spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth")
    spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
    spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>")
    spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential)
    spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
    

    Substitua

    • <scope> com o nome do escopo do segredo da etapa 5.
    • <service-credential-key> com o nome da chave que contém o segredo do cliente.
    • <storage-account> com o nome da conta de armazenamento do Azure.
    • <application-id> pela ID do aplicativo (cliente) do aplicativo Microsoft Entra ID.
    • <directory-id> pela ID do diretório (locatário) do aplicativo Microsoft Entra ID.

    Agora você conectou com êxito seu workspace do Azure Databricks à sua conta do Azure Data Lake Storage.

Conceder ao workspace do Azure Databricks acesso ao Azure Data Lake Storage

Se você configurar um firewall no Azure Data Lake Storage, deverá definir as configurações de rede para permitir que seu workspace do Azure Databricks se conecte ao Azure Data Lake Storage. Primeiro, verifique se seu workspace do Azure Databricks está implantado em sua própria rede virtual após implantar o Azure Databricks em sua rede virtual do Azure (injeção de VNet). Em seguida, você pode configurar pontos de extremidade privados ou o acesso a partir da sua rede virtual para permitir conexões de sub-redes com a conta do Azure Data Lake Storage.

Se você estiver usando computação sem servidor, como SQL warehouses sem servidor, deverá conceder acesso do plano de computação sem servidor ao Azure Data Lake Storage. Confira Rede de plano de computação sem servidor.

Conceder acesso usando pontos de extremidade privados

Você pode usar pontos de extremidade privados na conta do Azure Data Lake Storage para permitir que seu workspace do Azure Databricks acesse dados com segurança por meio de um link privado.

Para criar um ponto de extremidade privado usando o Portal do Azure, consulte Tutorial: Conectar-se a uma conta de armazenamento usando um ponto de extremidade privado do Azure. Certifique-se de criou o ponto de extremidade privado na mesma rede virtual na qual o workspace do Azure Databricks está implantado.

Conceder acesso de uma rede virtual

Os pontos de extremidade de serviço da Rede Virtual permitem que você restrinja o acesso aos seus recursos críticos de serviço do Azure exclusivamente às suas redes virtuais. Você pode habilitar um ponto de extremidade de serviço para o Armazenamento do Azure na VNet que você usou para o workspace do Azure Databricks.

Para obter mais informações, incluindo as instruções da CLI do Azure e do PowerShell, consulte Conceder acesso de uma rede virtual.

  1. Faça logon no Portal do Azure, como um usuário com a função Colaborador da Conta de Armazenamento em sua conta do Azure Data Lake Storage.
  2. Navegue até sua conta de Armazenamento do Azure e acesse a guia Rede .
  3. Verifique se você selecionou para permitir o acesso de redes virtuais selecionadas e endereços IP.
  4. Em redes virtuais, selecione Adicionar rede virtual existente.
  5. No painel lateral, em Assinatura, selecione a assinatura na qual sua rede virtual está.
  6. Em redes virtuais, selecione a rede virtual na qual o workspace do Azure Databricks está implantado.
  7. Em Sub-redes, selecione Selecionar tudo.
  8. Clique em Habilitar.
  9. Selecione Salvar para aplicar suas alterações.

Solução de problemas

Erro: IllegalArgumentException: o segredo não existe com escopo: KeyVaultScope e chave

Esse erro provavelmente significa que:

  • O escopo com suporte do Databricks referenciado no código não é válido.

Examine o nome do segredo da etapa 4 neste artigo.

Erro: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_STATE: o Databricks não pôde acessar o keyvault

Esse erro provavelmente significa que:

  • O escopo com suporte do Databricks que é referenciado no código não é válido. ou o segredo armazenado no Key Vault expirou.

Examine a etapa 3 para garantir que o segredo do Azure Key Vault é válido. Examine o nome do segredo da etapa 4 neste artigo.

Erro: ADAuthenticator$HttpException: Erro HTTP 401: falha no token para obter o token da resposta do AzureAD

Esse erro provavelmente significa que:

  • A chave secreta do cliente da entidade de serviço expirou.

Crie um novo segredo do cliente após a etapa 2 deste artigo e atualize o segredo no Azure Key Vault.

Recursos