Crie uma credencial de armazenamento para ligação ao Azure Data Lake Storage

Esta página descreve como criar credenciais de armazenamento no Unity Catalog para se ligar ao Azure Data Lake Storage. Para obter informações sobre outras opções de armazenamento em nuvem suportadas pelo Unity Catalog, consulte Opções de armazenamento em nuvem suportadas pelo Unity Catalog.

Uma credencial de armazenamento contém uma credencial de nuvem de longo prazo que fornece acesso ao armazenamento em nuvem. Você faz referência a credenciais de armazenamento, juntamente com o caminho de armazenamento em nuvem, ao criar locais externos no Unity Catalog para controlar o acesso ao armazenamento externo.

Crie uma credencial de armazenamento que aceda a Azure Data Lake Storage

Pode usar uma identidade gerida Azure ou um principal de serviço como identidade que autoriza o acesso ao seu contentor de armazenamento. Identidades gerenciadas são altamente recomendadas. Eles têm o benefício de permitir que o Unity Catalog aceda a contas de armazenamento protegidas por regras de rede, o que não é possível utilizando principais de serviço, e eliminam a necessidade de gerir e renovar segredos. Se quiser usar um principal de serviço, consulte Criar armazenamento gerido do Unity Catalog usando um principal de serviço (legado).

Requisitos

In Azure Databricks:

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

No seu locatário Azure:

  • Um contentor de armazenamento Azure Data Lake Storage. Para evitar cobranças de saída, isso deve estar na mesma região do espaço de trabalho a partir do qual você deseja acessar os dados.

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

  • Contribuidor ou Proprietário de um grupo de recursos no Azure.

  • Proprietário ou utilizador com o papel de Administrador de Acesso ao Utilizador Azure RBAC na conta de armazenamento.

Criar a credencial de armazenamento

  1. No portal Azure, crie um conector de acesso Azure Databricks e atribua-lhe permissões no contentor de armazenamento ao qual pretende aceder, usando as instruções em Configure uma identidade gerida para o Unity Catalog.

    Um conector de acesso Azure Databricks é um recurso Azure de primeira parte que permite ligar identidades geridas a uma conta Azure Databricks. Para adicionar a credencial de armazenamento, deve ter o papel Contribuidor ou superior no recurso do conector de acesso em Azure.

    Anote o ID de recurso do conector de acesso.

  2. Inicia sessão no teu espaço de trabalho de Azure Databricks com Unity Catalog como utilizador que tem o privilégio CREATE STORAGE CREDENTIAL.

    As funções de administrador de metastore e administrador de conta incluem esse privilégio.

  3. Na barra lateral, clique no ícone Dados.Catálogo.

  4. Clique Conectar>Credenciais.

  5. Selecionar Criar credencial.

  6. Selecione Credencial de armazenamento.

  7. Selecione um Tipo de Credencial de Identidade Gerida do Azure.

  8. 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>
    
  9. (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>
    
  10. (Opcional) Se desejar que os utilizadores tenham acesso somente leitura aos locais externos que usam esta credencial de armazenamento, selecione Somente leitura. Para obter mais informações, consulte Marcar uma credencial de armazenamento como somente leitura.

  11. Clique em Criar.

  12. (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.

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

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 associar uma credencial de armazenamento a espaços de trabalho específicos é o cenário em que um administrador cloud configura uma credencial de armazenamento usando uma credencial de conta de produção na cloud, e quer garantir que os utilizadores do Azure Databricks usam essa credencial para criar locais externos apenas 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 do espaço de trabalho são referenciadas quando se exercem privilégios sobre credenciais de armazenamento. 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 do Metastore, proprietário da credencial de armazenamento ou MANAGE na 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 no ícone Dados.Catálogo.

  3. Clique Conectar>Credenciais.

  4. Selecione a credencial de armazenamento e vá para o separador 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 encontre 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 a partir 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 seguintes, substitua <profile-name> pelo nome do seu perfil de configuração de autenticação 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. Veja Autenticação de token de acesso pessoal (legado).

  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>
    

    Utilize as propriedades "add" 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