Gerenciar o acesso a serviços de nuvem externos usando credenciais de serviço
Importante
Esse recurso está em uma versão prévia.
Este artigo descreve como criar um objeto de credencial de serviço no Catálogo do Unity que permite controlar o acesso do Azure Databricks a serviços de nuvem externos. Uma credencial de serviço no Catálogo do Unity 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 usado como um local de armazenamento gerenciado do Catálogo do Unity ou local de armazenamento externo. Para esses casos de uso, use uma credencial de armazenamento. Consulte Gerenciar o acesso ao armazenamento em nuvem usando o Catálogo do Unity.
Para criar uma credencial de serviço para acesso aos serviços do Azure, crie um conector de acesso do Azure Databricks que faz referência a uma identidade gerenciada do Azure, atribuindo permissões a ele 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:
Workspace do Azure Databricks habilitado para o Catálogo do Unity.
Privilégio
CREATE SERVICE CREDENTIAL
no metastore do Catálogo do Unity anexado ao workspace. Os administradores de conta e administradores de metastore têm esse privilégio por padrão. Se o workspace foi habilitado para o Catálogo do Unity automaticamente, os administradores do workspace também terão esse privilégio.Observação
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. Você não pode 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.
Em seu locatário do Azure:
- Um serviço do Azure na mesma região que o workspace do qual você deseja acessar os dados.
- A função Colaborador ou Proprietário em um grupo de recursos do Azure.
- A função RBAC do Azure de Proprietário ou Administrador de Acesso do Usuário 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 você já tiver o conector de acesso definido, poderá pular para a etapa 2 no procedimento a seguir.
Observação
Você pode usar uma entidade de serviço em vez de uma identidade gerenciada, mas as identidades gerenciadas são altamente recomendadas. As identidades gerenciadas têm o benefício de permitir que o Catálogo do Unity acesse contas de serviço protegidas por regras de rede, o que não é possível usando entidades de serviço, e eliminam a necessidade de gerenciar e alternar segredos. Se você precisar usar uma entidade de serviço, consulte Criar armazenamento gerenciado do Catálogo do Unity usando uma entidade de serviço (herdada).
No portal do Azure, crie um conector de acesso do Azure Databricks e atribua a ele permissões no serviço que você gostaria de acessar, usando as instruções em Configurar uma identidade gerenciada para o Catálogo do 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 Colaborador ou superior no recurso do conector de acesso no Azure para adicionar a credencial de serviço.
Em vez de seguir as instruções na Etapa 2: conceder acesso à identidade gerenciada à conta de armazenamento, conceda à identidade gerenciada acesso à sua conta de serviço.
Anote a ID do recurso do conector de acesso.
Faça logon no workspace do Azure Databricks como um usuário que atenda aos requisitos listados em Antes de começar.
Clique em Catálogo.
Na página Acesso rápido, clique no botão Dados externos>, vá para a guia Credenciais e selecione Criar credencial.
Selecione Credencial de Serviço.
Insira um Nome da credencial, um comentário opcional e a ID do 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 workspaces específicos
Importante
Esse recurso está em uma versão prévia.
Por padrão, uma credencial de serviço pode ser acessada de todos os workspaces 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 em qualquer workspace anexado ao metastore. Se você usar espaços de trabalho para isolar o acesso a dados do usuário, talvez queira permitir o acesso a uma credencial de serviço somente de espaços de trabalho específicos. Esse recurso é conhecido como associação de workspace ou isolamento de credencial de serviço.
Um caso de uso típico para associar uma credencial de serviço a workspaces específicos é o cenário em que 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 workspace de produção.
Para obter mais informações sobre a associação de workspace, consulte (Opcional) Atribuir uma credencial de armazenamento a workspaces específicos e Limitar o acesso ao catálogo a workspaces específicos.
Associar uma credencial de serviço a um ou mais workspaces
Para atribuir uma credencial de serviço a workspaces específicos, use o Gerenciador de Catálogos.
Permissões necessárias: administrador do Metastore ou proprietário da credencial de serviço.
Observação
Os administradores do metastore podem ver todas as credenciais de serviço em um metastore usando o Gerenciador de Catálogos, 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 workspace atual. As credenciais de serviço que não estão atribuídas ao workspace aparecem esmaecidas.
Faça logon em um workspace vinculado ao metastore.
Na barra lateral, clique em Catálogo.
Na página Acesso rápido, clique no botão Dados externos >e vá para a guia Credenciais.
Selecione a credencial de serviço e vá para a guia Workspaces .
Na guia Workspaces, desmarque a caixa de seleção Todos os workspaces têm acesso.
Se sua credencial de serviço já estiver vinculada a um ou mais workspaces, essa caixa de seleção já estará desmarcada.
Clique em Atribuir a workspaces e insira ou localize os workspaces que quer atribuir.
Para revogar o acesso, vá para a guia Workspaces, selecione o workspace 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.
Próximas etapas
- Saiba como visualizar, 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 Catálogo do Unity para se conectar a serviços de nuvem externos.
Limitações
As seguintes limitações se aplicam:
- O Databricks Runtime 15.4 LTS inclui apenas suporte ao Python.
- Não há suporte para SQL warehouses.
- Alguns eventos de auditoria para ações executadas em credenciais de serviço não aparecerão na
system.access.audit
tabela. 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 das credenciais de serviço,
INFORMATION_SCHEMA.STORAGE_CREDENTIALS
(preterido) exibe as credenciais de armazenamento e as credenciais de serviço eINFORMATION_SCHEMA.STORAGE_CREDENTIAL_PRIVILEGES
(preterido) exibe privilégios que se aplicam às credenciais de armazenamento e às credenciais de serviço. Esse é 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.