Zabezpečení na úrovni sloupců a řádků

Správa, správa dat a spolupráce ve Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problém s přístupem na úrovni tabulky

Tabulka users s přístupem na úrovni tabulky

  • Tabulka users společnosti Claro obsahuje jména, e-maily, kreditní skóre a pásmo
  • Udělení SELECT roli analytika zpřístupní všechny sloupce
  • Kampaňoví analytici nepotřebují vidět surová kreditní skóre
  • Řízení přístupu na úrovni tabulky tento rozdíl neumožňuje
Správa, správa dat a spolupráce ve Snowflake

Co je zabezpečení na úrovni sloupců?

  • Sloupec zůstává ve výsledcích – mění se pouze hodnota
  • Privilegované role vidí skutečné hodnoty; neprivilegované role vidí maskované hodnoty
  • Maskování probíhá při dotazu podle dotazující se role = dynamické maskování dat

column_security_v2.png

Správa, správa dat a spolupráce ve Snowflake

Dynamické maskování dat

Diagram zobrazující dvě tabulky – jednu s dynamickým maskováním dat a jednu bez

Správa, správa dat a spolupráce ve Snowflake

Vytvoření a použití zásady maskování

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 vrátí aktuální primární roli
1 https://docs.snowflake.com/en/sql-reference/sql/create-masking-policy#example-normal-masking-policy
Správa, správa dat a spolupráce ve Snowflake

Externí tokenizace

  • Alternativa k dynamickému maskování dat
  • Vyžaduje poskytovatele tokenizace třetí strany a externí funkci
  • Citlivé hodnoty nahrazeny tokeny konzistentními napříč systémy
  • Vhodné, pokud musí být stejný token rozpoznán i mimo Snowflake

external_tokenization_v2.png

1 https://docs.snowflake.com/en/user-guide/security-column-ext-token-use
Správa, správa dat a spolupráce ve Snowflake

Co je zabezpečení na úrovni řádků?

Dvě tabulky ukazující, že analytik vidí pouze určité řádky

Správa, správa dat a spolupráce ve Snowflake

Jak fungují zásady přístupu k řádkům

Diagram znázorňující dotaz od US_ANALYST procházející zásadou přístupu k řádkům tabulky users – vráceny jsou pouze řádky pro USA; EU_ANALYST vrací ze stejného dotazu pouze řádky pro EU

  • Zásada vyhodnotí roli dotazujícího a použije filtr
Správa, správa dat a spolupráce ve Snowflake

Vytvoření a použití zásady přístupu k řádkům

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);
Správa, správa dat a spolupráce ve Snowflake

Kombinace maskování dat a zásad přístupu k řádkům

Dynamické maskování dat a zásady přístupu k řádkům

Správa, správa dat a spolupráce ve Snowflake

Pojďme procvičovat!

Správa, správa dat a spolupráce ve Snowflake

Preparing Video For Download...