प्रतिनिधि इंटरव्यू विषय

सिस्टम डिज़ाइन इंटरव्यू: प्राइवेसी-प्रिजर्विंग डेटा क्लीन रूम (Data Clean Room) डिज़ाइन करें

सिस्टम डिज़ाइनकठिन
Offer.cc संपादकीय टीमप्रकाशित अपडेट किया गया

प्रश्न

एक ऐसा डेटा क्लीन रूम डिज़ाइन करें जहाँ एक विज्ञापनदाता (advertiser) और एक मीडिया पार्टनर दोनों में से किसी भी पक्ष द्वारा दूसरे के रॉ यूज़र रिकॉर्ड्स को पढ़े बिना ऑडियंस ओवरलैप और कन्वर्ज़न मेट्रिक्स की गणना कर सकें। इसे मल्टी-टेनेंसी, ऑडिट, सहमति वापसी (consent revocation), और बार-बार की जाने वाली क्वेरीज़ के माध्यम से इन्फेरेंस (inference) से सुरक्षा का समर्थन करना चाहिए।

प्रॉम्प्ट और स्कोप

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

इंटरव्यूअर क्या जांच रहा है

सिस्टम डिज़ाइन इंटरव्यू में आमतौर पर सबसे कठिन मॉडल, ऑथराइजेशन और विफलता पथों (failure paths) में गहराई से जाने से पहले स्कोप को स्पष्ट करने पर ध्यान दिया जाता है। डेटा-इंजीनियरिंग इंटरव्यू गाइडेंस भी सिस्टम डिज़ाइन, गवर्नेंस और प्राइवेसी को अलग-अलग मूल्यांकन क्षेत्रों के रूप में सूचीबद्ध करता है। AWS Clean Rooms न्यूनतम विशेषाधिकार (least privilege), एन्क्रिप्शन और CloudTrail का दस्तावेजीकरण करता है; Salesforce का आर्किटेक्चर मार्गदर्शन एग्जीक्यूशन बाउंड्री पर ज़ीरो-कॉपी प्रोसेसिंग, आइडेंटिटी अलाइनमेंट, न्यूनतम एग्रीगेशन थ्रेशोल्ड और छेड़छाड़-रोधी (tamper-evident) ऑडिट को रखता है। एक मजबूत उत्तर प्रत्येक नियम को लागू करने वाले कंपोनेंट और उसके द्वारा रोके जाने वाले हमले का स्पष्ट उल्लेख करता है।

पहले स्पष्ट करने योग्य प्रश्न

पार्टियों की संख्या की पुष्टि करें; क्या डेटा प्रत्येक क्लाउड खाते में ही रहता है; अनुमत विश्लेषण और आउटपुट ग्रैन्युलैरिटी; क्या प्राप्तकर्ता सटीक संख्या देख सकते हैं; क्या डिफरेंशियल प्राइवेसी (differential privacy) आवश्यक है; क्या पहचान मिलान पार्टनर द्वारा प्रदान किए गए टोकन का उपयोग करता है या एक विश्वसनीय मैपिंग सेवा का; सहमति वापसी कितनी जल्दी प्रभावी होनी चाहिए; और डेटा रेजिडेंसी, की (key) ओनरशिप और ऑडिट-रिटेंशन की आवश्यकताएं क्या हैं। एक बार का दो-पक्षीय एग्रीगेशन एक नियंत्रित बैच का उपयोग कर सकता है; ओपन SQL के लिए थ्रेट मॉडल में क्वेरी लैंग्वेज और प्राइवेसी बजट की आवश्यकता होती है।

30-सेकंड उत्तर का ढांचा (Framework)

इस प्रकार शुरुआत करें: "मैं क्लीन रूम को एक कंट्रोल प्लेन, डेटा कनेक्टर्स, पॉलिसी कंपाइलर, आइसोलेटेड एग्जीक्यूशन इंजन और रिज़ल्ट पब्लिशर में विभाजित करूँगा। प्रतिभागी मेटाडेटा और अनुमत उद्देश्यों को पंजीकृत करते हैं जबकि रॉ टेबल उनके डेटा स्टोर में ही रहती हैं। इंजन डेटा सीमा पर प्रतिबंधित क्वेरी चलाता है और एक आइसोलेटेड सर्विस पहचान मिलान करती है। प्रकाशित करने से पहले, यह न्यूनतम कोहोर्ट थ्रेशोल्ड, डिफरेंशियल-प्राइवेसी बजट और परिणाम स्कैन लागू करता है। क्वेरीज़, पॉलिसी वर्ज़न्स और की ऑपरेशंस एक इम्यूटेबल (अपरिवर्तनीय) ऑडिट ट्रेल में जाते हैं। सहमति वापसी नए जॉब्स को ब्लॉक करती है और कैश्ड परिणामों को अमान्य करती है; जॉब्स टेनेंट, रीजन और की द्वारा अलग-अलग (आइसोलेटेड) रहते हैं।"

स्टेप-बाय-स्टेप डीप डाइव

स्टेप 1: सहयोग समझौते (Collaboration Agreement) को पॉलिसी में बदलें

कंट्रोल प्लेन पार्टियों, डेटासेट्स, उद्देश्य, अनुमत जॉइन कीज़, आउटपुट कॉलम्स, रीजन, समाप्ति समय और सहमति वर्ज़न को स्टोर करता है। पॉलिसियाँ वर्ज़न-नियंत्रित और हस्ताक्षरित होती हैं, और सबमिशन के समय जॉब वर्ज़न को लॉक कर देता है; एक क्वेरी रन के बीच में नियम नहीं बदल सकती। टेनेंट, मानवीय भूमिका (human role) और सर्विस आइडेंटिटी अलग-अलग रहते हैं, और अनुरोधकर्ता केवल अधिकृत मेटाडेटा ही देखता है।

स्टेप 2: रॉ डेटा को एग्जीक्यूशन बाउंड्री के भीतर रखें

कनेक्टर्स स्थानीय तालिकाओं या ज़ीरो-कॉपी व्यूज़ को पढ़ते हैं और कंट्रोल प्लेन को केवल स्कीमा, सांख्यिकी और स्थान की रिपोर्ट करते हैं। पॉलिसी कंपाइलर एक अनुरोध को स्वीकृत जॉइन्स, फ़िल्टर और एग्रीगेट्स तक सीमित करता है; मनमाने एक्सपोर्ट्स, यूज़र-लेवल ऑर्डरिंग, फ्री-फॉर्म फंक्शन्स और लॉग्स में रॉ कॉलम्स को अस्वीकार कर दिया जाता है। मल्टी-क्लाउड डिप्लॉयमेंट्स में, सर्विस रोल्स और कस्टमर-मैनेज्ड कीज़ अलग-अलग होते हैं, TLS ट्रांसपोर्ट की सुरक्षा करता है, और की अनुमतियाँ केवल सहयोग और मध्यवर्ती (intermediate) तालिकाओं तक सीमित होती हैं।

स्टेप 3: बिना उजागर किए पहचान का मिलान करें

कंट्रोल प्लेन में रॉ ईमेल या डिवाइस आइडेंटिफायर्स को स्टोर न करें। पार्टनर्स साझा विनिर्देश (shared specification) के तहत मानों को सामान्यीकृत (normalize) करते हैं और टोकन बनाते हैं, या एक आइसोलेटेड मैपिंग सेवा मिलान करती है और केवल एक अपरिवर्तनीय जॉइन परिणाम लौटाती है। नॉर्मलाइजेशन वर्ज़न, डेटा प्रोवेनेंस (उत्पत्ति) और कोलिजन हैंडलिंग को रिकॉर्ड करें। बदला हुआ नियम अलग-अलग सिमेंटिक्स के तहत टोकन का चुपचाप पुन: उपयोग करने के बजाय एक नया वर्ज़न बनाता है। केवल एग्जीक्यूशन इंजन ही मिलान परिणामों का उपयोग कर सकता है।

स्टेप 4: रनटाइम पर प्राइवेसी लागू करें

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

स्टेप 5: ऑडिट साक्ष्य के साथ परिणाम प्रकाशित करें

पब्लिशर केवल एक स्वीकृत एग्रीगेट स्कीमा, क्वालिटी फ्लैग्स और प्राइवेसी स्टेटस उत्सर्जित करता है। यह कभी भी इंटरमीडिएट टेबल्स, रॉ टोकन्स या असफल पंक्तियाँ वापस नहीं करता है। प्रत्येक क्वेरी अनुरोधकर्ता, पॉलिसी और डेटासेट वर्ज़न्स, क्वेरी डाइजेस्ट, बजट खपत, प्राप्तकर्ता और की ऑपरेशंस को ऐसे स्टोरेज में रिकॉर्ड करती है जिसे प्रतिभागी हटा नहीं सकते। रिज़ल्ट कैश पॉलिसी, सहमति और डेटा वर्ज़न्स से बंधा होता है; इनमें से किसी को भी रद्द करने पर यह अमान्य हो जाता है।

स्टेप 6: सहमति वापसी, विफलता और रीजनल रिकवरी को संभालें

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

मॉडल उच्च-गुणवत्ता वाला उत्तर

"मैं एक वर्ज़न-नियंत्रित सहयोग नीति बनाऊँगा जो उद्देश्य, डेटासेट्स, जॉइन कीज़, आउटपुट कॉलम्स, रीजन और समाप्ति का उल्लेख करती है। रॉ टेबल्स प्रत्येक प्रतिभागी के स्टोर में रहती हैं; कनेक्टर्स नियंत्रित व्यूज़ और स्कीमा प्रदर्शित करते हैं। एक पॉलिसी कंपाइलर अनुरोधों को स्वीकृत जॉइन्स, फ़िल्टर और एग्रीगेट्स तक सीमित करता है, और एग्जीक्यूशन इंजन डेटा सीमा के भीतर चलता है। एक आइसोलेटेड मैचिंग सेवा नॉर्मलाइज़्ड आइडेंटिफायर्स को ऐसे टोकन में बदलती है जिन्हें डाउनलोड नहीं किया जा सकता है। प्रकाशित करने से पहले, न्यूनतम कोहोर्ट आकार, एक डिफरेंशियल-प्राइवेसी बजट और कंबाइंड-क्वेरी जांच लागू करें; बजट समाप्त होने पर अस्वीकार करें। पॉलिसी और डेटा वर्ज़न्स, अनुरोधकर्ता, बजट, की कॉल्स और प्राप्तकर्ता को एक अपरिवर्तनीय ऑडिट लॉग में रिकॉर्ड करें। सहमति वापसी नए जॉब्स को ब्लॉक करती है, कैश को अमान्य करती है, और चेकपॉइंट पुनर्वैधीकरण को ट्रिगर करती है। रीजनल और की आइसोलेशन फेलओवर को रेजिडेंसी नियमों के भीतर रखता है।"

सामान्य गलतियाँ और सुधार

  • लीकेज रोकने के लिए केवल अनुबंध पर निर्भर रहना: एग्जीक्यूटर और पब्लिशर को रॉ कॉलम्स, यूज़र-लेवल रिज़ल्ट्स और अनधिकृत फ़ंक्शन्स को अस्वीकार करने के लिए बाध्य करें।
  • हैश को स्वचालित रूप से अनामीकरण (Anonymization) मानना: थ्रेट मॉडल में नॉर्मलाइजेशन, सॉल्ट्स, कीज़ और लिंकेज हमलों को शामिल करें; एक आइसोलेटेड टोकन सेवा को प्राथमिकता दें।
  • केवल एक न्यूनतम-समूह जांच सेट करना: बार-बार, अंतर (difference) और क्रॉस-क्वेरी ऑपरेशंस को भी सीमित करें और प्राइवेसी बजट को ट्रैक करें।
  • सहमति वापसी पर केवल एक कंसोल फ्लैग बदलना: कतारों, एग्जीक्यूशन, कैश और वितरण में पॉलिसी और सहमति वर्ज़न्स की दोबारा जांच करें।

फॉलो-अप प्रश्न और उत्तर

जब अनुरोधकर्ता फ़िल्टर बदलना जारी रखता है तो आप इन्फेरेंस को कैसे रोकते हैं?

प्रत्येक डेटासेट और सहयोग के लिए एक प्राइवेसी बजट बाँधें और प्रत्येक क्वेरी के लिए शुल्क (charge) लें। सेगमेंटेशन डायमेंशन्स, रिज़ल्ट फ्रीक्वेंसी और आस-पास की क्वेरीज़ के बीच अंतर को सीमित करें। लगातार छोटे समूह लौटाने के बजाय बजट या जोखिम सीमा तक पहुँचने पर अस्वीकार करें।

क्या होगा यदि दोनों पक्ष ईमेल को अलग-अलग तरीके से सामान्यीकृत (normalize) करते हैं?

पॉलिसी में एक नॉर्मलाइजेशन वर्ज़न तय करें और आइसोलेटेड मैचिंग सेवा के भीतर रूपांतरण करें, उस वर्ज़न को रिकॉर्ड करें। बेमेल होने पर विफल करें और पुनः मैपिंग की आवश्यकता रखें; टोकन को चुपचाप स्वीकार करने से गलत नकारात्मक (false negatives) या गलत मिलान पैदा होंगे।

क्या कोई जॉब दूसरे रीजन में जा सकता है जब उसकी की सर्विस अनुपलब्ध हो?

केवल तभी जब डेटा रेजिडेंसी और की पॉलिसी स्पष्ट रूप से इसकी अनुमति देती हैं; अन्यथा चेकपॉइंट को सुरक्षित रखते हुए रोक दें। क्रॉस-रीजन रेप्लिकेशन में एन्क्रिप्टेड कंट्रोल मेटाडेटा और ऑडिट रिकॉर्ड होने चाहिए, प्रतिबंधित रॉ डेटा या डिक्रिप्ट करने योग्य इंटरमीडिएट टेबल्स कभी नहीं।

आप यह कैसे सत्यापित करते हैं कि क्लीन रूम रॉ डेटा लीक नहीं करता है?

रॉ-कॉलम चयन, यूज़र-लेवल सॉर्टिंग, थ्रेशोल्ड से नीचे के समूह, बार-बार के अंतर और लॉग इंजेक्शन के लिए नकारात्मक नीति परीक्षण (negative policy tests) चलाएं। योजनाओं और रिज़ल्ट स्कीमा का निरीक्षण करें, सहमति वापसी और की विफलता का अनुकरण (simulate) करें, और वास्तविक कॉल्स के साथ ऑडिट इवेंट्स का मिलान करें।

सार्वजनिक स्रोत

संबंधित प्रश्न

संबंधित इंटरव्यू टूल

सिस्टम डिज़ाइन उत्तर के लिए हल करें का उपयोग करें

पहले आवश्यकताओं को स्पष्ट करें, फिर स्केल, आर्किटेक्चर, कंपोनेंट चयन और ट्रेड-ऑफ की ओर बढ़ें।

टूल देखें