Pular para o conteúdo principal

Políticas ABAC em nível de metastore (Beta)

info

Beta

As políticas de controle de acesso baseado em atributos (ABAC) no nível do metastore estão em Beta. Você pode anexar políticas ABAC no metastore, a raiz da hierarquia de objetos do Unity Catalog, para que uma única política seja aplicada a todos os catálogos no metastore.

O metastore é um escopo válido para políticas ABAC. Uma política associada ao metastore é aplicada a todos os catálogos, esquemas e objetos compatíveis com cada tipo de política no metastore, incluindo objetos criados após a definição da política. Isso oferece às equipes de governança um único local para definir regras de proteção de dados para toda a organização, sem precisar configurar ou replicar uma política para cada catálogo. Não é possível aplicar tags diretamente a um metastore, portanto, as políticas baseadas em tags correspondem a objetos pelas tags governadas aplicadas a catálogos e objetos de níveis inferiores.

Todos os quatro tipos de política ABAC são suportados no nível do metastore: filtro de linha, máscara de coluna, GRANT e DENY (Beta). Uma política em nível de metastore usa os mesmos campos, condições e comportamento de avaliação de qualquer outra política ABAC. Apenas o escopo difere.

Você pode criar e gerenciar políticas no nível do metastore com o Catalog Explorer, SQL ou a REST API. Para obter uma visão geral do ABAC e dos conceitos fundamentais, incluindo tags governadas e funções integradas como has_tag e has_tag_value, consulte Conceitos fundamentais para o controle de acesso baseado em atributos (ABAC).

Requisitos

Requisitos de compute

O uso de SQL para criar, modificar ou remover políticas em nível de metastore requer compute executando o Databricks Runtime 19 ou versão posterior.

Requisitos de permissão

  • Criar, atualizar e excluir políticas no nível do metastore requer a função de administrador do metastore.
  • Listar e visualizar políticas no nível do metastore exige READ METADATA ou a função de administrador do metastore.

Como funcionam as políticas no nível do metastore

Uma política no nível do metastore herda a hierarquia de objetos usando as mesmas regras que outras políticas ABAC:

  • Uma única política abrange todo o metastore. Uma política anexada ao metastore é avaliada em relação a cada objeto do tipo nomeado na cláusula FOR em todos os catálogos e esquemas no metastore.
  • Novos catálogos são cobertos automaticamente. Um catálogo criado após a definição da política é coberto quando corresponde às condições da política, sem nenhuma ação por parte do proprietário ou administrador do catálogo.
  • O comportamento corresponde às políticas de nível inferior. As políticas em nível de metastore preservam os recursos padrão e o comportamento de avaliação de cada tipo de política, como precedência de DENY, associações de workspace e composição de filtro de linha. Não há lógica de avaliação exclusiva para o escopo do metastore.

Um metastore não pode receber tags diretamente; portanto, se uma política em nível de metastore usar uma condição de tag, aplique a tag controlada a cada catálogo ou objeto de nível inferior que você deseja que corresponda à política.

Alvos de política com suporte

Uma política no nível do metastore pode se aplicar a (FOR) todos os tipos protegíveis que seu tipo de política oferece suporte no nível do catálogo:

As políticas GRANT e DENY não podem ser direcionadas a objetos que não sejam catálogos no metastore, como locais externos, credenciais de armazenamento, compartilhamentos, destinatários, provedores e conexões. Consulte Limitations.

Criar uma política em nível de metastore

Você pode criar uma política no nível do metastore usando a interface do usuário do Catalog Explorer, a instrução SQL CREATE POLICY ou a REST API.

  1. No seu Workspace do Databricks, clique em Ícone de data. Catalog .
  2. Na parte superior do painel Catalog , clique no ícone de Ícone de engrenagem. engrenagem e selecione Metastore .
  3. Clique na guia Políticas .
  4. Clique em Nova política .
  5. Preencha os campos de política necessários para o Tipo de política selecionado. O campo Escopo está definido como o metastore atual.
  6. Clique em Criar política .

Excluir uma política em nível de metastore

Gerencie políticas em nível de metastore na tab Policies do metastore.

  1. No seu Workspace do Databricks, clique em Ícone de data. Catalog .
  2. Na parte superior do painel Catalog , clique no ícone de Ícone de engrenagem. engrenagem e selecione Metastore .
  3. Clique na guia Políticas .
  4. Selecione a política.
  5. Clique em Excluir política .

Mostrar políticas

Use SHOW POLICIES para listar as políticas definidas em um objeto protegível. Use SHOW EFFECTIVE POLICIES para incluir também políticas herdadas de escopos pai, como políticas em nível de metastore que afetam um catálogo.

SQL
SHOW [EFFECTIVE] POLICIES ON METASTORE

O resultado inclui o nome da política, o tipo de política, o catálogo e o esquema do objeto protegível no qual cada política é definida, além do tipo e do nome completo desse objeto protegível. As políticas de nível de metastore são retornadas com on_securable_type definido como METASTORE e on_securable_fullname definido como o nome do metastore. A coluna Table é preenchida somente quando uma política é definida em uma tabela.

Exemplo:

SQL
SHOW POLICIES ON METASTORE;
Text
Policy Name     Policy Type  Catalog  Schema  Table  Comment                                                           on_securable_type  on_securable_fullname
-------------- ----------- ------- ------ ----- ---------------------------------------------------------------- ----------------- ---------------------
ssn_mask COLUMN_MASK NULL NULL NULL NULL METASTORE my_metastore
managed_access DENY NULL NULL NULL Prevent non-admins from managing permissions on sensitive tables METASTORE my_metastore

Descrever uma política

Use DESCRIBE POLICY para ver os detalhes de uma política específica no nível do metastore. Requer READ METADATA no metastore ou a função de administrador do metastore.

SQL
{ DESC | DESCRIBE } POLICY policy_name ON METASTORE

O resultado mostra as propriedades da política como pares key-value, incluindo nome, tipo de objeto protegível, nome de objeto protegível, principais, privilégios e a condição WHEN.

Query definições de política com o Information Schema

Para listar as definições de política de nível de metastore, faça uma query em SYSTEM.INFORMATION_SCHEMA.ABAC_POLICY_DEFINITIONS e filtre por on_securable_type:

SQL
SELECT *
FROM system.information_schema.abac_policy_definitions
WHERE on_securable_type = 'METASTORE';

As políticas em nível de metastore retornam METASTORE em on_securable_type, com catalog_name, schema_name e securable_name todos NULL. Para ver as colunas disponíveis e exemplos adicionais, consulte ABAC_POLICY_DEFINITIONS.

Cotas de política

Recursos

Tipo de política

Limite

Políticas por metastore (todos os objetos)

Filtro de linha / máscara de coluna

10.000

Políticas por metastore (todos os objetos)

GRANT / DENY

10.000

Políticas por metastore, anexadas diretamente

Filtro de linha / máscara de coluna

100

Políticas por metastore, anexadas diretamente

GRANT / DENY

100

Recursos

Tipo de política

Limite

Políticas por metastore (todos os objetos)

Filtro de linha / máscara de coluna

10.000

Políticas por metastore (todos os objetos)

GRANT / DENY

10.000

Políticas por metastore, anexadas diretamente

Filtro de linha / máscara de coluna

100

Políticas por metastore, anexadas diretamente

GRANT / DENY

100

As políticas de filtro de linha e máscara de coluna compartilham uma cota, e as políticas GRANT e DENY compartilham uma cota separada. Os dois grupos são contados independentemente.

Para obter detalhes sobre as cotas de políticas de filtro de linha e máscara de coluna, consulte Cotas de política. Para obter detalhes sobre as cotas de políticas GRANT, consulte Cotas de política. Para obter detalhes sobre as cotas de políticas DENY, consulte Cotas de política.

Log de auditoria

As operações de criação, alteração e exclusão de políticas no nível do metastore são registradas sob as mesmas ações createPolicy, deletePolicy, getPolicy e listPolicies que outras políticas ABAC, com on_securable_type definido como METASTORE. Consulte Registro em log de auditoria para ver exemplos de queries de log de auditoria.

Limitações

  • O SQL tem como alvo apenas o metastore atual. ON METASTORE sempre tem como alvo o metastore em que você está operando. Especificar um nome de metastore após ON METASTORE retorna um erro de sintaxe, e você não pode gerenciar políticas em um metastore diferente.

  • Alvos de GRANT e DENY. As políticas GRANT e DENY não podem ter como alvo objetos que não sejam catálogos no metastore, como locais externos, credenciais de armazenamento, compartilhamentos, destinatários, provedores e conexões. Para ver a hierarquia de objetos completa, consulte A hierarquia de objetos do Unity Catalog.

  • Esquema de informações. A view ABAC_POLICY_DEFINITIONS não tem uma coluna metastore_name. Uma política no nível do metastore é identificada por on_securable_type = METASTORE.

  • Recuperação de desastres. Recuperação de desastres gerenciada pelo Unity Catalog não replica políticas no nível de metastore ao replicar sua implantação do Databricks para uma região secundária. No caso de uma interrupção, os objetos protegidos anteriormente por uma política ABAC no nível de metastore são replicados sem proteção.

Mais informações