Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta página descreve como usar identidades geridas pelo Azure para ligar a contentores de armazenamento em nome dos utilizadores do Unity Catalog.
O que são identidades geridas no Azure?
Unity Catalog pode ser configurado para usar uma identidade gerida Azure para aceder a contentores de armazenamento em nome dos utilizadores do Unity Catalog. As identidades geridas fornecem uma identidade para as aplicações utilizarem quando se ligam a recursos que suportam autenticação Microsoft Entra ID.
Você pode usar identidades gerenciadas no Unity Catalog para dar suporte a dois casos de uso principais:
- Como uma identidade para se conectar às contas de armazenamento gerenciado do metastore (onde as tabelas gerenciadas são armazenadas).
- Como uma identidade para se conectar a outras contas de armazenamento externo (para acesso baseado em arquivo ou para acessar conjuntos de dados existentes por meio de tabelas externas).
Configurar o Unity Catalog com uma identidade gerida tem os seguintes benefícios em relação à configuração do Unity Catalog com um principal de serviço:
- As identidades gerenciadas não exigem que você mantenha credenciais ou alterne segredos.
- Se o seu espaço de trabalho do Azure Databricks estiver implementado no seu próprio VNet (também conhecido como injeção de VNet) e usar um firewall de armazenamento para proteger uma conta do Azure Data Lake Storage, pode usar a identidade gerida para ligar o espaço de trabalho a essa conta. Consulte (Recomendado para espaços de trabalho injetados por VNet) Configure o acesso confiável a Azure Storage com base na sua identidade gerida.
Configurar uma identidade gerenciada para o Unity Catalog
Para configurar uma identidade gerida para usar com o Unity Catalog, primeiro cria um conector de acesso para Azure Databricks no Azure. Por padrão, o conector de acesso será implantado com uma identidade gerenciada atribuída ao sistema. Em vez disso, você pode optar por anexar uma identidade gerenciada atribuída pelo usuário. Depois, concede à identidade gerida do Azure acesso à sua conta de Azure Data Lake Storage e utiliza o conector de acesso ao criar uma metastore ou credencial de armazenamento do Unity Catalog.
Requerimentos
O utilizador ou principal do serviço Azure que cria o conector de acesso deve:
- Seja
ContributorouOwnerde um grupo de recursos do Azure.
O utilizador ou principal do serviço Azure que concede a identidade gerida à conta de armazenamento deve:
- Seja um
Ownerou um utilizador com a funçãoUser Access AdministratorAzure RBAC na conta de armazenamento.
Passo 1: Criar um conector de acesso para Azure Databricks
O Access Connector para Azure Databricks é um recurso Azure de primeira parte que permite ligar identidades geridas a uma conta Azure Databricks. Cada conector de acesso para Azure Databricks pode incluir uma identidade gerida atribuída pelo sistema, uma ou mais identidades geridas atribuídas pelo utilizador, ou ambas.
Inicie sessão no Azure Portal como Contribuinte ou Proprietário de um grupo de recursos.
Clique em + Criar ou Criar um novo recurso.
Procura por Access Connector para Azure Databricks e seleciona-o.
Clique em Criar.
Na guia Noções básicas, aceite, selecione ou insira valores para os seguintes campos:
- Subscrição: Esta é a subscrição do Azure onde o conector de acesso será criado. O padrão é a subscrição do Azure que está a usar atualmente. Pode ser qualquer subscrição no locatário.
- Resource group: Este é o Azure grupo de recursos onde o conector de acesso será criado.
- Nome: insira um nome que indique a finalidade do conector.
- Região: deve ser a mesma região da conta de armazenamento à qual você se conectará.
Clique em Avançar, insira tags e clique em Avançar.
Na guia Identidade Gerenciada, crie as identidades gerenciadas da seguinte maneira:
- Para usar uma identidade gerenciada atribuída ao sistema, defina Status como On
- Para adicionar identidades gerenciadas atribuídas pelo usuário, clique em + Adicionar e selecione uma ou mais identidades gerenciadas atribuídas pelo usuário.
Clique em Rever e Criar.
Quando vir a mensagem Validação aprovada , clique em Criar.
Após a conclusão da implementação, clique em Ir para recurso.
Anote a ID do recurso.
O ID do recurso está no formato:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
Etapa 2: Conceder acesso à identidade gerenciada à conta de armazenamento
Para conceder as permissões nesta etapa, deve ter a função Owner ou User Access Administrator Azure RBAC na sua conta de armazenamento.
Você tem as seguintes opções ao conceder à identidade gerenciada acesso à conta de armazenamento e ao contêiner:
- Conceda acesso de leitura e gravação a toda a conta de armazenamento usando a
Storage Blob Data Contributorfunção. - Conceda uma função mais limitada na conta de armazenamento usando a
Storage Blob Delegatorfunção e acesso de leitura e gravação a um contêiner específico usando aStorage Blob Data Contributorfunção.
As instruções a seguir pressupõem que você está concedendo a Storage Blob Data Contributor função na conta de armazenamento, mas você pode substituir as outras opções conforme necessário:
- Inicie sessão na sua conta Azure Data Lake Storage.
- Vá a Access Control (IAM), clique em + Adicionar e selecione Adicionar atribuição de funções.
- Selecione a função Colaborador de Dados de Blob de Armazenamento e clique em Avançar.
- Em Atribuir acesso a, selecione Identidade gerenciada.
- Clique em +Selecione Membros e selecione Conector de acesso para Azure Databricks ou Identidade gerida atribuída pelo utilizador.
- Procure o nome do conector ou a identidade atribuída pelo usuário, selecione-o e clique em Revisar e Atribuir.
Etapa 3: Conceder à identidade gerenciada acesso a eventos de arquivo
Para configurar os papéis de Azure necessários e ativar eventos de ficheiro para localizações externas, veja Configurar eventos de ficheiro para uma localização externa.
Use uma identidade gerenciada para acessar a conta de armazenamento raiz do Unity Catalog
Esta seção descreve como conceder à identidade gerenciada acesso à conta de armazenamento raiz quando você cria um metastore do Unity Catalog.
Para saber como atualizar um metastore existente do Unity Catalog para usar uma identidade gerenciada, consulte Atualizar seu metastore existente do Unity Catalog para usar uma identidade gerenciada para acessar seu armazenamento raiz.
Como administrador de conta Azure Databricks, inicie sessão na consola da conta do Azure Databricks.
Clique no
Catálogo.
Clique em Criar Metastore.
Introduza valores para os campos seguintes:
Nome do metastore.
Região onde o metastore será implantado.
Para obter o melhor desempenho, colocalize o conector de acesso, os espaços de trabalho, o metastore e o local de armazenamento em nuvem na mesma região da nuvem.
Caminho do ADLS Gen 2: insira o caminho para o contêiner de armazenamento que você usará como armazenamento raiz para o metastore.
Certifique-se de que o caminho começa com
abfss://.ID do Conector de Acesso: introduza o ID de recurso do conector de acesso do Azure Databricks no formato:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>(Opcional) ID de identidade gerenciada: se você criou o conector de acesso usando uma identidade gerenciada atribuída pelo usuário, insira a ID de recurso da identidade gerenciada.
Clique em Criar.
Quando solicitado, selecione espaços de trabalho para vincular ao metastore.
Usar uma identidade gerenciada para acessar o armazenamento externo gerenciado no Unity Catalog
O Unity Catalog oferece a capacidade de acessar dados existentes em contas de armazenamento usando credenciais de armazenamento e locais externos. As credenciais de armazenamento armazenam a identidade gerenciada e os locais externos definem um caminho para o armazenamento junto com uma referência à credencial de armazenamento. Você pode usar essa abordagem para conceder e controlar o acesso aos dados existentes no armazenamento em nuvem e para registrar tabelas externas no Unity Catalog.
Uma credencial de armazenamento pode conter uma identidade gerida ou uma entidade de serviço. O uso de uma identidade gerida tem a vantagem de permitir que o Unity Catalog aceda a contas de armazenamento protegidas por regras de rede, o que não é possível usando princípios de serviço, e elimina a necessidade de gerenciar e alternar segredos.
Para criar uma credencial de armazenamento usando uma identidade gerenciada e atribuir essa credencial de armazenamento a um local externo, siga as instruções em Conectar ao armazenamento de objetos na nuvem usando o Unity Catalog.
(Recomendado para espaços de trabalho injetados por VNet) Configure o acesso confiável a Azure Storage com base na sua identidade gerida
Se o seu espaço de trabalho Azure Databricks estiver implementado na sua própria rede virtual Azure, também conhecida como "injeção VNet", e utilizar um firewall de armazenamento para proteger uma conta Azure Data Lake Storage, deve:
- Ative o seu espaço de trabalho do Azure Databricks para aceder ao Azure Storage.
- Ative a sua identidade gerida para aceder ao Azure Storage.
Passo 1. Ative o seu espaço de trabalho Azure Databricks para aceder ao Azure Storage
Deve configurar as definições de rede para permitir que o seu espaço de trabalho do Azure Databricks aceda ao Azure Data Lake Storage. Primeiro, certifique-se de que o seu espaço de trabalho de Azure Databricks está implementado na sua própria rede virtual após Implemente Azure Databricks na sua rede virtual de Azure (injeção VNet). Podes então configurar endpoints privados ou acesso a partir da tua rede virtual para permitir ligações das tuas sub-redes à tua conta Azure Data Lake Storage.
Se estiver a utilizar computação serverless, como por exemplo os warehouses SQL serverless, deve conceder acesso do plano de computação serverless ao Azure Data Lake Storage. Consulte Rede de computação em plano sem servidor.
Passo 2: Ative a sua identidade gerida para aceder ao Azure Storage
Este passo só é necessário se "Permitir que os serviços Azure na lista de serviços confiáveis acedam a esta conta de armazenamento" estiver desativado para a sua conta Azure Storage. Se essa configuração estiver ativada:
- Qualquer conector de acesso para o Azure Databricks na mesma entidade que a conta de armazenamento pode aceder à conta de armazenamento.
- Qualquer serviço confiável do Azure pode aceder à conta de armazenamento. Veja Conceder acesso a serviços de Azure de confiança.
As instruções abaixo incluem uma etapa na qual você desabilita essa configuração. Pode usar o Azure Portal ou o Azure CLI.
Use o Portal do Azure
Inicia sessão no Azure Portal, encontra e seleciona a conta Azure Storage, e vai ao separador Networking.
Defina o Acesso à Rede Pública para Ativado a partir de redes virtuais e endereços IP selecionados.
Como opção, você pode, em vez disso, definir Acesso à Rede Pública como Desativado. A identidade gerenciada pode ser usada para ignorar a verificação de acesso à rede pública.
Em Instâncias de Recursos, selecione um Tipo de Recursos de Microsoft. Databricks/accessConnectors e selecione o seu conector de acesso Azure Databricks.
Em Exceções, desmarque a caixa de seleção Permitir que os serviços do Azure na lista de serviços confiáveis acessem esta conta de armazenamento.
Utilize a Azure CLI
Instala o Azure CLI e login. Para iniciar sessão com uma conta de utilizador ou um principal de serviço, consulte Iniciar sessão com o Azure CLI.
Adicione uma regra de rede à conta de armazenamento:
az storage account network-rule add \ -–subscription <subscription id of the resource group> \ -–resource-id <resource Id of the access connector for Azure Databricks> \ -–tenant-id <tenant Id> \ -g <name of the Azure Storage resource group> \ -–account-name <name of the Azure Storage resource> \Adicione o ID do recurso no formato:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>Depois de criares a regra de rede, vai à tua conta Azure Storage no Azure Portal e vê a identidade gerida no separador Networking sob Instâncias de Recursos, tipo de recurso
Microsoft.Databricks/accessConnectors.Em Exceções, desmarque a caixa de seleção Permitir que os serviços do Azure na lista de serviços confiáveis acessem esta conta de armazenamento.
Opcionalmente, defina Acesso à Rede Pública como Desativado. A identidade gerenciada pode ser usada para ignorar a verificação de acesso à rede pública.
A abordagem padrão é manter este valor como Ativado para redes virtuais e endereços IP selecionados.
(Recomendado) Configurar firewalls de armazenamento Azure para permitir o acesso a repositórios SQL sem servidor
Serverless SQL warehouses são recursos de computação que correm na subscrição Azure para Azure Databricks, não na tua subscrição Azure. Se configurar um firewall no Azure Data Lake Storage e planear usar armazenamentos SQL sem servidor, deve configurar o firewall para permitir o acesso a partir de armazenamentos SQL sem servidor.
Para instruções, consulte Configurar um firewall para acesso ao sistema sem servidor (legacy).
Atualize seu metastore existente do Unity Catalog para usar uma identidade gerenciada para acessar seu armazenamento raiz
Se você tiver um metastore do Unity Catalog que foi criado usando uma entidade de serviço e quiser atualizá-lo para usar uma identidade gerenciada, poderá atualizá-lo usando uma chamada de API.
Crie um Access Connector para Azure Databricks e atribua-lhe permissões ao contentor de armazenamento que está a ser usado para o armazenamento raiz do seu metastore do Unity Catalog, usando as instruções em Configure uma identidade gerida para o Unity Catalog.
Você pode criar o conector de acesso com uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário.
Anote o ID de recurso do conector de acesso. Se você usar uma identidade gerenciada atribuída pelo usuário, anote também sua ID de recurso.
Como administrador de contas, inicia sessão num espaço de trabalho do Azure Databricks atribuído à metastore.
Você não precisa ser um administrador de espaço de trabalho.
Gere um token de acesso pessoal.
Crie um perfil de configuração de autenticação Azure Databricks no seu ambiente local que contenha o seguinte:
- O nome da instância do espaço de trabalho e a ID do espaço de trabalho do espaço de trabalho onde você gerou seu token de acesso pessoal.
- O valor do token de acesso pessoal.
Use a CLI do Databricks para executar o seguinte comando para recriar a credencial de armazenamento.
Substitua os valores dos espaços reservados:
-
<credential-name>: Um nome para a credencial de armazenamento. -
<access-connector-id>: ID de recurso para o conector de acesso Azure Databricks no formato/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name> -
<managed-identity-id>: Se você criou o conector de acesso usando uma identidade gerenciada atribuída pelo usuário, especifique a ID do recurso da identidade gerenciada. -
<profile-name>: O nome do seu perfil de configuração de autenticação Azure Databricks.
databricks storage-credentials create --json '{ "name\": "<credential-name>", "azure_managed_identity": { "access_connector_id": "<access-connector-id>", "managed_identity_id": "<managed-identity-id>" } }' --profile <profile-name>-
Anote o ID da credencial de armazenamento na resposta.
Execute o seguinte comando da CLI do Databricks para recuperar o
metastore_id. Substitua<profile-name>pelo nome do seu perfil de configuração de autenticação Azure Databricks.databricks metastores summary --profile <profile-name>Execute o seguinte comando da CLI do Databricks para atualizar o metastore com a nova credencial de armazenamento raiz.
Substitua os valores dos espaços reservados:
-
<metastore-id>: O ID do metastore que você recuperou na etapa anterior. -
<storage-credential-id>: O ID da credencial de armazenamento. -
<profile-name>: O nome do seu perfil de configuração de autenticação Azure Databricks.
databricks metastores update <metastore-id> \ --storage-root-credential-id <storage-credential-id> \ --profile <profile-name>-