Partilhar via


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 habilitado para o Catálogo Unity.

  • CREATE SERVICE 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. 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 gerenciadas têm o benefício de permitir que o Unity Catalog 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 girar segredos. Se você precisar 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 serviço 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 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 o ID de recurso do conector de acesso.

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

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

  4. Na página Acesso rápido, clique no botão Dados externos>, vá para a guia Credenciais e selecione Criar credencial.

  5. Selecione Credencial de serviço.

  6. 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>
    
  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. Clique em Criar.

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

  10. 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 a associação de espaços 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.

  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 página Acesso rápido, clique no botão Dados externos >e vá para a guia Credenciais.

  4. Selecione a credencial de serviço 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 serviço já estiver vinculada a um ou mais espaços de trabalho, essa caixa de seleção já está 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 .

Próximos passos

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 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 de credenciais de serviço, INFORMATION_SCHEMA.STORAGE_CREDENTIALS (preterido) exibe credenciais de armazenamento e credenciais de serviço, e INFORMATION_SCHEMA.STORAGE_CREDENTIAL_PRIVILEGES (preterido) exibe privilégios que se aplicam tanto às credenciais de armazenamento quanto às 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 usar INFORMATION_SCHEMA.CREDENTIALS e INFORMATION_SCHEMA.CREDENTIAL_PRIVILEGES para credenciais de armazenamento e serviço.