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.
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
Faça logon em um workspace vinculado ao metastore.
Clique em Catálogo.
À 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á.
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.
Clique em Atribuir a workspaces e insira ou localize os workspaces que quer atribuir.
(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.
Use o comando
catalogs
do grupo de comandosupdate
para definir oisolation mode
do catálogo comoISOLATED
:databricks catalogs update <my-catalog> \ --isolation-mode ISOLATED \ --profile <profile-name>
O
isolation-mode
padrão éOPEN
para todos os workspaces anexados ao metastore.Use o comando
workspace-bindings
do grupo de comandosupdate-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.