कॉलम-लेवल और रो-लेवल सिक्योरिटी

Snowflake Management, Governance & Collaboration

Emily Melhuish

Technical Curriculum Developer, Snowflake

Table-Level Access की समस्या

टेबल-स्तर ऐक्सेस के साथ Users तालिका

  • Claro की users तालिका में नाम, ईमेल, क्रेडिट स्कोर और क्रेडिट बैंड हैं
  • विश्लेषक role को SELECT देने पर सभी कॉलम दिखते हैं
  • अभियान विश्लेषकों को कच्चे क्रेडिट स्कोर की आवश्यकता नहीं
  • टेबल-लेवल ऐक्सेस यह भेद नहीं कर पाता
Snowflake Management, Governance & Collaboration

Column-Level Security क्या है?

  • कॉलम परिणाम में रहता है — सिर्फ़ मान बदलता है
  • privileged roles वास्तविक मान देखें; unprivileged roles masked मान देखें
  • क्वेरी समय पर role के आधार पर masking होती है = dynamic data masking

कॉलम-स्तरीय सुरक्षा आरेख

Snowflake Management, Governance & Collaboration

Dynamic Data Masking

दो तालिकाएँ: एक में dynamic data masking लागू है और एक में नहीं

Snowflake Management, Governance & Collaboration

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 सक्रिय primary role लौटाता है
1 https://docs.snowflake.com/en/sql-reference/sql/create-masking-policy#example-normal-masking-policy
Snowflake Management, Governance & Collaboration

External Tokenization

  • Dynamic Data Masking का विकल्प
  • थर्ड-पार्टी टोकनाइज़ेशन प्रोवाइडर और External Function की आवश्यकता
  • संवेदनशील मान टोकन से बदले जाते हैं, जो सिस्टम्स में एकसमान रहते हैं
  • जब Snowflake के बाहर भी वही टोकन पहचाना जाना हो, तब उपयोगी

बाहरी टोकनाइज़ेशन आरेख

1 https://docs.snowflake.com/en/user-guide/security-column-ext-token-use
Snowflake Management, Governance & Collaboration

Row-Level Security क्या है?

दो तालिकाएँ दिखाती हैं कि विश्लेषक केवल कुछ पंक्तियाँ देख सकता है

Snowflake Management, Governance & Collaboration

Row Access Policies कैसे काम करती हैं

आरेख: US_ANALYST की क्वेरी Row Access Policy से होकर गुजरती है और केवल US पंक्तियाँ लौटती हैं; EU_ANALYST के लिए वही क्वेरी केवल EU पंक्तियाँ लौटाती है

  • पॉलिसी क्वेरी करने वाली role का मूल्यांकन कर फ़िल्टर लगाती है
Snowflake Management, Governance & Collaboration

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);
Snowflake Management, Governance & Collaboration

Data Masking और Row Access Policies साथ में

Dynamic data masking और row access policies

Snowflake Management, Governance & Collaboration

Ayo berlatih!

Snowflake Management, Governance & Collaboration

Preparing Video For Download...