Práticas recomendadas para políticas ABAC

Considere as seguintes práticas recomendadas para design de políticas ABAC e governança de tags.

Padronizar atributos e nomenclatura

Estabeleça uma taxonomia de marcação consistente antes de criar políticas. Concorde com nomes de chave de tag, valores permitidos e convenções de nomenclatura entre as equipes. Um conjunto pequeno e bem definido de tags é mais fácil de gerenciar do que a proliferação de tags ad hoc.

Por exemplo, use uma única sensitivity marca com valores controlados (public, , internal, confidential, restricted) em vez de várias marcas sobrepostas, como is_sensitive, data_classe pii_level.

Controlar quem pode definir marcas

A marcação é um limite de segurança no ABAC. Se um usuário puder alterar marcas em um ativo de dados, ele poderá alterar quais políticas se aplicam a ele. Marcas incorretas ou ausentes podem deixar os dados desprotegidos ou inacessíveis porque as políticas só se aplicam quando as marcas certas estão em vigor.

  • Restrinja a criação e a modificação de tags a administradores de dados autorizados ou administradores de governança. Consulte marcas governadas para saber como configurar permissões de marca.
  • Audite as alterações nas tags regularmente usando a tabela do sistema de log de auditoria.

Definir regras de fallback para dados não classificados

Não suponha que todos os objetos estejam marcados corretamente. Use a automação para impor padrões de marcação e implementar mecanismos de fallback para dados não classificados:

  • Aplique uma marca restritiva padrão (como classification : unverified) a novos objetos até que um administrador de dados os examine.
  • Crie uma política que restrinja o acesso a objetos com a marca padrão.

Para obter um exemplo detalhado, consulte Impedir o acesso até que colunas confidenciais sejam marcadas.

Definir políticas no escopo mais alto aplicável

Anexe políticas no nível de catálogo ou esquema quando possível. As políticas de nível de tabela são raras e devem ser a exceção.

As políticas com escopo de catálogo são avaliadas em relação a todas as tabelas do catálogo e as políticas com escopo de esquema são avaliadas em relação a todas as tabelas no esquema. Quando você adiciona novas tabelas, as políticas existentes são aplicadas desde que suas etiquetas correspondam às condições da política.

Evitar expansão de política

O ABAC foi projetado para reduzir o número de regras de controle de acesso, não para aumentá-las. Se as equipes criarem muitas marcas e políticas, o resultado será difícil de gerenciar e auditar.

  • Analise seus requisitos de governança antes de criar políticas.
  • Comece com um pequeno número de políticas abrangentes, como mascaramento de PII em um catálogo ou filtragem de linhas por região.
  • Evite criar uma política separada para cada caso excepcional.
  • Examine as políticas periodicamente e consolide as sobrepostas.

Um grande número de políticas e condições complexas pode atrasar as verificações de autorização. Confira as considerações de desempenho para obter detalhes.

Auditar as concessões diretas e as políticas do ABAC GRANT em conjunto

Dica

Os privilégios efetivos de um usuário sobre um objeto protegível são a união de permissões concedidas diretamente e políticas ABAC GRANT. Ao examinar o acesso, verifique as concessões diretas e as políticas ABAC GRANT. Revisar apenas um pode lhe dar uma visão incompleta dos privilégios efetivos do usuário. Veja as políticas da ABACGRANT.

Preferir TO/EXCEPT para direcionamento principal

Para políticas de filtro de linha e máscara de coluna, use as cláusulas TO e EXCEPT da política para definir a quais usuários e grupos a política se aplica. Isso mantém a lógica UDF simples. A EXCEPT cláusula exclui inteiramente usuários específicos da política para que eles não estejam sujeitos a nenhuma filtragem ou máscara. Quando a lógica condicional complexa é necessária, funções de identidade como is_account_group_member() dentro de UDFs permanecem uma opção válida.

Para políticas GRANT, TO e EXCEPT são os únicos mecanismos para direcionar entidades principais, porque as políticas GRANT não utilizam UDFs.

Você também pode direcionar usuários por um atributo de identidade, como department. Quando o atributo já existe no seu provedor de identidade, uma política de mascaramento de coluna abrange todos os valores do atributo, assim você evita criar um grupo e uma política separados para cada valor. Certifique-se de que usuários sem valor para o atributo não tenham acesso por padrão. Veja Mascarar uma coluna baseada nos atributos do usuário que faz a consulta.

Para obter detalhes, consulte Abordagem para direcionar entidades.

Planejar a avaliação de política dinâmica

As políticas ABAC (Controle de Acesso Baseado em Atributos) são dinâmicas. Ao contrário dos filtros de linha no nível da tabela e das máscaras de coluna, que são diretamente visíveis na definição da tabela, as políticas ABAC avaliadas no momento da consulta baseiam-se na identidade do usuário, nas associações de grupo e nas tags no objeto de dados dentro do escopo da política. Isso pode dificultar que os consumidores de dados e os proprietários de tabelas entendam quais regras de acesso se aplicam a uma determinada tabela.

  • Use SHOW EFFECTIVE POLICIES para determinar o que se aplica a uma tabela específica.
  • Documente sua taxonomia de marcação, políticas e abordagem de gerenciamento de grupo para que as equipes possam entender o modelo de governança sem inspecionar cada política individualmente.
  • Se a transparência for essencial para uma tabela específica, considere usar filtros de linha no nível da tabela e máscaras de coluna para esse caso isolado. Certifique-se de resolver possíveis conflitos primeiro.

Saiba mais

Tópico Description
Considerações sobre desempenho Como o design de política do ABAC afeta o desempenho da consulta e como otimizar e testar suas políticas.
Quando usar ABAC versus filtros de linha e máscaras de coluna no nível da tabela Diferenças no escopo, na propriedade e em como escolher entre as duas abordagens.
OpenSharing e ABAC Como compartilhar tabelas protegidas pelo ABAC por meio do OpenSharing, lidar com políticas do lado do destinatário e configurar exibições locais de destinatário.
Usar o RBAC com o ABAC Como as políticas de ABAC se comportam quando os usuários assumem um perfil em RBAC, incluindo o comportamento da função de identidade (current_user(), is_member, is_account_group_member) e os padrões de uso combinado.