Compartilhar via


Limitar o acesso do catálogo a espaços de trabalho específicos

Este artigo apresenta a associação workspace-catálogo e descreve como associar um catálogo do Catálogo do Unity a um workspace do Azure Databricks para impedir que outros workspaces na sua conta do Azure Databricks o acessem.

O que é a associação workspace-catálogo?

Se você usar espaços de trabalho para isolar o acesso aos dados do usuário, poderá limitar o acesso do catálogo a espaços de trabalho específicos em sua conta, também conhecido como associação entre espaço de trabalho e catálogo. O padrão é compartilhar o catálogo com todos os workspaces anexados ao metastore atual.

A exceção a esse padrão é o catálogo do workspace criado automaticamente para todos os novos workspaces. Esse catálogo do espaço de trabalho é limitado somente ao seu espaço de trabalho, a menos que você decida conceder acesso a ele a outros espaços de trabalho. Para obter informações importantes sobre a atribuição de permissões se você desassociar esse catálogo, confira Desassociar um catálogo de um workspace.

Você pode permitir o acesso de leitura e gravação ao catálogo a partir de um espaço de trabalho ou pode especificar o acesso somente de leitura. Se você especificar somente leitura, todas as operações de gravação serão bloqueadas desse workspace para esse catálogo.

Os casos de uso típicos para associar um catálogo a workspaces específicos incluem:

  • Garantir que os usuários só possam acessar dados de produção a partir de um ambiente de workspace de produção.
  • Garantir que os usuários só possam processar dados confidenciais em um workspace dedicado.
  • Isso fornecerá aos usuários acesso somente leitura aos dados de produção de um workspace de desenvolvedor para habilitar o desenvolvimento e o teste.

Observação

Você também pode associar locais externos e credenciais de armazenamento a workspaces específicos, limitando a capacidade de acessar dados em locais externos a usuários privilegiados nesses workspaces. Consulte (Opcional) Atribuir um local externo a workspaces específicos e (opcional) Atribuir uma credencial de armazenamento a workspaces específicos.

Exemplo de associação de catálogo ao workspace

Veja o exemplo do isolamento de produção e desenvolvimento. Se você especificar que os catálogos de dados de produção só podem ser acessados a partir de workspaces de produção, isso substituirá as concessões individuais emitidas aos usuários.

Diagrama de associação entre catálogo e workspace

Neste diagrama, prod_catalog está associado a dois workspaces de produção. Suponha que um usuário tenha recebido acesso a uma tabela em prod_catalog chamada my_table (usando GRANT SELECT ON my_table TO <user>). Se o usuário tentar acessar my_table no workspace de desenvolvimento, receberá uma mensagem de erro. O usuário pode acessar my_table apenas dos workspaces Prod ETL e Prod Analytics.

As associações entre workspace e catálogo são respeitadas em todas as áreas da plataforma. Por exemplo, se você consultar o esquema de informações, verá apenas os catálogos acessíveis no workspace em que a consulta foi feita. Da mesma forma, as UIs de pesquisa e linhagem de dados mostram apenas os catálogos atribuídos ao workspace (seja usando associações ou por padrão).

Associar um catálogo a um ou mais workspaces

Para atribuir um catálogo a workspaces específicos, você pode usar o Explorador de Catálogos ou a CLI do Databricks.

Permissões necessárias: administrador do metastore ou proprietário do catálogo.

Observação

Os administradores de metastore podem ver todos os catálogos em um metastore usando o Explorador de Catálogos, e os proprietários de catálogos podem ver todos os catálogos que possuem em um metastore, independentemente de o catálogo estar atribuído ao workspace atual. Os catálogos que não estão atribuídos ao workspace aparecem em cinza e nenhum objeto filho é visível ou pode ser consultado.

Explorador do Catálogo

  1. Faça logon em um workspace vinculado ao metastore.

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

  3. À esquerda do painel Catálogo, clique no nome do catálogo.

    O painel principal do Explorador de Catálogos tem como padrão a lista Catálogos. Você também pode selecionar o catálogo lá.

  4. Na guia Workspaces, desmarque a caixa de seleção Todos os workspaces têm acesso.

    Se o catálogo já estiver associado a um ou mais workspaces, essa caixa de seleção já estará desmarcada.

  5. Clique em Atribuir a workspaces e insira ou localize os workspaces que quer atribuir.

  6. (Opcional) Limite o acesso ao workspace a somente leitura.

    No menu Gerenciar Nível de Acesso, selecione Alterar o acesso para somente leitura.

    Você pode reverter essa seleção a qualquer momento editando o catálogo e selecionando Alterar o acesso para leitura e gravação.

Para revogar o acesso, vá para a guia Workspaces, selecione o workspace e clique em Revogar.

CLI

Existem dois grupos de comandos de CLI do Databricks e duas etapas necessárias para atribuir um catálogo a um workspace.

Nos exemplos a seguir, substitua <profile-name> pelo nome do seu perfil de configuração de autenticação do Azure Databricks. Isso deverá incluir o valor de um token de acesso pessoal, além do nome da instância do workspace e da ID do workspace em que você gerou o token de acesso pessoal. Confira Autenticação com tokens de acesso pessoal do Azure Databricks.

  1. Use o comando catalogs do grupo de comandos update para definir o isolation mode do catálogo como ISOLATED:

    databricks catalogs update <my-catalog> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    O isolation-mode padrão é OPEN para todos os workspaces anexados ao metastore.

  2. Use o comando workspace-bindings do grupo de comandos update-bindings para atribuir os workspaces ao catálogo:

    databricks workspace-bindings update-bindings catalog <my-catalog> \
    --json '{
      "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...],
      "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...]
    }' --profile <profile-name>
    

    Use as propriedades "add" e "remove" para adicionar ou remover associações de workspace. O <binding-type> pode ser “BINDING_TYPE_READ_WRITE” (padrão) ou “BINDING_TYPE_READ_ONLY”.

Para listar todas as atribuições de workspaces para um catálogo, use o comando workspace-bindings do grupo de comandos get-bindings:

databricks workspace-bindings get-bindings catalog <my-catalog> \
--profile <profile-name>

Desassociar um catálogo de um workspace

As instruções para revogar o acesso do workspace a um catálogo usando o Explorador de Catálogos ou o grupo de comandos workspace-bindings da CLI estão incluídas no artigo Vincular um catálogo a um ou mais workspaces.

Importante

Se o espaço de trabalho tiver sido habilitado automaticamente para o Catálogo do Unity e você tiver um catálogo do espaço de trabalho, os administradores do espaço de trabalho possuem esse catálogo e têm todas as permissões nesse catálogo apenas no espaço de trabalho. Se você desassociar esse catálogo ou associá-lo a outros catálogos, deverá conceder permissões necessárias manualmente aos membros do grupo de administradores do workspace como usuários individuais ou usando grupos de nível de conta, pois o grupo de administradores do workspace é um grupo local de workspace. Para obter mais informações sobre grupos de contas versus grupos locais de workspace, confira Diferença entre grupos de contas e grupos locais de workspace.