Controle de acesso baseado em atributos (ABAC) do Unity Catalog
Beta
Esse recurso está na versão beta.
Esta página descreve o controle de acesso baseado em atributos (ABAC) no Unity Catalog.
O que é ABAC?
O ABAC é um modelo de governança de dados que oferece controle de acesso flexível, dimensionável e centralizado no Databricks. O ABAC complementa o modelo de privilégio existente do Unity Catalog, permitindo que as políticas sejam definidas com base em tags governadas, que são aplicadas aos dados ativos. Isso simplifica a governança e fortalece a postura de segurança.
Os usuários com permissões MANAGE
ou propriedade de objetos só precisam definir políticas uma vez e podem aplicá-las de forma consistente em vários ativos de dados. As políticas são anexadas no nível do catálogo, do esquema ou da tabela e se aplicam automaticamente a todas as tabelas dentro desse escopo. Quando definidas em níveis mais altos, as políticas herdam objetos descendentes para secundários. As tags governadas nos dados ativos determinam quais políticas são aplicadas, permitindo que o controle de acesso se adapte dinamicamente.
Benefícios do ABAC
- Escalabilidade: gerencie os controles de acesso em escala, utilizando tags em vez de permissões individuais.
- Flexibilidade: Ajuste facilmente a governança atualizando tags ou políticas sem modificar cada ativo de dados.
- Governança centralizada: simplifique o gerenciamento de políticas por meio de um modelo unificado que abrange catálogos, esquemas e tabelas.
- Segurança aprimorada: aplique controles de acesso refinados dinamicamente com base nos atributos dos dados.
- Auditabilidade: Mantenha a visibilidade real do acesso aos dados por meio de uma auditoria abrangente logs.
Como funciona o ABAC
O ABAC no Unity Catalog usa tags governadas, políticas e funções definidas pelo usuário (UDFs) para impor um controle de acesso dinâmico e baseado em atributos. Os seguintes componentes e mecanismos são fundamentais para o ABAC:
-
Tags controladas: As tags controladas são definidas no nível account usando políticas de tag. Essas tags representam atributos como sensibilidade dos dados, classificação ou domínio de negócios e são atribuídas a tabelas, esquemas ou catálogos no Unity Catalog. Eles servem como atributos que impulsionam a aplicação de políticas. Consulte Políticas de tags e Aplicar tags a objetos protegíveis do Unity Catalog.
-
Políticas: As políticas são criadas e gerenciadas em três níveis hierárquicos em Unity Catalog:
- Nível de catálogo: aplique políticas abrangentes que afetem todos os esquemas e tabelas contidos.
- Nível do esquema: aplique políticas específicas a um esquema e suas tabelas.
- Nível da tabela: aplique políticas refinadas diretamente em tabelas individuais.
As políticas seguem um modelo de herança : quando uma política é definida no nível do catálogo ou do esquema, ela se aplica automaticamente a todos os objetos secundários, esquemas e tabelas dentro desse escopo. Isso permite que os administradores implementem uma governança de alta eficiência aplicando uma única política que governa grandes conjuntos de dados ativos. As políticas herdadas reduzem a redundância e promovem a aplicação consistente em toda a hierarquia de dados. A Databricks recomenda a definição de políticas no nível mais alto aplicável, geralmente o catálogo, para maximizar a eficiência da governança e reduzir a sobrecarga administrativa. Consulte Criar e gerenciar políticas de controle de acesso baseado em atributos (ABAC).
-
Funções definidas pelo usuário (UDFs): As UDFs são funções personalizadas definidas no nível do esquema e podem ser referenciadas globalmente no espaço de nomes do Unity Catalog. As UDFs são usadas em políticas para expressar lógicas complexas, como filtrar linhas ou mascarar valores de colunas com base em atributos. Por exemplo, um UDF chamado
filter_region
pode ser usado em uma política de filtro de linha para retornar apenas as linhas em queregion = 'EMEA'
. Consulte Funções definidas pelo usuário (UDFs) no Unity Catalog. -
Aplicação dinâmica: Quando um usuário tenta acessar um ativo de dados com tags, o Unity Catalog avalia as políticas aplicáveis com base nas tags e aplica os controles de acesso definidos.
Os usuários que são explicitamente excluídos de uma política podem continuar a executar ações como clonagem profunda e superficial e viagem do tempo nos dados subjacentes.
-
Registro de auditoria: Todas as operações em dados ativos marcados são capturadas e registradas na tabela do sistema de auditoria log, permitindo visibilidade abrangente e acompanhamento compliance. Consulte Auditoria logs.
Para saber como configurar o ABAC, consulte o tutorial: Configurar o ABAC.
Tipos de políticas
Há suporte para dois tipos de políticas ABAC:
-
As políticas de filtro de linha restringem o acesso a linhas individuais em uma tabela com base em seu conteúdo. Um UDF de filtro avalia se cada linha deve ser visível para um usuário. Essas políticas são úteis quando o acesso depende das características dos dados.
Exemplo de caso de uso: mostre somente linhas em uma tabela de transações de clientes em que a coluna da região corresponda a uma tag controlada, como
region=EMEA
. Isso permite que as equipes regionais vejam somente dados relevantes à sua geografia. -
As políticas de máscara de coluna controlam quais valores os usuários veem em colunas específicas. Um UDF de mascaramento pode retornar o valor real ou uma versão editada, com base nas tags governadas.
Exemplo de caso de uso: Mascarar uma coluna que contém números de telefone, a menos que a tabela tenha a tag
sensitivity=low
ou o usuário solicitante esteja em um grupo compliance. Os usuários sem acesso veem um valor nulo ou de espaço reservado, comoXXX-XXX-XXXX
.
Consulte Criar e gerenciar políticas de controle de acesso baseado em atributos (ABAC).
Limitações beta
As seguintes limitações se aplicam durante os estágios de pré-visualização do ABAC:
-
Um usuário que tem permissões
MODIFY
em uma tabela, mas não tem permissões de política de tag ASSIGN, pode descartar uma coluna que tenha uma tag controlada. Isso altera a estrutura da tabela e pode invalidar a política ABAC vinculada a essa coluna. -
O ABAC beta é ativado no nível workspace. Databricks não aplica políticas ABAC em catálogos quando eles são acessados a partir de espaços de trabalho não habilitados na versão beta.
-
Os usuários com as permissões necessárias de Delta Sharing podem compartilhar tabelas Delta protegidas por políticas ABAC, independentemente de como a política se aplica a eles. A política não rege o acesso do destinatário.
-
não são compatíveis.
-
Não há suporte para catálogos estrangeiros.
-
Não há suporte para visualização materializada e tabelas de transmissão.
-
Somente uma máscara de coluna ou filtro de linha pode ser aplicada a uma determinada coluna ou linha dentro da hierarquia de objetos. A aplicação de várias máscaras ou filtros pode tornar a tabela inacessível.
-
O ABAC não é compatível com Databricks on AWS GovCloud ou espaço de trabalho com controles FedRAMP Moderate compliance .