Segurança em Nível de Coluna e de Linha

Gerenciamento, Governança e Colaboração no Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

O Problema do Acesso em Nível de Tabela

Tabela users com acesso à tabela

  • A tabela users da Claro tem nomes, e-mails, scores de crédito e faixa de crédito
  • Conceder SELECT à role de analista expõe todas as colunas
  • Analistas de campanha não precisam dos scores brutos
  • Controle em nível de tabela não faz essa distinção
Gerenciamento, Governança e Colaboração no Snowflake

O que é Segurança em Nível de Coluna?

  • A coluna permanece no resultado — só o valor muda
  • Roles com privilégio veem valores reais; sem privilégio veem mascarados
  • O mascaramento ocorre na consulta conforme a role ativa = mascaramento dinâmico

Segurança em nível de coluna

Gerenciamento, Governança e Colaboração no Snowflake

Mascaramento Dinâmico de Dados

Diagrama com duas tabelas, uma com mascaramento dinâmico e outra sem

Gerenciamento, Governança e Colaboração no Snowflake

Criando e Aplicando uma Masking Policy

CREATE MASKING POLICY mask_credit_score
  AS (val NUMBER) RETURNS NUMBER ->
  CASE
    WHEN IS_ROLE_IN_SESSION('CREDIT_ADMIN') THEN val
    ELSE -9999
  END;

ALTER TABLE core.users
  MODIFY COLUMN credit_score
  SET MASKING POLICY mask_credit_score;
  • CURRENT_ROLE retorna a role primária ativa
1 https://docs.snowflake.com/en/sql-reference/sql/create-masking-policy#example-normal-masking-policy
Gerenciamento, Governança e Colaboração no Snowflake

Tokenização Externa

  • Alternativa ao mascaramento dinâmico
  • Exige provedor de tokenização e Função Externa de terceiros
  • Valores sensíveis viram tokens consistentes entre sistemas
  • Útil quando o mesmo token precisa ser reconhecido fora do Snowflake

Tokenização externa

1 https://docs.snowflake.com/en/user-guide/security-column-ext-token-use
Gerenciamento, Governança e Colaboração no Snowflake

O que é Segurança em Nível de Linha?

Duas tabelas mostrando que um analista só vê certas linhas

Gerenciamento, Governança e Colaboração no Snowflake

Como Funcionam as Row Access Policies

Diagrama mostrando uma consulta de US_ANALYST passando por uma Row Access Policy na tabela users, retornando só linhas dos EUA, e EU_ANALYST retornando só linhas da UE com a mesma consulta

  • A política avalia a role que consulta e aplica um filtro
Gerenciamento, Governança e Colaboração no Snowflake

Criando e Aplicando uma Row Access Policy

CREATE ROW ACCESS POLICY region_filter
  AS (region_col VARCHAR) RETURNS BOOLEAN ->
  CASE
    WHEN IS_ROLE_IN_SESSION('US_ANALYST') THEN region_col = 'US'
    WHEN IS_ROLE_IN_SESSION('EU_ANALYST') THEN region_col = 'EU'
    ELSE FALSE
  END;

ALTER TABLE core.users
  ADD ROW ACCESS POLICY region_filter ON (region);
Gerenciamento, Governança e Colaboração no Snowflake

Usando Mascaramento e Row Access Policies Juntos

Mascaramento dinâmico e políticas de acesso a linhas

Gerenciamento, Governança e Colaboração no Snowflake

Vamos praticar!

Gerenciamento, Governança e Colaboração no Snowflake

Preparing Video For Download...