प्रॉम्प्ट और दायरा
एक डेटा लेक की Parquet फ़ाइलों में सार्वजनिक और संवेदनशील कॉलम हैं। टीम प्रोजेक्शन, प्रेडिकेट पुशडाउन और कम्प्रेशन को बनाए रखते हुए संवेदनशील डेटा और मेटाडेटा को एन्क्रिप्ट करना चाहती है। फ़ुटर एन्क्रिप्शन, कॉलम कीज़, की कस्टडी, रीड ऑथराइजेशन, लेगेसी-रीडर व्यवहार और रोटेशन रिकवरी को डिज़ाइन करें।
यह प्रश्न Parquet Modular Encryption विनिर्देश की क्षमताओं पर चर्चा करता है; यह यह नहीं मानता कि प्रत्येक इंजन या लैंग्वेज बाइंडिंग समान की कॉन्फ़िगरेशन का समर्थन करता है।
इंटरव्यूअर क्या टेस्ट कर रहा है
- क्या आप एन्क्रिप्टेड फ़ुटर, एन्क्रिप्टेड कॉलम और केवल-पेज सुरक्षा के बीच अंतर करते हैं।
- क्या फ़ाइल में मास्टर की संग्रहीत करने के बजाय KEKs, DEKs, की मेटाडेटा और KMS अनुमतियों को अलग किया गया है।
- क्या आप समझते हैं कि एक एन्क्रिप्टेड फ़ुटर स्कीमा, सांख्यिकी (statistics), प्रेडिकेट पुशडाउन और लेगेसी रीडर्स को कैसे प्रभावित करता है।
- क्या रोटेशन, निरसन (revocation), रीराइट और प्रत्यक्ष डिक्रिप्शन विफलताओं को एक साथ डिज़ाइन किया गया है।
स्पष्टीकरण के लिए प्रश्न
- कौन से कॉलम संवेदनशील हैं, और क्या स्कीमा, रो ग्रुप्स और सांख्यिकी को भी छिपाया जाना चाहिए?
- क्वेरी इंजनों को किन कॉलमों की आवश्यकता है, और क्या वे कॉलम कीज़ और फ़ुटर डिक्रिप्शन का समर्थन करते हैं?
- क्या की कस्टडी एक केंद्रीय सेवा, क्लाउड HSM, या कॉलर-इंजेक्टेड की है?
- क्या फ़ाइलों को खातों या क्षेत्रों (regions) में रेप्लिकेट किया जाता है, और बैकअप डिक्रिप्ट अनुमति कैसे प्राप्त करते हैं?
- क्या रोटेशन नई फ़ाइलों, ऐतिहासिक रीराइट्स, या तत्काल निरसन को लक्षित करता है?
30-सेकंड का उत्तर
“Parquet Modular Encryption कॉलमर सुविधाओं को बनाए रखते हुए फ़ाइल डेटा और मेटाडेटा की सुरक्षा कर सकता है, लेकिन एक एन्क्रिप्टेड फ़ुटर बिना की वाले रीडर्स से स्कीमा और रो-ग्रुप की जानकारी छुपाता है। मैं KMS मास्टर कीज़ को फ़ाइल या कॉलम कीज़ से अलग रखूंगा और रीडर्स को प्रति-कॉलम ऑथराइज़ करूँगा। एक लेगेसी रीडर को फ़ाइल को करप्ट कहने के बजाय असमर्थित एन्क्रिप्शन की रिपोर्ट करनी चाहिए। रोटेशन नई रैप की गई कीज़ के साथ नई फ़ाइलें लिखता है और नियंत्रण के तहत इतिहास को रीराइट करता है, साथ ही की वर्जन्स और विफलताओं को रिकॉर्ड करता है। एक क्षमता मैट्रिक्स को प्रत्येक इंजन के लिए प्रेडिकेट पुशडाउन को सत्यापित करना चाहिए।”
चरण-दर-चरण डिज़ाइन
1. सुरक्षा का दायरा चुनें
फ़ुटर एन्क्रिप्शन FileMetaData की सुरक्षा करता है, जिसमें रो ग्रुप्स और कॉलम चंक्स शामिल हैं; कॉलम एन्क्रिप्शन संवेदनशील कॉलमों के लिए अलग-अलग कीज़ का उपयोग कर सकता है। यदि फ़ुटर प्लेनटेक्स्ट रहता है, तो एक रीडर एन्क्रिप्टेड पेजों को न पढ़ पाने पर भी स्कीमा या सांख्यिकी देख सकता है। थ्रेट मॉडल के आधार पर दायरा चुनें।
2. की की जिम्मेदारियों को अलग करें
एक KMS या HSM की-एन्क्रिप्शन कीज़ (KEKs) को संग्रहीत करता है। राइटिंग डेटा-एन्क्रिप्शन कीज़ (DEKs) बनाती है या प्राप्त करती है और फ़ाइल में संरक्षित की मेटाडेटा संग्रहीत करती है। एक रीडर ऑथराइजेशन सेवा मेटाडेटा को हल करती है और KMS से केवल अनुमत कीज़ को अनरैप करने के लिए कहती है; फ़ाइल में सीधे उपयोग करने योग्य मास्टर की नहीं होनी चाहिए।
3. क्वेरी क्षमताओं का मूल्यांकन करें
Apache Parquet दस्तावेज करता है कि मॉड्यूलर एन्क्रिप्शन प्रोजेक्शन, प्रेडिकेट पुशडाउन, एन्कोडिंग और कम्प्रेशन को बनाए रखते हुए डेटा और मेटाडेटा को एन्क्रिप्ट और प्रमाणित कर सकता है। एक क्वेरी इंजन को फिर भी पहले प्रासंगिक कीज़ की आवश्यकता होती है। एक एन्क्रिप्टेड फ़ुटर की-रहित स्कैनर को स्कीमा और सांख्यिकी पढ़ने से रोक सकता है, इसलिए केवल-सार्वजनिक प्रोजेक्शन, संवेदनशील-कॉलम फ़िल्टर और मिश्रित प्रोजेक्शन का परीक्षण करें।
KMS KEK -> wraps file/column DEK -> protected key metadata
reader authorization -> unwrap allowed DEK -> decrypt footer/pages4. फ़ाइलों और लेगेसी रीडर्स की पहचान करें
एन्क्रिप्टेड-फ़ुटर फ़ाइलें भिन्न मैजिक बाइट्स का उपयोग करती हैं: Apache Parquet PARE का दस्तावेजीकरण करता है, जबकि प्लेनटेक्स्ट फ़ाइलें PAR1 का उपयोग करती हैं। एक लेगेसी रीडर एन्क्रिप्टेड फ़ाइल को असमर्थित के रूप में वर्गीकृत कर सकता है। क्वेरी के दौरान किसी अस्पष्ट करप्शन एरर की प्रतीक्षा करने के बजाय, रजिस्ट्री या प्रोब में क्षमता को चिह्नित करें।
5. रोटेशन और निरसन को डिज़ाइन करें
रोटेशन को पहले नई फ़ाइलों को प्रभावित करना चाहिए: नए DEKs को एक नए KEK द्वारा रैप किया जाता है, और पुरानी फ़ाइलों को प्रतिधारण (retention) के अनुसार रीराइट किया जाता है। तत्काल निरसन KMS को अनरैपिंग से मना कर देता है और रीड्स विफल हो जाते हैं; प्लेटफ़ॉर्म को एक रीराइट कतार, की वर्जन्स और रिकवरी चरणों की आवश्यकता होती है। एक अस्थायी फ़ाइल में रीराइट करें और इसे परमाणु रूप से (atomically) बदलें ताकि कोई रुकावट आधी-एन्क्रिप्टेड फ़ाइल न छोड़ सके।
6. परत दर परत विफलताओं का निरीक्षण करें
फ़ाइल ID, फ़ुटर या कॉलम की वर्जन, प्रिंसिपल, KMS लेटेंसी, डिक्रिप्शन विफलता का प्रकार, और क्वेरी किए गए कॉलम रिकॉर्ड करें; कभी भी प्लेनटेक्स्ट कीज़ या मानों को लॉग न करें। अलर्ट और निवारण के लिए ऑथराइजेशन इनकार, अनुपलब्ध की, प्रमाणीकरण-टैग विफलता, असमर्थित लेगेसी रीडर और फ़ाइल करप्शन को अलग करें।
मॉडल उच्च-गुणवत्ता उत्तर
“मैं थ्रेट मॉडल के आधार पर तय करूँगा कि फ़ुटर को छिपाना है या नहीं। मॉड्यूलर एन्क्रिप्शन फ़ुटर, कॉलम और पेजों की सुरक्षा कर सकता है; फ़ुटर एन्क्रिप्शन स्कीमा और सांख्यिकी को छुपाता है, जबकि कॉलम कीज़ संवेदनशील-कॉलम एक्सेस को सीमित करती हैं। KMS KEKs रखता है, और फ़ाइल या कॉलम DEKs को संरक्षित मेटाडेटा के माध्यम से संदर्भित किया जाता है; रीडर्स ऑथराइजेशन के बाद ही अनरैप करते हैं। एक क्षमता मैट्रिक्स सार्वजनिक प्रोजेक्शन, संवेदनशील फ़िल्टर और प्रेडिकेट पुशडाउन का परीक्षण करता है। प्लेनटेक्स्ट PAR1 बनाम PARE प्लेटफ़ॉर्म को लेगेसी-रीडर जोखिम को जल्दी पहचानने की अनुमति देता है। रोटेशन नई फ़ाइलों, नियंत्रित रीराइट्स और एटॉमिक रिप्लेसमेंट का उपयोग करता है, जिसमें की वर्जन्स और विफलता वर्ग रिकॉर्ड किए जाते हैं; निरसन KMS इनकार और एक रिकवरी कतार का उपयोग करता है।”
सामान्य गलतियाँ
- फ़ाइल में सीधे KEK लिखना → फ़ाइल का कब्ज़ा डिक्रिप्शन को सक्षम बनाता है → केवल संरक्षित की मेटाडेटा संग्रहीत करें।
- फ़ुटर का मूल्यांकन किए बिना कॉलम एन्क्रिप्ट करना → स्कीमा और सांख्यिकी अभी भी लीक हो सकती हैं → थ्रेट मॉडल से फ़ुटर मोड चुनें।
- यह मान लेना कि प्रत्येक इंजन कॉलम कीज़ का समर्थन करता है → प्रोडक्शन क्वेरीज़ क्षमता के अंतर को उजागर करती हैं → इंजन और बाइंडिंग मैट्रिक्स बनाए रखें।
- रोटेशन के दौरान फ़ाइलों को उसी स्थान पर अधिलेखित (overwrite) करना → रुकावट अपठनीय आंशिक आउटपुट छोड़ती है → अस्थायी आउटपुट लिखें और परमाणु रूप से बदलें।
- प्रमाणीकरण विफलता को करप्ट फ़ाइल कहना → जांच गलत रास्ते पर चली जाती है → KMS, ऑथराइजेशन, टैग और फ़ॉर्मेट त्रुटियों को अलग करें।
फॉलो-अप प्रश्न और उत्तर
क्या फ़ुटर एन्क्रिप्शन प्रेडिकेट पुशडाउन को अक्षम करता है?
ज़रूरी नहीं। फ़ुटर और आवश्यक कॉलम कीज़ प्राप्त करने के बाद, फ़ॉर्मेट कॉलमर रीड्स और प्रेडिकेट पुशडाउन को बनाए रख सकता है। फ़ुटर की के बिना एक स्कैनर सांख्यिकी नहीं पढ़ सकता; वास्तविक व्यवहार इंजन के एन्क्रिप्शन समर्थन पर निर्भर करता है।
कॉलम-स्तरीय कीज़ का उपयोग क्यों करें?
विभिन्न प्रिंसिपल्स को अलग-अलग कॉलम पढ़ने की अनुमति दी जा सकती है। कॉलम कीज़ पूरी फ़ाइल से संवेदनशील कॉलमों तक ऑथराइजेशन को सीमित करती हैं और सार्वजनिक कॉलमों तक पहुंच प्रदान करते समय जोखिम को कम करती हैं।
लेगेसी रीडर को PARE के साथ क्या करना चाहिए?
इसे स्पष्ट रूप से असमर्थित मॉड्यूलर एन्क्रिप्शन की रिपोर्ट करनी चाहिए और ऑपरेटर को एक संगत रीडर या डिक्रिप्ट-एंड-रीराइट पथ पर निर्देशित करना चाहिए। इसे PARE फ़ाइल को चुपचाप एक करप्ट PAR1 फ़ाइल के रूप में नहीं मानना चाहिए।