हम कर्नेल स्तर पर टेनेंट्स को कैसे आइसोलेट करते हैं
साझा इंफ्रास्ट्रक्चर पर सवाल यह नहीं है कि कोई टेनेंट कभी गड़बड़ करेगा या नहीं — सवाल यह है कि जब वह करेगा तब क्या होगा। Anested Cloud पर हर वर्कलोड कर्नेल द्वारा लागू की गई सख्त दीवारों के पीछे चलता है, ताकि किसी एक टेनेंट का बग, सेंधमारी या ट्रैफ़िक स्पाइक उसी की समस्या रहे, आपकी नहीं।
नरम सीमाओं की समस्या
साझा कर्नेल पर चलने वाले साधारण कंटेनर एक पैकेजिंग फ़ॉर्मेट हैं, सुरक्षा सीमा नहीं। डिफ़ॉल्ट रूप से, एक होस्ट के सभी कंटेनर एक ही कर्नेल अटैक सरफेस, एक ही शेड्यूलर और एक ही IO कतारें साझा करते हैं। अगर कोई टेनेंट कर्नेल की कोई कमज़ोरी खोज ले — या बस एक fork bomb चला दे — तो नुकसान का दायरा पूरी मशीन होता है, जिसमें उस पर मौजूद हर दूसरा ग्राहक भी शामिल है।
शोरगुल वाले पड़ोसी (noisy neighbours) इसी विफलता का रोज़मर्रा का रूप हैं। लागू की गई सीमाओं के बिना, एक टेनेंट का बैच जॉब CPU साइकल छीन सकता है, डिस्क IO को भर सकता है और दूसरे टेनेंट की मेमोरी पर कब्ज़ा कर सकता है। शत्रुतापूर्ण मल्टी-टेनेंसी के लिए ऐसी सीमाएँ चाहिए जिन्हें कर्नेल लागू करे, न कि ऐसी परंपराएँ जिनका पालन केवल भला वर्कलोड करता है।
नेमस्पेस, cgroups और seccomp
Anested Cloud पर हर टेनेंट वर्कलोड को अपने खुद के PID, नेटवर्क और माउंट नेमस्पेस मिलते हैं। एक टेनेंट की प्रोसेस दूसरे टेनेंट की प्रोसेस को न देख सकती है, न सिग्नल भेज सकती है और न ट्रेस कर सकती है; हर वर्कलोड को फ़ाइलसिस्टम का अपना निजी दृश्य और अपना नेटवर्क स्टैक दिखता है। यह हर सिसकॉल पर Linux कर्नेल द्वारा लागू होता है, किसी ऐसे पॉलिसी इंजन से नहीं जिसे गलत कॉन्फ़िगर किया जा सके।
नेमस्पेस के ऊपर हम cgroup v2 रिसोर्स कंट्रोल और seccomp सिसकॉल फ़िल्टरिंग की परतें जोड़ते हैं। कोटा प्रति टेनेंट CPU समय, मेमोरी और ब्लॉक IO को सीमित करते हैं, ताकि बेकाबू प्रोसेस होस्ट के बजाय खुद को धीमा करे। seccomp प्रोफ़ाइल उन सिसकॉल्स को अस्वीकार कर देते हैं जिनकी वर्कलोड को कोई ज़रूरत नहीं — जिससे कर्नेल एक्सप्लॉइट्स की पूरी श्रेणियाँ कमज़ोर कोड तक पहुँचने से पहले ही कट जाती हैं।
- समर्पित नेटवर्क नेमस्पेस, अपने वर्चुअल इंटरफ़ेस और फ़ायरवॉल नियमों के साथ
- CPU, मेमोरी और ब्लॉक IO के लिए cgroup v2 कोटा
- seccomp प्रोफ़ाइल जो केवल वही सिसकॉल्स अनुमत करते हैं जिनकी वर्कलोड को ज़रूरत है
- रीड-ओनली रूट फ़ाइलसिस्टम, स्पष्ट रूप से घोषित राइटेबल माउंट्स के साथ
प्रति टेनेंट नेटवर्क आइसोलेशन
हर टेनेंट अपने निजी वर्चुअल नेटवर्क पर रहता है। फ़ायरवॉल नियम प्रति टेनेंट बनाए जाते हैं और डिफ़ॉल्ट रूप से सब कुछ अस्वीकार करते हैं: एक टेनेंट के वर्कलोड और दूसरे के बीच कोई रास्ता ही नहीं है, इसलिए टेनेंट्स के बीच ईस्ट-वेस्ट ट्रैफ़िक संरचना से ही असंभव है। Anested VPS के भीतर से पड़ोसी के पोर्ट स्कैन करने पर बंद पोर्ट भी नहीं दिखते — पैकेट आपके नेटवर्क नेमस्पेस से बाहर निकलते ही नहीं।
सार्वजनिक ट्रैफ़िक केवल एज प्रॉक्सी के ज़रिए ही अंदर आता है, और कहीं से नहीं। TLS एज पर टर्मिनेट होता है, अनुरोध ठीक एक टेनेंट के नेटवर्क तक भेजे जाते हैं, और आंतरिक सेवाएँ अपने सेगमेंट के बाहर से कभी कनेक्शन स्वीकार नहीं करतीं। नतीजा एक ऐसी टोपोलॉजी है जिसमें पहुँचा जा सकने वाला एकमात्र सरफेस वही है जिसे आपने जान-बूझकर उजागर किया है।
डेटाबेस के लिए इसका क्या मतलब है
यही दीवारें हमारे हर मैनेज्ड PostgreSQL, MongoDB और MySQL डेटाबेस पर भी लागू होती हैं। हर डेटाबेस इंस्टेंस अपने नेमस्पेस, cgroup v2 सीमाओं और seccomp प्रोफ़ाइल में बंद रहता है, इसलिए एक टेनेंट की धीमी क्वेरी या बेकाबू इंडेक्स बिल्ड दूसरे टेनेंट के डेटाबेस से CPU, मेमोरी या IO नहीं छीन सकती। आपकी p99 लेटेंसी आपके वर्कलोड पर निर्भर करती है, आपके पड़ोसी के नहीं।
कनेक्शन स्ट्रिंग प्रति डेटाबेस स्कोप की जाती हैं और केवल मालिक टेनेंट के नेटवर्क के भीतर ही काम करती हैं। लीक हुआ क्रेडेंशियल भी दूसरे टेनेंट के सेगमेंट से बेकार है, क्योंकि पैकेट वहाँ पहुँच ही नहीं सकते। कर्नेल और नेटवर्क स्तर का आइसोलेशन इसका मतलब है कि डेटाबेस का एक्सेस कंट्रोल आपकी आख़िरी सुरक्षा पंक्ति नहीं — कई में से एक है।
डिफ़ेंस इन डेप्थ, डिफ़ॉल्ट रूप से
किसी भी एक परत को परिपूर्ण मानकर भरोसा नहीं किया जाता। होस्ट्स को रोलिंग शेड्यूल पर पैच किया जाता है, जहाँ संभव हो लाइव माइग्रेशन के साथ; कर्नेल ज्ञात CVE के विरुद्ध अद्यतन रखे जाते हैं; और हर परत की विसंगतियों के लिए मॉनिटरिंग होती है — अनपेक्षित सिसकॉल अस्वीकृतियों से लेकर उस क्रॉस-नेमस्पेस ट्रैफ़िक तक जिसका अस्तित्व ही नहीं होना चाहिए। हर आंतरिक कॉम्पोनेन्ट न्यूनतम आवश्यक विशेषाधिकार (least privilege) के साथ चलता है, ताकि एक सेवा का समझौता आगे न फैले।
इनमें से कुछ भी एंटरप्राइज़ ऐड-ऑन नहीं है। कर्नेल-स्तरीय आइसोलेशन, प्रति-टेनेंट नेटवर्किंग और रिसोर्स कोटा Anested Cloud के हर वर्कलोड पर लागू होते हैं — फ्री टियर सहित। जो सुरक्षा आपके बिलिंग प्लान पर निर्भर करती है, वह सुरक्षा नहीं है; वह सिर्फ़ एक प्राइसिंग पेज है।
इसे आज़माने के लिए तैयार?
एक सर्वर, एक डेटाबेस या एक बकेट शुरू करें — फ्री टियर शामिल हैं।