Criar e gerenciar políticas de controle de acesso baseado em atributos (ABAC)
Beta
Esse recurso está na versão beta.
Esta página descreve como configurar políticas de filtro de linha e máscara de coluna no Unity Catalog. Para obter mais informações sobre o controle de acesso baseado em atributos (ABAC) e políticas, consulte Unity Catalog attribute-based access control (ABAC). Para aplicar tags a objetos, consulte Políticas de tags e Aplicar tags a objetos protegíveis do Unity Catalog.
Ativar ABAC
O ABAC beta é ativado no nível workspace. Databricks não pode aplicar o ABAC em operações de leitura em catálogos compartilhados, a menos que o ABAC também esteja ativado em cada workspace que acesse esses catálogos.
Para criar e gerenciar políticas ABAC, os betas de políticas ABAC e de tags devem estar ativados.
Para ativar o ABAC beta, faça o seguinte:
- Como administrador do site workspace, clique em seu nome de usuário na barra superior do site Databricks workspace.
- No menu, selecione Previews .
- Defina a opção Controle de acesso baseado em atributos como Ativado.
Para ativar a versão beta das políticas de tags, consulte Habilitar políticas de tags.
Criar uma política em um objeto
Permissões necessárias: MANAGE
no objeto ou no proprietário do objeto.
- Catalog Explorer
- SQL
-
Em seu site Databricks workspace, clique em
Catalog .
-
Selecione o objeto que determina o escopo da política, como um catálogo, esquema ou tabela.
-
Clique na guia Políticas .
-
Clique em Nova política .
-
Em Geral , insira um nome e uma descrição para sua política.
-
Em Princípios :
- Em Aplicado a... , pesquise e selecione os princípios que a política governará.
- Em Exceto por... , pesquise e selecione quaisquer diretores a serem excluídos da política. Por exemplo, você pode excluir um usuário que pertence a um grupo ao qual a política se aplica.
-
No alvo Type & :
- Em Tipo de política , selecione Filtro de linha ou Máscara de coluna .
- Em Alvo da política , selecione o escopo da política. Isso pode ser um escopo amplo, como um catálogo ou esquema inteiro, ou um escopo mais restrito, como tabelas ou colunas específicas dentro dele.
- Em Condição em nível de tabela , especifique a condição correspondente às tabelas às quais essa política se aplica. Por exemplo,
hasTag("tag")
ouhasTagValue("tag", "value")
.
-
Em Função , selecione uma função para essa política usar e insira os parâmetros necessários.
-
Clique em Criar política .
A seguir está a sintaxe geral para criar uma política:
CREATE POLICY <policy_name>
ON <securable_type> <securable_name>
COMMENT '<policy_description>'
-- One of the following:
ROW FILTER <udf_name>
| COLUMN MASK <udf_name> ON COLUMN <target_column>
TO <principal_name>[, <principal_name>, ...]
[EXCEPT <principal_name>[, <principal_name>, ...]]
FOR TABLES
[WHEN has_tag('<key>') OR has_tag_value('<key>', '<value>')]
MATCH COLUMNS has_tag('<key>') OR has_tag_value('<key>', '<value>') AS <alias>
USING COLUMNS <alias>[, <alias>, ...];
Este exemplo define uma política de filtro de linhas que exclui as linhas de clientes europeus das consultas feitas por analistas baseados nos EUA:
CREATE POLICY hide_eu_customers
ON SCHEMA prod.customers
COMMENT 'Hide rows with European customers from sensitive tables'
ROW FILTER non_eu_region
TO us_analysts
FOR TABLES
MATCH COLUMNS
hasTag('geo_region') AS region
USING COLUMNS (region);
Este exemplo define uma política de máscara de coluna que oculta os números de previdência social dos analistas dos EUA, exceto para aqueles do grupo admins
:
CREATE POLICY mask_SSN
ON SCHEMA prod.customers
COMMENT 'Mask social security numbers'
COLUMN MASK mask_SSN
TO us_analysts
EXCEPT admins
FOR TABLES
MATCH COLUMNS
hasTagValue('pii', 'ssn') AS ssn
ON COLUMN ssn;
Os dados das tags podem ser replicados globalmente. Não use nomes ou valores de tags que possam comprometer a segurança de seu recurso. Por exemplo, não use nomes de tags que contenham informações pessoais ou confidenciais.
Editar uma política
Permissões necessárias: MANAGE
no objeto ou no proprietário do objeto.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Selecione o objeto que determina o escopo da política, como um catálogo, esquema ou tabela.
- Clique na guia Políticas .
- Selecione a política e faça edições.
- Clique em Atualizar política .
REPLACE POLICY <policy_name>
ON <securable_type> <securable_name>
COMMENT '<policy_description>'
-- One of the following:
ROW FILTER <udf_name>
| COLUMN MASK <udf_name> ON COLUMN <target_column>
TO <principal_name>[, <principal_name>, ...]
[EXCEPT <principal_name>[, <principal_name>, ...]]
FOR TABLES
[WHEN has_tag('<key>') OR has_tag_value('<key>', '<value>')]
MATCH COLUMNS has_tag('<key>') OR has_tag_value('<key>', '<value>') AS <alias>
USING COLUMNS <alias>[, <alias>, ...];
Excluir uma política
Permissões necessárias: MANAGE
no objeto ou no proprietário do objeto.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Selecione o objeto que determina o escopo da política, como um catálogo, esquema ou tabela.
- Clique na guia Políticas .
- Selecione a política.
- Clique em Excluir política .
DROP POLICY <policy_name> ON <securable_type> <securable_name>