Gerenciar o acesso a serviços de nuvem externos usando credenciais de serviço
Importante
Esta funcionalidade está em Pré-visualização Pública.
Este artigo descreve como criar um objeto de credencial de serviço no Unity Catalog que permite controlar o acesso do Azure Databricks a serviços de nuvem externos. Uma credencial de serviço no Unity Catalog encapsula uma credencial de nuvem de longo prazo que concede acesso a esses serviços.
As credenciais de serviço não se destinam a controlar o acesso ao armazenamento em nuvem que é usado como um local de armazenamento gerenciado do Catálogo Unity ou um local de armazenamento externo. Para esses casos de uso, use uma credencial de armazenamento. Consulte Gerenciar o acesso ao armazenamento em nuvem usando o Unity Catalog.
Para criar uma credencial de serviço para acesso aos serviços do Azure, crie um conector de acesso do Azure Databricks que faça referência a uma identidade gerenciada do Azure, atribuindo-lhe permissões em um serviço ou serviços. Em seguida, você faz referência a esse conector de acesso na definição de credencial de serviço.
Antes de começar
Antes de criar uma credencial de serviço, você deve atender aos seguintes requisitos:
No Azure Databricks:
Espaço de trabalho do Azure Databricks ativado para o Unity Catalog.
CREATE SERVICE CREDENTIAL
privilégio no metastore do Unity Catalog que está anexado ao espaço de trabalho. Os administradores de conta e os administradores de metastore têm esse privilégio por padrão. Se seu espaço de trabalho foi habilitado para o Unity Catalog automaticamente, os administradores do espaço de trabalho também têm esse privilégio.Nota
As entidades de serviço devem ter a função de administrador da conta para criar uma credencial de serviço que use uma identidade gerenciada. Não é possível delegar
CREATE SERVICE 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.
No seu inquilino do Azure:
- Um serviço do Azure na mesma região do espaço de trabalho a partir do qual pretende aceder aos dados.
- A função de Colaborador ou Proprietário em um grupo de recursos do Azure.
- A função Proprietário ou Administrador de Acesso de Usuário do Azure RBAC na conta de serviço.
Criar uma credencial de serviço usando uma identidade gerenciada
Para configurar a identidade que autoriza o acesso à sua conta de serviço, use um conector de acesso do Azure Databricks que conecta uma identidade gerenciada do Azure à sua conta do Azure Databricks. Se já tiver o conector de acesso definido, pode avançar para o passo 2 no procedimento seguinte.
Nota
Você pode usar uma entidade de serviço em vez de uma identidade gerenciada, mas as identidades gerenciadas são altamente recomendadas. As identidades geridas têm o benefício de permitir que o Unity Catalog aceda a contas de serviços protegidas por regras de rede, o que não é possível usando entidades de serviço, e eliminam a necessidade de gerir e rodar segredos. Se você precisar usar uma entidade de serviço, consulte criar armazenamento gerenciado do Unity Catalog usando uma entidade de serviço (herdada).
No portal do Azure, crie um conector de acesso do Azure Databricks e atribua-lhe permissões no serviço que você gostaria de acessar, usando as instruções em Configurar uma identidade gerenciada para o Unity Catalog.
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 serviço.
Em vez de seguir as instruções em Etapa 2: Conceder acesso à identidade gerenciada à conta de armazenamento, conceda acesso à identidade gerenciada à sua conta de serviço.
Anote o ID de recurso do conector de acesso.
Faça logon no seu espaço de trabalho do Azure Databricks como um usuário que atenda aos requisitos listados em Antes de começar.
Clique no ícone Catálogo Catálogo.
Na página de Acesso rápido , clique no botão Dados externos >, vá para o separador Credenciais e selecione Criar credencial.
Selecione Credencial de Serviço.
Insira um nome de credencial, um comentário opcional e o ID de recurso do conector de acesso no formato:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
(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>
Clique em Criar.
Na caixa de diálogo Credencial de serviço criada, copie a ID externa.
Você também pode exibir a ID externa a qualquer momento na página de detalhes da credencial de serviço.
Clique em Concluído.
(Opcional) Atribuir uma credencial de serviço a espaços de trabalho específicos
Importante
Esta funcionalidade está em Pré-visualização Pública.
Por padrão, uma credencial de serviço é 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 nessa credencial de serviço, ele poderá exercer esse privilégio a partir 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 serviço somente de espaços de trabalho específicos. Esse recurso é conhecido como vinculação de espaço de trabalho ou isolamento de credenciais de serviço.
Um caso de uso típico para vincular uma credencial de serviço a espaços de trabalho específicos é o cenário no qual um administrador de nuvem configura uma credencial de serviço 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 acessar um serviço de nuvem externo somente no espaço de trabalho de produção.
Para obter mais informações sobre vinculação de espaço de trabalho, consulte (opcional) Atribuir uma credencial de armazenamento a espaços de trabalho específicos e Limitar o acesso do catálogo a espaços de trabalho específicos.
Vincular uma credencial de serviço a um ou mais espaços de trabalho
Para atribuir uma credencial de serviço a espaços de trabalho específicos, use o Gerenciador de Catálogos.
Permissões necessárias: administrador da Metastore ou proprietário da credencial de serviço.
Nota
Os administradores de metastore podem ver todas as credenciais de serviço em um metastore usando o Catalog Explorer, e os proprietários de credenciais de serviço podem ver todas as credenciais de serviço que possuem em um metastore, independentemente de a credencial de serviço estar atribuída ao espaço de trabalho atual. As credenciais de serviço que não são atribuídas ao espaço de trabalho aparecem acinzentadas.
Faça login em um espaço de trabalho vinculado ao metastore.
Na barra lateral, clique Catálogo.
Na página de Acesso rápido , clique no botão de Dados Externos > e vá para o separador de Credenciais .
Selecione a credencial de serviço e vá para o separador Espaços de trabalho.
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 serviço já estiver vinculada a um ou mais espaços de trabalho, essa caixa de seleção já está desmarcada.
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
Próximos passos
- Saiba como exibir, atualizar, excluir e conceder permissão a outros usuários para usar credenciais de serviço. Consulte Gerenciar credenciais de serviço.
- Saiba como usar credenciais de serviço no código. Consulte Usar credenciais de serviço do Unity Catalog para se conectar a serviços de nuvem externos.
Limitações
Aplicam-se as seguintes limitações:
- O Databricks Runtime 15.4 LTS inclui apenas suporte a Python.
- Não há suporte para armazéns SQL.
- Alguns eventos de auditoria para ações executadas em credenciais de serviço não aparecerão na tabela
system.access.audit
. As informações de auditoria sobre quem criou, excluiu, atualizou, leu, listou ou usou uma credencial de serviço estarão disponíveis. Consulte Referência da tabela do sistema de log de auditoria. - Durante a visualização de credenciais de serviço,
INFORMATION_SCHEMA.STORAGE_CREDENTIALS
(preterido) exibe credenciais de armazenamento e credenciais de serviço, eINFORMATION_SCHEMA.STORAGE_CREDENTIAL_PRIVILEGES
(preterido) exibe privilégios que se aplicam a credenciais de armazenamento e credenciais de serviço. Este é um comportamento de visualização incorreto que será corrigido, e você não deve depender dele para continuar. Em vez disso, você deve usarINFORMATION_SCHEMA.CREDENTIALS
eINFORMATION_SCHEMA.CREDENTIAL_PRIVILEGES
para credenciais de armazenamento e serviço.