Criar uma credencial de armazenamento para se conectar ao Azure Data Lake Storage Gen2

Este artigo descreve como criar uma credencial de armazenamento no Unity Catalog para se conectar ao Azure Data Lake Storage Gen2.

Para gerenciar o acesso ao armazenamento em nuvem subjacente que contém tabelas e volumes, o Unity Catalog usa os seguintes tipos de objeto:

  • As credenciais de armazenamento encapsulam uma credencial de nuvem de longo prazo que fornece acesso ao armazenamento em nuvem.
  • Os locais externos contêm uma referência a uma credencial de armazenamento e um caminho de armazenamento em nuvem.

Para obter mais informações, consulte Conectar-se ao armazenamento de objetos na nuvem usando o Unity Catalog.

O Unity Catalog oferece suporte a duas opções de armazenamento em nuvem para o Azure Databricks: contêineres do Azure Data Lake Storage Gen2 e buckets do Cloudflare R2. O Cloudflare R2 destina-se principalmente a casos de uso do Delta Sharing nos quais você deseja evitar taxas de saída de dados. O Azure Data Lake Storage Gen2 é apropriado para a maioria dos outros casos de uso. Este artigo se concentra na criação de credenciais de armazenamento para contêineres do Azure Data Lake Storage Gen2. Para o Cloudflare R2, consulte Criar uma credencial de armazenamento para se conectar ao Cloudflare R2.

Para criar uma credencial de armazenamento para acesso a um contêiner do Azure Data Lake Storage Gen2, crie um conector de acesso do Azure Databricks que faça referência a uma identidade gerenciada do Azure, atribuindo-lhe permissões no contêiner de armazenamento. Em seguida, você faz referência a esse conector de acesso na definição de credencial de armazenamento.

Requisitos

No Azure Databricks:

  • Espaço de trabalho do Azure Databricks habilitado para o Catálogo Unity.

  • CREATE STORAGE CREDENTIAL no metastore do Unity Catalog anexado ao espaço de trabalho. Os administradores de conta e os administradores de metastore têm esse privilégio por padrão.

    Nota

    As entidades de serviço devem ter a função de administrador da conta para criar uma credencial de armazenamento que use uma identidade gerenciada. Não é possível delegar CREATE STORAGE CREDENTIAL a uma entidade de serviço. Isso se aplica às entidades de serviço do Azure Databricks e às entidades de serviço do Microsoft Entra ID (anteriormente Azure Ative Directory).

No seu inquilino do Azure:

  • Um contêiner de armazenamento do Azure Data Lake Storage Gen2 na mesma região do espaço de trabalho do qual você deseja acessar os dados.

    A conta de armazenamento do Azure Data Lake Storage Gen2 deve ter um namespace hierárquico.

  • Colaborador ou Proprietário de um grupo de recursos do Azure.

  • Proprietário ou um usuário com a função RBAC do Azure Administrador de Acesso de Usuário na conta de armazenamento.

Criar uma credencial de armazenamento usando uma identidade gerenciada

Você pode usar uma identidade gerenciada do Azure ou uma entidade de serviço como a identidade que autoriza o acesso ao seu contêiner de armazenamento. Identidades gerenciadas são altamente recomendadas. Eles têm o benefício de permitir que o Unity Catalog acesse contas de armazenamento protegidas por regras de rede, o que não é possível usando entidades de serviço, e eliminam a necessidade de gerenciar e girar segredos. Se você quiser usar uma entidade de serviço, consulte Criar armazenamento gerenciado do Unity Catalog usando uma entidade de serviço (legado).

  1. No portal do Azure, crie um conector de acesso do Azure Databricks e atribua-lhe permissões no contêiner de armazenamento que você gostaria de acessar, usando as instruções em Configurar uma identidade gerenciada para o Catálogo Unity.

    Um conector de acesso do Azure Databricks é um recurso primário do Azure que permite conectar identidades gerenciadas a uma conta do Azure Databricks. Você deve ter a função de Colaborador ou superior no recurso de conector de acesso no Azure para adicionar a credencial de armazenamento.

    Anote o ID de recurso do conector de acesso.

  2. Faça logon no seu espaço de trabalho do Azure Databricks habilitado para Catálogo Unity como um usuário que tem o CREATE STORAGE CREDENTIAL privilégio.

    As funções de administrador de metastore e administrador de conta incluem esse privilégio. Se você estiver conectado como uma entidade de serviço (seja uma ID do Microsoft Entra ou uma entidade de serviço nativa do Azure Databricks), deverá ter a função de administrador da conta para criar uma credencial de armazenamento que use uma identidade gerenciada.

  3. Clique em Ícone do catálogo Catálogo.

  4. Na parte superior do painel Catálogo, clique no Ícone Adicionar ou mais ícone Adicionar e selecione Adicionar uma credencial de armazenamento no menu.

    Essa opção não aparecerá se você não tiver o CREATE STORAGE CREDENTIAL privilégio.

    Como alternativa, na página Acesso rápido, clique no botão Dados > externos, vá para a guia Credenciais de armazenamento e selecione Criar credencial.

  5. Selecione um tipo de credencial do Azure Managed Identity.

  6. Insira um nome para a credencial e insira o ID de recurso do conector de acesso no formato:

    /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  7. (Opcional) Se você criou o conector de acesso usando uma identidade gerenciada atribuída pelo usuário, insira a ID do recurso da identidade gerenciada no campo ID de identidade gerenciada atribuída pelo usuário, no formato:

    /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
    
  8. (Opcional) Se desejar que os usuários tenham acesso somente leitura aos locais externos que usam essa credencial de armazenamento, selecione Somente leitura. Para obter mais informações, consulte Marcar uma credencial de armazenamento como somente leitura.

  9. Clique em Guardar.

  10. (Opcional) Associe a credencial de armazenamento a espaços de trabalho específicos.

    Por padrão, qualquer usuário privilegiado pode usar a credencial de armazenamento em qualquer espaço de trabalho anexado ao metastore. Se você quiser permitir o acesso apenas de espaços de trabalho específicos, vá para a guia Espaços de trabalho e atribua espaços de trabalho. Consulte (Opcional) Atribuir uma credencial de armazenamento a espaços de trabalho específicos.

  11. Crie um local externo que faça referência a essa credencial de armazenamento.

(Opcional) Atribuir uma credencial de armazenamento a espaços de trabalho específicos

Importante

Esta funcionalidade está em Pré-visualização Pública.

Por padrão, uma credencial de armazenamento é acessível a partir de todos os espaços de trabalho no metastore. Isso significa que, se um usuário tiver recebido um privilégio (como CREATE EXTERNAL LOCATION) nessa credencial de armazenamento, ele poderá exercer esse privilégio de qualquer espaço de trabalho anexado ao metastore. Se você usar espaços de trabalho para isolar o acesso aos dados do usuário, convém permitir o acesso a uma credencial de armazenamento somente de espaços de trabalho específicos. Esse recurso é conhecido como vinculação de espaço de trabalho ou isolamento de credenciais de armazenamento.

Um caso de uso típico para vincular uma credencial de armazenamento a espaços de trabalho específicos é o cenário no qual um administrador de nuvem configura uma credencial de armazenamento usando uma credencial de conta de nuvem de produção e você deseja garantir que os usuários do Azure Databricks usem essa credencial para criar locais externos somente no espaço de trabalho de produção.

Para obter mais informações sobre a associação de espaços de trabalho, consulte (Opcional) Atribuir um local externo a espaços de trabalho específicos e Limitar o acesso do catálogo a espaços de trabalho específicos.

Nota

As associações de espaço de trabalho são referenciadas quando privilégios em relação a credenciais de armazenamento são exercidos. Por exemplo, se um usuário criar um local externo usando uma credencial de armazenamento, a associação do espaço de trabalho na credencial de armazenamento será verificada somente quando o local externo for criado. Depois que o local externo for criado, ele funcionará independentemente das associações de espaço de trabalho configuradas na credencial de armazenamento.

Vincular uma credencial de armazenamento a um ou mais espaços de trabalho

Para atribuir uma credencial de armazenamento a espaços de trabalho específicos, você pode usar o Gerenciador de Catálogos ou a CLI do Databricks.

Permissões necessárias: administrador da Metastore ou proprietário da credencial de armazenamento.

Nota

Os administradores de metastore podem ver todas as credenciais de armazenamento em um metastore usando o Catalog Explorer, e os proprietários de credenciais de armazenamento podem ver todas as credenciais de armazenamento que possuem em um metastore, independentemente de a credencial de armazenamento estar atribuída ao espaço de trabalho atual. As credenciais de armazenamento que não são atribuídas ao espaço de trabalho aparecem acinzentadas.

Explorador de Catálogos

  1. Faça login em um espaço de trabalho vinculado ao metastore.

  2. Na barra lateral, clique em Ícone do catálogo Catálogo.

  3. Na parte superior do painel Catálogo, clique noÍcone de engrenagem ícone de engrenagem e selecione Credenciais de armazenamento.

    Como alternativa, na página Acesso rápido, clique no botão Dados >externos e vá para a guia Credenciais de armazenamento.

  4. Selecione a credencial de armazenamento e vá para a guia Espaços de trabalho.

  5. Na guia Espaços de trabalho, desmarque a caixa de seleção Todos os espaços de trabalho têm acesso.

    Se sua credencial de armazenamento já estiver vinculada a um ou mais espaços de trabalho, essa caixa de seleção já estará desmarcada.

  6. Clique em Atribuir a espaços de trabalho e insira ou localize os espaços de trabalho que deseja atribuir.

Para revogar o acesso, vá para a guia Espaços de trabalho, selecione o espaço de trabalho e clique em Revogar. Para permitir o acesso de todos os espaços de trabalho, marque a caixa de seleção Todos os espaços de trabalho têm acesso .

CLI

Há dois grupos de comandos da CLI do Databricks e duas etapas necessárias para atribuir uma credencial de armazenamento a um espaço de trabalho.

Nos exemplos a seguir, substitua <profile-name> pelo nome do seu perfil de configuração de autenticação do Azure Databricks. Ele deve incluir o valor de um token de acesso pessoal, além do nome da instância do espaço de trabalho e do ID do espaço de trabalho onde você gerou o token de acesso pessoal. Consulte Autenticação de token de acesso pessoal do Azure Databricks.

  1. Use o storage-credentials comando do grupo de update comandos para definir as credenciais de isolation mode armazenamento como ISOLATED:

    databricks storage-credentials update <my-storage-credential> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    O padrão isolation-mode é OPEN para todos os espaços de trabalho anexados ao metastore.

  2. Use o workspace-bindings comando do grupo de update-bindings comandos para atribuir os espaços de trabalho à credencial de armazenamento:

    databricks workspace-bindings update-bindings storage-credential <my-storage-credential> \
    --json '{
      "add": [{"workspace_id": <workspace-id>}...],
      "remove": [{"workspace_id": <workspace-id>}...]
    }' --profile <profile-name>
    

    Use as "add" propriedades e "remove" para adicionar ou remover associações de espaço de trabalho.

    Nota

    A vinculação somente leitura (BINDING_TYPE_READ_ONLY) não está disponível para credenciais de armazenamento. Portanto, não há razão para definir binding_type a vinculação de credenciais de armazenamento.

Para listar todas as atribuições de espaço de trabalho para uma credencial de armazenamento, use o workspace-bindings comando do grupo de get-bindings comandos:

databricks workspace-bindings get-bindings storage-credential <my-storage-credential> \
--profile <profile-name>

Desvincular uma credencial de armazenamento de um espaço de trabalho

As instruções para revogar o acesso do espaço de trabalho a uma credencial de armazenamento usando o Gerenciador de Catálogos ou o grupo de comandos da workspace-bindings CLI estão incluídas em Vincular uma credencial de armazenamento a um ou mais espaços de trabalho.

Próximos passos

Você pode exibir, atualizar, excluir e conceder permissão a outros usuários para usar credenciais de armazenamento. Consulte Gerenciar credenciais de armazenamento.

Você pode definir locais externos usando credenciais de armazenamento. Consulte Criar uma credencial de armazenamento para se conectar ao Azure Data Lake Storage Gen2.