Limitar o acesso do catálogo a espaços de trabalho específicos
Este artigo apresenta a vinculação de catálogo de espaço de trabalho e descreve como vincular um catálogo do Catálogo Unity a um espaço de trabalho do Azure Databricks para impedir que outros espaços de trabalho em sua conta do Azure Databricks o acessem.
O que é vinculação de catálogo de espaço de trabalho?
Se você usar espaços de trabalho para isolar o acesso aos dados do usuário, poderá limitar o acesso ao catálogo a espaços de trabalho específicos em sua conta, também conhecidos como vinculação de catálogo de espaços de trabalho. O padrão é compartilhar o catálogo com todos os espaços de trabalho anexados ao metastore atual.
A exceção a esse padrão é o catálogo de espaços de trabalho que é criado automaticamente para todos os novos espaços de trabalho. Este catálogo de espaços de trabalho está vinculado apenas ao seu espaço de trabalho, a menos que você opte por conceder acesso a ele a outros espaços de trabalho. Para obter informações importantes sobre como atribuir permissões se você desvincular esse catálogo, consulte Desvincular um catálogo de um espaço de trabalho.
Você pode permitir acesso de leitura e gravação ao catálogo a partir de um espaço de trabalho ou pode especificar acesso somente leitura. Se você especificar somente leitura, todas as operações de gravação serão bloqueadas desse espaço de trabalho para esse catálogo.
Os casos de uso típicos para vincular um catálogo a espaços de trabalho específicos incluem:
- Garantir que os usuários só possam acessar dados de produção de um ambiente de espaço de trabalho de produção.
- Garantir que os usuários só possam processar dados confidenciais de um espaço de trabalho dedicado.
- Dando aos usuários acesso somente leitura aos dados de produção de um espaço de trabalho do desenvolvedor para habilitar o desenvolvimento e o teste.
Nota
Você também pode 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 privilegiados nesses espaços de trabalho. Consulte (Opcional) Atribuir um local externo a espaços de trabalho específicos e (Opcional) Atribuir uma credencial de armazenamento a espaços de trabalho específicos.
Exemplo de vinculação de catálogo de espaço de trabalho
Tomemos o exemplo do isolamento da produção e do desenvolvimento. Se você especificar que seus catálogos de dados de produção só podem ser acessados a partir de espaços de trabalho de produção, isso substituirá quaisquer concessões individuais emitidas aos usuários.
Neste 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 chamada prod_catalog
my_table
(usando GRANT SELECT ON my_table TO <user>
). Se o usuário tentar acessar my_table
no espaço de trabalho de desenvolvimento, ele receberá uma mensagem de erro. O usuário pode acessar my_table
somente a partir dos espaços de trabalho Prod ETL e Prod Analytics.
As associações de catálogo de espaço de trabalho 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 espaço de trabalho onde você emite a consulta. A linhagem de dados e as interfaces do usuário de pesquisa também mostram apenas os catálogos atribuídos ao espaço de trabalho (usando associações ou por padrão).
Vincular um catálogo a um ou mais espaços de trabalho
Para atribuir um catálogo a espaços de trabalho específicos, você pode usar o Gerenciador de Catálogos ou a CLI do Databricks.
Permissões necessárias: administrador da Metastore, proprietário do catálogo ou MANAGE
e USE CATALOG
no catálogo.
Nota
Os administradores de metastore podem ver todos os catálogos em uma metastore usando o Catalog Explorer, e os proprietários de catálogos podem ver todos os catálogos que possuem em uma metastore, independentemente de o catálogo estar atribuído ao espaço de trabalho atual. Os catálogos que não são atribuídos ao espaço de trabalho aparecem acinzentados e nenhum objeto filho é visível ou consultável.
Explorador de Catálogos
Faça login em um espaço de trabalho vinculado ao metastore.
Clique em Catálogo.
No painel Catálogo, à esquerda, clique no nome do catálogo.
O painel principal do Explorador de Catálogos assume como padrão a lista Catálogos . Você também pode selecionar o catálogo lá.
Na guia Espaços de trabalho, desmarque a caixa de seleção Todos os espaços de trabalho têm acesso.
Se o seu catálogo já estiver vinculado a um ou mais espaços de trabalho, essa caixa de seleção já está desmarcada.
Clique em Atribuir a espaços de trabalho e insira ou localize os espaços de trabalho que deseja atribuir.
(Opcional) Limite o acesso ao espaço de trabalho a somente leitura.
No menu Gerenciar Nível de Acesso, selecione Alterar acesso para somente leitura.
Você pode reverter essa seleção a qualquer momento editando o catálogo e selecionando Alterar acesso para ler e gravar.
Para revogar o acesso, vá para a guia Espaços de trabalho, selecione o espaço de trabalho e clique em Revogar.
CLI
Há dois grupos de comandos da CLI do Databricks e duas etapas necessárias para atribuir um catálogo a um espaço de trabalho.
Nos exemplos a seguir, substitua <profile-name>
pelo nome do seu perfil de configuração de autenticação do Azure Databricks. Ele deve incluir o valor de um token de acesso pessoal, além do nome da instância do espaço de trabalho e do ID do espaço de trabalho onde você gerou o token de acesso pessoal. Consulte Autenticação de token de acesso pessoal do Azure Databricks.
Use o
catalogs
comando do grupo deupdate
comandos para definir o do catálogoisolation mode
comoISOLATED
:databricks catalogs update <my-catalog> \ --isolation-mode ISOLATED \ --profile <profile-name>
O padrão
isolation-mode
éOPEN
para todos os espaços de trabalho anexados ao metastore.Use o
workspace-bindings
comando do grupo deupdate-bindings
comandos para atribuir os espaços 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
"add"
propriedades e"remove"
para adicionar ou remover associações de espaço de trabalho. O<binding-type>
pode ser (“BINDING_TYPE_READ_WRITE”
padrão) ou“BINDING_TYPE_READ_ONLY”
.
Para listar todas as atribuições de espaço de trabalho para um catálogo, use o workspace-bindings
comando do grupo de get-bindings
comandos:
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 do espaço de trabalho a um catálogo usando o Gerenciador de Catálogos ou o grupo de comandos da workspace-bindings
CLI estão incluídas em Vincular um catálogo a um ou mais espaços de trabalho.
Importante
Se seu espaço de trabalho foi habilitado para o Unity Catalog automaticamente e você tem um catálogo de 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 somente no espaço de trabalho. Se você desvincular esse catálogo ou vinculá-lo a outros catálogos, deverá conceder as permissões necessárias manualmente aos membros do grupo de administradores do espaço de trabalho como usuários individuais ou usando grupos no nível da conta, porque o grupo de administradores do espaço de trabalho é um grupo local do espaço de trabalho. Para obter mais informações sobre grupos de contas vs grupos locais de espaço de trabalho, consulte Diferença entre grupos de contas e grupos locais de espaço de trabalho.