Limitar o acesso ao catálogo a um espaço de trabalho específico

Este artigo apresenta a vinculação do catálogo workspacee descreve como vincular um catálogo Unity Catalog a um Databricks workspace para impedir que outro espaço de trabalho em seu Databricks account o acesse.

O que é a ligação entre o espaço de trabalho e o catálogo?

Se usar o espaço de trabalho para isolar o acesso aos dados do usuário, o senhor poderá limitar o acesso ao catálogo a um espaço de trabalho específico no site account, também conhecido como workspace-catalog binding. O default é para compartilhar o catálogo com todos os espaços de trabalho anexados ao metastore atual.

A exceção a esse default é o catálogoworkspace que é criado automaticamente para todos os novos espaços de trabalho. Esse catálogo workspace está vinculado apenas ao seu workspace, a menos que o senhor opte por conceder acesso a ele a outros espaços de trabalho. Para obter informações importantes sobre a atribuição de permissões se o senhor desvincular esse catálogo, consulte Desvincular um catálogo de um workspace.

O senhor pode permitir o acesso de leitura e gravação ao catálogo em workspace ou pode especificar o acesso somente de leitura. Se o senhor especificar read-only, todas as operações de gravação serão bloqueadas do site workspace para esse catálogo.

Os casos de uso típicos para vincular um catálogo a um espaço de trabalho específico incluem:

  • Garantir que os usuários só possam acessar os dados de produção de um ambiente de produção workspace.

  • Garantir que os usuários só possam processar dados confidenciais a partir de um site dedicado workspace.

  • Conceder aos usuários acesso somente leitura aos dados de produção de um desenvolvedor workspace para permitir o desenvolvimento e os testes.

Observação

Também é possível vincular locais externos e credenciais de armazenamento a espaços de trabalho específicos, limitando a capacidade de acessar dados em locais externos a usuários com privilégios nesses espaços de trabalho. Consulte(Opcional) Assign an external location to specific workspaces(Atribuir um local externo a espaços de trabalho específicos ) e(Opcional) Assign a storage credential to specific workspaces (Atribuir uma credencial de armazenamento a espaços de trabalho específicos).

Exemplo de vinculação entre espaço de trabalho e catálogo

Tomemos como exemplo o isolamento da produção e do desenvolvimento. Se o senhor especificar que o catálogo de dados de produção só pode ser acessado a partir do espaço de trabalho de produção, isso substitui quaisquer concessões individuais emitidas para os usuários.

Catálogo -workspace diagrama de ligação

Nesse diagrama, prod_catalog está vinculado a dois espaços de trabalho 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 Dev workspace, ele receberá uma mensagem de erro. O usuário pode acessar my_table somente no espaço de trabalho Prod ETL e Prod analítica.

workspace-Os vínculos de catálogo são respeitados em todas as áreas da plataforma. Por exemplo, se o senhor consultar o esquema de informações, verá apenas os catálogos acessíveis no site workspace em que emitiu a consulta. A linhagem de dados e as UIs de busca também mostram apenas os catálogos atribuídos ao site workspace (seja usando bindings ou pelo site default).

Vincular um catálogo a um ou mais espaços de trabalho

Para atribuir um catálogo a um espaço de trabalho específico, o senhor pode usar o Catalog Explorer ou o site Databricks CLI.

Permissões necessárias: administrador do Metastore, proprietário do catálogo ou MANAGE e USE CATALOG no catálogo.

Observação

Os administradores de metastore podem ver todos os catálogos em um metastore usando o Catalog Explorer, 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 site workspace atual. Os catálogos que não estão atribuídos ao site workspace aparecem em cinza e nenhum objeto filho é visível ou consultável.

  1. Efetue login em um workspace vinculado ao metastore.

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

  3. No painel Catalog (Catálogo ), à esquerda, clique no nome do catálogo.

    O painel principal do Catalog Explorer tem como padrão a lista Catalogs (Catálogos ). O senhor também pode selecionar o catálogo lá.

  4. No espaço de trabalho tab, desmarque a caixa de seleção All workspace have access (Todos os espaços de trabalho têm acesso ).

    Se seu catálogo já estiver vinculado a um ou mais espaços de trabalho, essa caixa de seleção já estará desmarcada.

  5. Clique em Assign to workspace (Atribuir ao espaço de trabalho) e digite ou localize o espaço de trabalho que deseja atribuir.

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

    No menu Gerenciar nível de acesso, selecione Alterar acesso para somente leitura.

    O senhor pode reverter essa seleção a qualquer momento, editando o catálogo e selecionando Change access to read & write.

Para revogar o acesso, acesse o espaço de trabalho tab, selecione workspace e clique em Revoke.

Há dois grupos de Databricks CLI grupos de comando e dois passos necessários para atribuir um catálogo a um workspace.

Nos exemplos a seguir, substitua <profile-name> pelo nome do perfil de configuração de autenticação do Databricks. Ele deve incluir o valor de um access token pessoal, além do nome da instância workspace e o ID workspace do workspace onde o senhor gerou o access token pessoal. Consulte Databricks autenticação pessoal access token .

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

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

    O endereço default isolation-mode é OPEN para todos os espaços de trabalho anexados ao metastore.

  2. Use o comando workspace-bindings do grupo update-bindings para atribuir o espaço de trabalho 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 workspace bindings. O <binding-type> pode ser “BINDING_TYPE_READ_WRITE” (default) ou “BINDING_TYPE_READ_ONLY”.

Para listar todas as atribuições do site workspace em um catálogo, use o comando workspace-bindings do grupo get-bindings:

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

Desvincular um catálogo de um espaço de trabalho

As instruções para revogar o acesso workspace a um catálogo usando o Catalog Explorer ou o grupo de comando workspace-bindings CLI estão incluídas em Vincular um catálogo a um ou mais espaços de trabalho.

Importante

Se o seu workspace foi ativado para Unity Catalog automaticamente e o senhor tem um catálogoworkspace , os administradores do workspace são proprietários desse catálogo e têm todas as permissões nesse catálogo somente no workspace . Se o senhor desvincular esse catálogo ou vinculá-lo a outros catálogos, deverá conceder as permissões necessárias manualmente aos membros do grupo workspace admins como usuários individuais ou usando grupos de nível account, pois o grupo workspace admins é um grupo workspace-local. Para obter mais informações sobre os grupos account vs workspace-local groups, consulte Types of groups in Databricks.