जेफिरनेट लोगो

Amazon Redshift में डायनामिक डेटा मास्किंग समर्थन डेटा गोपनीयता और अनुपालन प्राप्त करने में कैसे मदद करता है

दिनांक:

अमेज़न रेडशिफ्ट एक पूरी तरह से प्रबंधित, पेटाबाइट-स्केल, बड़े पैमाने पर समानांतर डेटा वेयरहाउस है जो सरल संचालन और उच्च प्रदर्शन प्रदान करता है। यह मानक एसक्यूएल और आपके मौजूदा बिजनेस इंटेलिजेंस (बीआई) टूल्स का उपयोग करके आपके सभी डेटा का विश्लेषण करने के लिए तेज़, सरल और लागत प्रभावी बनाता है। आज, अमेज़ॅन रेडशिफ्ट सबसे व्यापक रूप से इस्तेमाल किया जाने वाला क्लाउड डेटा वेयरहाउस है।

अमेज़ॅन रेडशिफ्ट में डायनामिक डेटा मास्किंग (डीडीएम) समर्थन (पूर्वावलोकन) आपको अपने अमेज़ॅन रेडशिफ्ट डेटा वेयरहाउस में संवेदनशील डेटा की सुरक्षा की प्रक्रिया को सरल बनाने में सक्षम बनाता है। अब आप SQL इंटरफ़ेस के माध्यम से अपनी कार्य भूमिका या अनुमति अधिकारों और डेटा संवेदनशीलता के स्तर के आधार पर डेटा की सुरक्षा के लिए DDM का उपयोग कर सकते हैं। अमेज़ॅन रेडशिफ्ट में डीडीएम समर्थन (पूर्वावलोकन) आपको अतिरिक्त भंडारण लागतों के बिना अपने डेटा वेयरहाउस में तालिकाओं के भीतर स्तंभ मानों को छिपाने, अस्पष्ट करने या छद्म नाम देने में सक्षम बनाता है। यह आपको सुसंगत, प्रारूप-संरक्षित और अपरिवर्तनीय नकाबपोश डेटा मानों को परिभाषित करने की अनुमति देने के लिए कॉन्फ़िगर करने योग्य है।

अमेज़ॅन रेडशिफ्ट में डीडीएम समर्थन (पूर्वावलोकन) विनियामक या अनुपालन आवश्यकताओं के लिए डेटा को मास्क करने या आंतरिक गोपनीयता मानकों को बढ़ाने के लिए आपकी आवश्यकता का समर्थन करने के लिए एक मूल सुविधा प्रदान करता है। स्थैतिक डेटा मास्किंग की तुलना में जहां अंतर्निहित डेटा को स्थायी रूप से बदल दिया जाता है या संपादित किया जाता है, अमेज़ॅन रेडशिफ्ट में डीडीएम समर्थन (पूर्वावलोकन) आपको उपयोगकर्ता विशेषाधिकार के आधार पर पारगमन में संवेदनशील डेटा के प्रदर्शन में अस्थायी रूप से हेरफेर करने में सक्षम बनाता है, मूल डेटा को आराम पर छोड़ देता है बरकरार। आप मास्किंग नीतियों के माध्यम से डेटा तक पहुंच को नियंत्रित करते हैं जो किसी दिए गए उपयोगकर्ता या भूमिका के लिए कस्टम ऑबफसकेशन नियम लागू करती हैं। इस तरह, आप अंतर्निहित डेटा में बदलाव किए बिना या SQL क्वेरी को संपादित किए बिना बदलती गोपनीयता आवश्यकताओं का जवाब दे सकते हैं।

Amazon Redshift में DDM समर्थन (पूर्वावलोकन) के साथ, आप निम्न कार्य कर सकते हैं:

  • मास्किंग नीतियों को परिभाषित करें जो कस्टम अस्पष्टता नीतियों को लागू करती हैं (उदाहरण के लिए, क्रेडिट कार्ड, PII प्रविष्टियों, HIPAA या GDPR आवश्यकताओं, और अधिक को संभालने के लिए मास्किंग नीतियां)
  • मास्किंग नीतियों को लागू करने के लिए क्वेरी समय पर डेटा को रूपांतरित करें
  • मास्किंग नीतियां संलग्न करें भूमिकाओं या उपयोगकर्ता
  • एक तालिका में एक ही कॉलम में अस्पष्टता के विभिन्न स्तरों के साथ कई मास्किंग नीतियां संलग्न करें और उन्हें संघर्षों से बचने के लिए प्राथमिकताओं के साथ विभिन्न भूमिकाओं के लिए असाइन करें
  • अपनी मास्किंग नीति बनाते समय सशर्त स्तंभों का उपयोग करके सेल-स्तरीय मास्किंग लागू करें
  • डेटा को आंशिक रूप से या पूरी तरह से संपादित करने के लिए मास्किंग नीतियों का उपयोग करें, या उपयोगकर्ता परिभाषित कार्यों (UDFs) का उपयोग करके इसे हैश करें

अमेज़न रेडशिफ्ट में डीडीएम सपोर्ट (निजी बीटा) पर हमारे ग्राहकों का क्या कहना है:

"बैफल डेटा सुरक्षा प्लेटफ़ॉर्म के माध्यम से उद्यमों के लिए डेटा-केंद्रित सुरक्षा प्रदान करता है जो अनुप्रयोगों के लिए पारदर्शी है और डेटा सुरक्षा के लिए अद्वितीय है। हमारा मिशन हर डेटा पाइपलाइन में डेटा सुरक्षा को मूल रूप से बुनना है। पहले, Amazon Redshift डेटा स्रोत पर डेटा मास्किंग लागू करने के लिए, हमें डेटा को Amazon S3 बकेट में चरणबद्ध करना पड़ता था। अब, अमेज़ॅन रेडशिफ्ट डायनेमिक डेटा मास्किंग क्षमता का उपयोग करके, हमारे ग्राहक संवेदनशील डेटा को एनालिटिक्स पाइपलाइन में सुरक्षित अंतर्ग्रहण से लेकर जिम्मेदार खपत तक सुरक्षित रख सकते हैं, जिससे उल्लंघनों का जोखिम कम हो जाता है।

-अमीश दिवतिया, बैफल के सीईओ और सह-संस्थापक

“EnergyAustralia एक प्रमुख ऑस्ट्रेलियाई ऊर्जा रिटेलर और जनरेटर है, जिसका मिशन ग्राहकों के लिए स्वच्छ ऊर्जा संक्रमण का नेतृत्व करना है जो सभी के लिए विश्वसनीय, सस्ती और टिकाऊ हो। हम अपने व्यवसाय के सभी कोनों को डेटा और एनालिटिक्स क्षमताओं के साथ सक्षम करते हैं जिनका उपयोग व्यावसायिक प्रक्रियाओं को अनुकूलित करने और हमारे ग्राहकों के अनुभव को बढ़ाने के लिए किया जाता है। हमारे ग्राहकों के डेटा को सुरक्षित रखना हमारी टीमों की सर्वोच्च प्राथमिकता है। अतीत में, इसमें कस्टम निर्मित सुरक्षा नीतियों की कई परतें शामिल थीं जो विश्लेषकों के लिए आवश्यक डेटा खोजने के लिए इसे बोझिल बना सकती थीं। नई AWS डायनेमिक डेटा मास्किंग सुविधा हमारी सुरक्षा प्रक्रियाओं को काफी सरल कर देगी, इसलिए हम प्रशासनिक ओवरहेड को कम करते हुए ग्राहक डेटा को सुरक्षित रखना जारी रखेंगे।

-विलियम रॉबसन, डेटा सॉल्यूशंस डिज़ाइन लीड, एनर्जीऑस्ट्रेलिया

उदाहरण

हमारे उपयोग के उदाहरण के लिए, एक खुदरा कंपनी यह नियंत्रित करना चाहती है कि वे उपयोगकर्ताओं को उनके विशेषाधिकार के आधार पर क्रेडिट कार्ड नंबर कैसे दिखाते हैं। वे इस उद्देश्य के लिए डेटा की नकल भी नहीं करना चाहते हैं। उनकी निम्नलिखित आवश्यकताएं हैं:

  • ग्राहक सेवा के उपयोगकर्ता ग्राहक सत्यापन के लिए क्रेडिट कार्ड के पहले छह अंक और अंतिम चार अंक देखने में सक्षम होने चाहिए
  • फ्रॉड प्रिवेंशन के उपयोगकर्ता कच्चे क्रेडिट कार्ड नंबर को तभी देख पाएंगे जब इसे धोखाधड़ी के रूप में चिह्नित किया गया हो
  • ऑडिटिंग के उपयोगकर्ता कच्चे क्रेडिट कार्ड नंबर को देखने में सक्षम होना चाहिए
  • अन्य सभी उपयोगकर्ता क्रेडिट कार्ड नंबर देखने में सक्षम नहीं होने चाहिए

समाधान अवलोकन

समाधान में अलग-अलग मास्किंग नियमों के साथ मास्किंग नीतियां बनाना और संभावित विरोधों को दूर करने के लिए निर्दिष्ट प्राथमिकता के साथ समान भूमिका और तालिका में एक या अधिक संलग्न करना शामिल है। ये नीतियाँ खुदरा विक्रेताओं की सुरक्षा आवश्यकताओं का अनुपालन करने के लिए परिणामों को छद्म नाम दे सकती हैं या चुनिंदा रूप से परिणामों को रद्द कर सकती हैं। हम एक तालिका से जुड़ी कई मास्किंग नीतियों को एक के रूप में संदर्भित करते हैं बहु-मॉडल मास्किंग नीति. एक बहु-मॉडल मास्किंग नीति में तीन भाग होते हैं:

  • एक डेटा मास्किंग नीति जो डेटा अस्पष्टता नियमों को परिभाषित करती है
  • व्यावसायिक मामले के आधार पर विभिन्न पहुँच स्तरों वाली भूमिकाएँ
  • संघर्ष समाधान के लिए प्राथमिकता के साथ उपयोगकर्ता या भूमिका और तालिका संयोजन पर एकाधिक मास्किंग नीतियों को संलग्न करने की क्षमता

निम्नलिखित आरेख दिखाता है कि Amazon Redshift नीतियों में DDM समर्थन (पूर्वावलोकन) हमारे खुदरा उपयोग के मामले में भूमिकाओं और उपयोगकर्ताओं के साथ कैसे काम करता है।

एकाधिक भूमिकाओं वाले उपयोगकर्ता के लिए, उच्चतम अनुलग्नक प्राथमिकता वाली मास्किंग नीति का उपयोग किया जाता है। उदाहरण के लिए, निम्नलिखित उदाहरण में, केन का हिस्सा है Public और FrdPrvnt भूमिका। क्यों कि FrdPrvnt भूमिका में उच्च लगाव प्राथमिकता है, card_number_conditional_mask लागू किया जाएगा।

.. पूर्वापेक्षाएँ

इस समाधान को लागू करने के लिए, आपको निम्नलिखित पूर्वापेक्षाएँ पूरी करनी होंगी:

  1. AWS खाता है।
  2. डीडीएम समर्थन (पूर्वावलोकन) या डीडीएम समर्थन (पूर्वावलोकन) के साथ एक सर्वर रहित कार्यसमूह के साथ अमेज़ॅन रेडशिफ्ट क्लस्टर का प्रावधान किया गया है।
    1. प्रावधानित या सर्वर रहित Amazon Redshift कंसोल पर नेविगेट करें और चुनें पूर्वावलोकन क्लस्टर बनाएँ.
    2. क्लस्टर बनाएं विज़ार्ड में, पूर्वावलोकन ट्रैक चुनें।
  3. सुपरसुअर विशेषाधिकार है, या sys:secadmin चरण 2 में बनाए गए Amazon Redshift डेटा वेयरहाउस पर भूमिका।

डेटा तैयार करना

हमारे उपयोग के मामले को स्थापित करने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. Amazon Redshift कंसोल पर, चुनें एक्सप्लोरर में क्वेरी संपादक v2.
    यदि आप परिचित हैं एसक्यूएल नोटबुक, आप कर सकते हैं ज्यूपिटर नोटबुक डाउनलोड करें प्रदर्शन के लिए, और इसे जल्दी से आरंभ करने के लिए आयात करें।
  2. तालिका बनाएँ और सामग्री आबाद करें।
  3. उपयोगकर्ता बनाएँ।
    -- 1- Create the credit cards table
    CREATE TABLE credit_cards (
    customer_id INT,
    is_fraud BOOLEAN,
    credit_card TEXT
    );
    -- 2- Populate the table with sample values
    INSERT INTO credit_cards
    VALUES
    (100,'n', '453299ABCDEF4842'),
    (100,'y', '471600ABCDEF5888'),
    (102,'n', '524311ABCDEF2649'),
    (102,'y', '601172ABCDEF4675'),
    (102,'n', '601137ABCDEF9710'),
    (103,'n', '373611ABCDEF6352')
    ;
    --run GRANT to grant SELECT permission on the table
    GRANT SELECT ON credit_cards TO PUBLIC;
    --create four users
    CREATE USER Kate WITH PASSWORD '1234Test!';
    CREATE USER Ken WITH PASSWORD '1234Test!';
    CREATE USER Bob WITH PASSWORD '1234Test!';
    CREATE USER Jane WITH PASSWORD '1234Test!';

समाधान लागू करें

सुरक्षा आवश्यकताओं को पूरा करने के लिए, हमें यह सुनिश्चित करने की आवश्यकता है कि प्रत्येक उपयोगकर्ता एक ही डेटा को उनके द्वारा दिए गए विशेषाधिकारों के आधार पर अलग-अलग तरीकों से देखे। ऐसा करने के लिए, हम निम्नानुसार मास्किंग नीतियों के साथ संयुक्त उपयोगकर्ता भूमिकाओं का उपयोग करते हैं:

  1. उपयोगकर्ता भूमिकाएँ बनाएँ और अलग-अलग उपयोगकर्ताओं को अलग-अलग भूमिकाएँ दें:
    -- 1. Create User Roles
    CREATE ROLE cust_srvc_role;
    CREATE ROLE frdprvnt_role;
    CREATE ROLE auditor_role;
    -- note that public role exist by default. -- Grant Roles to Users
    GRANT ROLE cust_srvc_role to Kate;
    GRANT ROLE frdprvnt_role to Ken;
    GRANT ROLE auditor_role to Bob;
    -- note that regualr_user is attached to public role by default.

  2. मास्किंग नीतियां बनाएं:
    -- 2. Create Masking policies -- 2.1 create a masking policy that fully masks the credit card number
    CREATE MASKING POLICY Mask_CC_Full
    WITH (credit_card VARCHAR(256))
    USING ('XXXXXXXXXXXXXXXX'); --2.2- Create a scalar SQL user-defined function(UDF) that partially obfuscates credit card number, only showing the first 6 digits and the last 4 digits
    CREATE FUNCTION REDACT_CREDIT_CARD (text) returns text
    immutable
    as $$ select left($1,6)||'XXXXXX'||right($1,4)
    $$ language sql; --2.3- create a masking policy that applies the REDACT_CREDIT_CARD function
    CREATE MASKING POLICY Mask_CC_Partial
    WITH (credit_card VARCHAR(256))
    USING (REDACT_CREDIT_CARD(credit_card)); -- 2.4- create a masking policy that will display raw credit card number only if it is flagged for fraud CREATE MASKING POLICY Mask_CC_Conditional
    WITH (is_fraud BOOLEAN, credit_card VARCHAR(256))
    USING (CASE WHEN is_fraud THEN credit_card ELSE Null END); -- 2.5- Create masking policy that will show raw credit card number.
    CREATE MASKING POLICY Mask_CC_Raw
    WITH (credit_card varchar(256))
    USING (credit_card);

  3. उपयोगकर्ता या भूमिका के लिए टेबल या कॉलम पर मास्किंग नीतियां संलग्न करें:
    -- 3. ATTACHING MASKING POLICY
    -- 3.1- make the Mask_CC_Full the default policy for all users
    -- all users will see this masking policy unless a higher priority masking policy is attached to them or their role ATTACH MASKING POLICY Mask_CC_Full
    ON credit_cards(credit_card)
    TO PUBLIC; -- 3.2- attach Mask_CC_Partial to the cust_srvc_role role
    --users with the cust_srvc_role role can see partial credit card information
    ATTACH MASKING POLICY Mask_CC_Partial
    ON credit_cards(credit_card)
    TO ROLE cust_srvc_role
    PRIORITY 10; -- 3.3- Attach Mask_CC_Conditional masking policy to frdprvnt_role role
    -- users with frdprvnt_role role can only see raw credit card if it is fraud
    ATTACH MASKING POLICY Mask_CC_Conditional
    ON credit_cards(credit_card)
    USING (is_fraud, credit_card)
    TO ROLE frdprvnt_role
    PRIORITY 20; -- 3.4- Attach Mask_CC_Raw masking policy to auditor_role role
    -- users with auditor_role role can see raw credit card numbers
    ATTACH MASKING POLICY Mask_CC_Raw
    ON credit_cards(credit_card)
    TO ROLE auditor_role
    PRIORITY 30;

समाधान का परीक्षण करें

आइए पुष्टि करें कि मास्किंग नीतियां बनाई और अटैच की गई हैं.

  1. जांचें कि मास्किंग नीतियां निम्नलिखित कोड के साथ बनाई गई हैं:
    -- 1.1- Confirm the masking policies are created
    SELECT * FROM svv_masking_policy;

  2. जांचें कि मास्किंग नीतियां संलग्न हैं:
    -- 1.2- Verify attached masking policy on table/column to user/role.
    SELECT * FROM svv_attached_masking_policy;

    अब हम परीक्षण कर सकते हैं कि अलग-अलग उपयोगकर्ता एक ही डेटा को उनकी भूमिकाओं के आधार पर अलग-अलग तरीके से देख सकते हैं।

  3. परीक्षण करें कि ग्राहक सेवा एजेंट क्रेडिट कार्ड नंबर के केवल पहले छह अंक और अंतिम चार अंक देख सकते हैं:
    -- 1- Confirm that customer service agent can only view the first 6 digits and the last 4 digits of the credit card number
    SET SESSION AUTHORIZATION Kate;
    SELECT * FROM credit_cards;

  4. परीक्षण करें कि धोखाधड़ी रोकथाम उपयोगकर्ता केवल कच्चे क्रेडिट कार्ड नंबर को तभी देख सकते हैं जब इसे धोखाधड़ी के रूप में फ़्लैग किया गया हो:
    -- 2- Confirm that Fraud Prevention users can only view fraudulent credit card number
    SET SESSION AUTHORIZATION Ken;
    SELECT * FROM credit_cards;

  5. परीक्षण करें कि ऑडिटर उपयोगकर्ता कच्चे क्रेडिट कार्ड नंबर देख सकते हैं:
    -- 3- Confirm the auditor can view RAW credit card number
    SET SESSION AUTHORIZATION Bob;
    SELECT * FROM credit_cards;

  6. परीक्षण करें कि सामान्य उपयोगकर्ता क्रेडिट कार्ड नंबर के किसी भी अंक को नहीं देख सकते हैं:
    -- 4- Confirm that regular users can not view any digit of the credit card number
    SET SESSION AUTHORIZATION Jane;
    SELECT * FROM credit_cards;

मास्किंग नीति को संशोधित करें

किसी मौजूदा मास्किंग नीति को संशोधित करने के लिए, आपको पहले इसे भूमिका से अलग करना होगा और फिर इसे छोड़ कर फिर से बनाना होगा।

हमारे उपयोग के मामले में, व्यवसाय ने दिशा बदल दी और निर्णय लिया कि ग्राहक सेवा एजेंटों को केवल क्रेडिट कार्ड नंबर के अंतिम चार अंक देखने की अनुमति दी जानी चाहिए।

  1. नीति को अलग करें और छोड़ें:
    --reset session authorization to the default
    RESET SESSION AUTHORIZATION;
    --detach masking policy from the credit_cards table
    DETACH MASKING POLICY Mask_CC_Partial
    ON credit_cards(credit_card)
    FROM ROLE cust_srvc_role;
    -- Drop the masking policy
    DROP MASKING POLICY Mask_CC_Partial;
    -- Drop the function used in masking
    DROP FUNCTION REDACT_CREDIT_CARD (TEXT);

  2. नीति को फिर से बनाएं और इच्छित उपयोगकर्ता या भूमिका के लिए तालिका या कॉलम पर नीति को दोबारा जोड़ें। ध्यान दें कि इस बार हमने एक स्केलर पायथन यूडीएफ बनाया है। ए बनाना संभव है एसक्यूएल, अजगर, तथा lambda यूडीएफ आपके उपयोग के मामले पर आधारित है।
    -- Re-create the policy and re-attach it to role -- Create a user-defined function that partially obfuscates credit card number, only showing the last 4 digits
    CREATE FUNCTION REDACT_CREDIT_CARD (credit_card TEXT) RETURNS TEXT IMMUTABLE AS $$ import re regexp = re.compile("^([0-9A-F]{6})[0-9A-F]{5,6}([0-9A-F]{4})") match = regexp.search(credit_card) if match != None: last = match.group(2) else: last = "0000" return "XXXXXXXXXXXX{}".format(last)
    $$ LANGUAGE plpythonu; --Create a masking policy that applies the REDACT_CREDIT_CARD function
    CREATE MASKING POLICY Mask_CC_Partial
    WITH (credit_card VARCHAR(256))
    USING (REDACT_CREDIT_CARD(credit_card)); -- attach Mask_CC_Partial to the cust_srvc_role role
    -- users with the cust_srvc_role role can see partial credit card information
    ATTACH MASKING POLICY Mask_CC_Partial
    ON credit_cards(credit_card)
    TO ROLE cust_srvc_role
    PRIORITY 10;

  3. परीक्षण करें कि ग्राहक सेवा एजेंट क्रेडिट कार्ड नंबर के केवल अंतिम चार अंक देख सकते हैं:
    -- Confirm that customer service agent can only view the last 4 digits of the credit card number
    SET SESSION AUTHORIZATION Kate;
    SELECT * FROM credit_cards;

क्लीन अप

जब आप समाधान पूरा कर लें, तो अपने संसाधनों को साफ़ करें:

  1. तालिका से मास्किंग नीतियों को अलग करें:
    -- Cleanup
    --reset session authorization to the default
    RESET SESSION AUTHORIZATION; --1.	Detach the masking policies from table
    DETACH MASKING POLICY Mask_CC_Full
    ON credit_cards(credit_card)
    FROM PUBLIC;
    DETACH MASKING POLICY Mask_CC_Partial
    ON credit_cards(credit_card)
    FROM ROLE cust_srvc_role;
    DETACH MASKING POLICY Mask_CC_Conditional
    ON credit_cards(credit_card)
    FROM ROLE frdprvnt_role;
    DETACH MASKING POLICY Mask_CC_Raw
    ON credit_cards(credit_card)
    FROM ROLE auditor_role;

  2. मास्किंग नीतियों को छोड़ें:
    -- 2.	Drop the masking policies DROP MASKING POLICY Mask_CC_Full;
    DROP MASKING POLICY Mask_CC_Partial;
    DROP MASKING POLICY Mask_CC_Conditional;
    DROP MASKING POLICY Mask_CC_Raw;

  3. प्रत्येक उपयोगकर्ता और भूमिका को रद्द करें और छोड़ें:
    -- 3.	Revoke/Drop - role/user REVOKE ROLE cust_srvc_role from Kate;
    REVOKE ROLE frdprvnt_role from Ken;
    REVOKE ROLE auditor_role from Bob; DROP ROLE cust_srvc_role;
    DROP ROLE frdprvnt_role;
    DROP ROLE auditor_role; DROP USER Kate;
    DROP USER Ken;
    DROP USER Bob;
    DROP USER Jane;

  4. फ़ंक्शन और तालिका छोड़ें:
    -- 4.	Drop function and table DROP FUNCTION REDACT_CREDIT_CARD (credit_card TEXT);
    DROP TABLE credit_cards;

विचार और सर्वोत्तम अभ्यास

निम्नलिखित पर विचार करें:

  • हमेशा सार्वजनिक उपयोगकर्ता से जुड़ी एक डिफ़ॉल्ट नीति बनाएं। यदि आप एक नया उपयोगकर्ता बनाते हैं, तो उनके पास हमेशा एक न्यूनतम नीति संलग्न होगी। यह इच्छित सुरक्षा मुद्रा को लागू करेगा।
  • याद रखें कि अमेज़ॅन रेडशिफ्ट में डीडीएम नीतियां हमेशा आवेदक अनुमति सम्मेलन का पालन करती हैं, परिभाषित नहीं (अधिक जानकारी के लिए, देखें संग्रहीत प्रक्रियाओं के लिए सुरक्षा और विशेषाधिकार ). कहा जा रहा है कि मास्किंग नीतियां उपयोगकर्ता या इसे चलाने वाली भूमिका के आधार पर लागू होती हैं।
  • सर्वोत्तम प्रदर्शन के लिए, यदि संभव हो तो स्केलर SQL UDF का उपयोग करके मास्किंग फ़ंक्शन बनाएं। स्केलर यूडीएफ का प्रदर्शन आमतौर पर उस क्रम में एसक्यूएल से पायथन से लैम्ब्डा के क्रम में जाता है। आम तौर पर, SQL UDF, Python UDFs से बेहतर प्रदर्शन करता है और बाद वाला स्केलर से बेहतर प्रदर्शन करता है lambda यूडीएफ।
  • अमेज़ॅन रेडशिफ्ट में डीडीएम नीतियां किसी भी भविष्यवाणी या संचालन में शामिल होने से पहले लागू की जाती हैं। उदाहरण के लिए, यदि आप एक मास्क्ड कॉलम (आपकी एक्सेस पॉलिसी के अनुसार) को एक अनमास्क्ड कॉलम में जोड़ रहे हैं, तो जॉइन एक बेमेल हो जाएगा। यह अपेक्षित व्यवहार है।
  • मास्किंग नीति को छोड़ने से पहले हमेशा सभी उपयोगकर्ताओं या भूमिकाओं से अलग करें।
  • इस लेखन के अनुसार, समाधान की निम्नलिखित सीमाएँ हैं:
    • आप टेबल और कॉलम पर मास्क नीति लागू कर सकते हैं और इसे उपयोगकर्ता या भूमिका से जोड़ सकते हैं, लेकिन समूह समर्थित नहीं हैं।
    • आप दृश्यों, भौतिक दृश्यों और बाहरी तालिकाओं पर मास्क नीति नहीं बना सकते।
    • अमेज़ॅन रेडशिफ्ट में डीडीएम समर्थन (पूर्वावलोकन) निम्नलिखित क्षेत्रों में उपलब्ध है: यूएस ईस्ट (ओहियो), यूएस ईस्ट (एन। वर्जीनिया), यूएस वेस्ट (ओरेगन), एशिया पैसिफिक (टोक्यो), यूरोप (आयरलैंड), और यूरोप (स्टॉकहोम) ).

प्रदर्शन बेंचमार्क

TPC-H डेटासेट पर किए गए विभिन्न परीक्षणों के आधार पर, हमने स्केलर पायथन या लैम्ब्डा UDFs का उपयोग करके बाहरी रूप से बनाए गए फ़ंक्शंस की तुलना में बिल्ट-इन फ़ंक्शंस को अधिक प्रदर्शन करने वाला पाया है।

समाधान का विस्तार करें

आप इस समाधान को और आगे ले जा सकते हैं और एक मास्किंग नीति स्थापित कर सकते हैं जो एसएसएन और ईमेल पते की पहुंच को निम्नानुसार प्रतिबंधित करती है:

  • पूर्व-निर्मित डैशबोर्ड तक पहुँचने वाले ग्राहक सेवा एजेंट केवल SSN के अंतिम चार अंक और पत्राचार के लिए पूर्ण ईमेल पते देख सकते हैं
  • विश्लेषक एसएसएन या ईमेल पते नहीं देख सकते हैं
  • ऑडिटिंग सेवाएं एसएसएन के साथ-साथ ईमेल पतों के लिए कच्चे मूल्यों तक पहुंच सकती हैं

अधिक जानकारी के लिए, देखें ई-मेल और एसएसएन मास्किंग के लिए अमेज़न रेडशिफ्ट में डीडीएम सपोर्ट (पूर्वावलोकन) का उपयोग करें.

निष्कर्ष

इस पोस्ट में, हमने चर्चा की कि कॉन्फ़िगरेशन-संचालित, सुसंगत, प्रारूप-संरक्षित और अपरिवर्तनीय नकाबपोश डेटा मानों को परिभाषित करने के लिए Amazon Redshift में DDM समर्थन (पूर्वावलोकन) का उपयोग कैसे करें। अमेज़ॅन रेडशिफ्ट में डीडीएम समर्थन (पूर्वावलोकन) के साथ, आप परिचित एसक्यूएल भाषा का उपयोग करके अपने डेटा मास्किंग दृष्टिकोण को नियंत्रित कर सकते हैं। डेटा मास्किंग के विभिन्न स्तरों को लागू करने के लिए आप Amazon Redshift भूमिका-आधारित अभिगम नियंत्रण क्षमता का लाभ उठा सकते हैं। आप यह पहचानने के लिए एक मास्किंग नीति बना सकते हैं कि किस कॉलम को मास्क करने की आवश्यकता है, और आपके पास मास्क किए गए डेटा को दिखाने का तरीका चुनने का लचीलापन है। उदाहरण के लिए, आप डेटा की सभी जानकारी को पूरी तरह से छिपा सकते हैं, आंशिक वास्तविक मानों को वाइल्डकार्ड वर्णों से बदल सकते हैं, या SQL एक्सप्रेशंस, पायथन, या लैम्ब्डा UDFs का उपयोग करके डेटा को मास्क करने का अपना तरीका परिभाषित कर सकते हैं। इसके अतिरिक्त, आप अन्य स्तंभों के आधार पर एक सशर्त मास्किंग लागू कर सकते हैं, जो एक या अधिक स्तंभों में मानों के आधार पर तालिका में स्तंभ डेटा को चुनिंदा रूप से सुरक्षित करता है।

हम आपको अपना खुद का बनाने के लिए प्रोत्साहित करते हैं उपयोगकर्ता परिभाषित कार्य एसटी विभिन्न उपयोग-मामले और अमेज़ॅन रेडशिफ्ट में डायनेमिक डेटा मास्किंग समर्थन का उपयोग करके वांछित सुरक्षा मुद्रा को पूरा करें।


लेखक के बारे में

रोहित वशिष्ठ डलास, TX में स्थित AWS में एक वरिष्ठ विश्लेषिकी विशेषज्ञ समाधान वास्तुकार हैं। उनके पास बड़े डेटा प्लेटफॉर्म की वास्तुकला, निर्माण, नेतृत्व और रखरखाव का 16 से अधिक वर्षों का अनुभव है। रोहित ग्राहकों को एडब्ल्यूएस सेवाओं की चौड़ाई का उपयोग करके उनके विश्लेषणात्मक कार्यभार को आधुनिक बनाने में मदद करता है और यह सुनिश्चित करता है कि ग्राहकों को अत्यधिक सुरक्षा और डेटा प्रशासन के साथ सर्वोत्तम मूल्य/प्रदर्शन मिले।

अहमद शहताha टोरंटो स्थित AWS में एक वरिष्ठ विश्लेषिकी विशेषज्ञ समाधान वास्तुकार हैं। उनके पास ग्राहकों को अपने डेटा प्लेटफॉर्म को आधुनिक बनाने में मदद करने का दो दशकों से अधिक का अनुभव है। अहमद ग्राहकों को कुशल, प्रदर्शनकारी और स्केलेबल विश्लेषणात्मक समाधान बनाने में मदद करने के बारे में भावुक हैं।

वरियाम रमेश चार्लोट, एनसी में स्थित एडब्ल्यूएस में एक वरिष्ठ विश्लेषिकी विशेषज्ञ समाधान वास्तुकार हैं। वह एक कुशल प्रौद्योगिकी नेता हैं जो ग्राहकों को नवीन विश्लेषणात्मक समाधानों की अवधारणा, विकास और वितरण में मदद करते हैं।

यांज़ू जी अमेज़न रेडशिफ्ट टीम में उत्पाद प्रबंधक हैं। उनके पास उद्योग-अग्रणी डेटा उत्पादों और प्लेटफार्मों में उत्पाद दृष्टि और रणनीति का अनुभव है। वेब विकास, सिस्टम डिज़ाइन, डेटाबेस और वितरित प्रोग्रामिंग तकनीकों का उपयोग करके पर्याप्त सॉफ़्टवेयर उत्पादों के निर्माण में उनके पास उत्कृष्ट कौशल है। अपने निजी जीवन में यान्झू को पेंटिंग, फोटोग्राफी और टेनिस खेलना पसंद है।

जेम्स मूर SQL सुविधाओं और सुरक्षा पर केंद्रित Amazon Redshift में एक तकनीकी लीड है। पिछले 10 वर्षों में उनके काम ने वितरित सिस्टम, मशीन लर्निंग और डेटाबेस को फैलाया है। उन्हें स्केलेबल सॉफ़्टवेयर बनाने का शौक है जो ग्राहकों को वास्तविक दुनिया की समस्याओं को हल करने में सक्षम बनाता है।

स्पॉट_आईएमजी

नवीनतम खुफिया

स्पॉट_आईएमजी