Pular para o conteúdo
Lucas Lessa
Voltar para as notícias
DatabricksGAImpacto: Alto

Controle de acesso ABAC entre motores agora está disponível no Databricks

O controle de acesso baseado em atributos (ABAC) entre motores está geral e permite aplicar políticas, filtros de linha e máscaras de coluna ao ler tabelas do Unity Catalog de fora do Databricks.

O que mudou

O controle de acesso baseado em atributos (ABAC) entre motores já está disponível em GA. Motores externos podem ler tabelas do Unity Catalog aplicando políticas de acesso, filtros de linha e máscaras de coluna de forma dinâmica, com o processamento executado por uma camada de computação serverless do Databricks.

Para que serve

Imagine que você precisa consultar dados do Unity Catalog a partir de um motor externo como Apache Spark ou Iceberg, mas mantendo regras estritas de segurança e privacidade. Com esta novidade, você pode:

  • Consultar tabelas do Unity Catalog a partir de ferramentas e motores externos.
  • Garantir que políticas de ABAC, filtros de linha e máscaras de coluna sejam aplicados de forma consistente.
  • Auditar os custos de computação serverless usados para processar essas políticas.

Como usar

Para habilitar o recurso em uma tabela Delta gerenciada nova, utilize o comando SQL:

CREATE TABLE meu_catalogo.meu_schema.minha_tabela (id INT, name STRING)
USING delta
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');

O que acontece nesse código:

  1. Cria uma nova tabela Delta gerenciada.
  2. Habilita a propriedade de commits do catálogo necessária para o suporte a ABAC.

Para atualizar uma tabela existente, execute:

ALTER TABLE meu_catalogo.meu_schema.minha_tabela
SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');

O que acontece nesse código:

  1. Altera as propriedades de uma tabela Delta gerenciada existente.
  2. Adiciona o suporte ao recurso de commits do catálogo.

Para consultar a tabela usando Apache Spark com Delta, configure as propriedades de sessão e o catálogo:

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "org.apache.spark.sql.delta.catalog.DeltaCatalog",
"spark.sql.catalog.meu_catalogo": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.meu_catalogo.uri": "https://workspace-url.cloud.databricks.com",
"spark.sql.catalog.meu_catalogo.ServerSidePlanning.enabled": "true",
"spark.sql.defaultCatalog": "meu_catalogo"

O que acontece nesse código:

  1. Configura as extensões e catálogos do Spark para usar o Unity Catalog.
  2. Habilita o planejamento no lado do servidor (ServerSidePlanning.enabled) para enforcement de segurança.

Limitações e requisitos

  • Disponível de forma geral (GA).
  • É necessário habilitar o acesso externo a dados no metastore do Unity Catalog e conceder a permissão EXTERNAL_USE_SCHEMA.
  • Apenas operações de leitura são suportadas quando controles de acesso granular estão ativos.
  • Visualizações dinâmicas, projeção de colunas VARIANT, filtragem em colunas BINARY e funções de máscara de coluna com tipo de retorno diferente da coluna original não são suportadas.
Ver nota oficial do Databricks

Cross-engine attribute-based access controls (ABAC) is now generally available

Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.

Relacionadas