ब्लॉग
डॉकर में वास्तविक मल्टी-टेनेंट आइसोलेशन प्राप्त करना
डॉकर का साझा कर्नेल मॉडल मल्टी-टेनेंट वातावरण के लिए जोखिम उत्पन्न करता है। यह मार्गदर्शिका उपयोगकर्ता नेमस्पेस, सेककॉम्प, अपआर्मर, सैंडबॉक्सिंग टूल्स और ऑर्केस्ट्रेशन सर्वोत्तम प्रथाओं का उपयोग करके आइसोलेशन को मजबूत करने के ठोस कदम प्रदान करती है।
सारांश
डॉकर कंटेनर होस्ट कर्नेल साझा करते हैं, जो मल्टी-टेनेंट वातावरण के लिए सुरक्षा चिंता का विषय हो सकता है जहां टेनेंट एक-दूसरे पर भरोसा नहीं कर सकते। यह लेख डिफ़ॉल्ट डॉकर सेटअप में आइसोलेशन कमियों की व्याख्या करता है और लिनक्स नेमस्पेस, सीग्रुप्स, उपयोगकर्ता नेमस्पेस, सेककॉम्प, अपआर्मर और हार्डवेयर वर्चुअलाइजेशन का उपयोग करके आइसोलेशन को मजबूत करने के ठोस कदम प्रदान करता है। आप सीखेंगे कि प्रति-टेनेंट डॉकर डेमॉन कैसे कॉन्फ़िगर करें, मजबूत आइसोलेशन के लिए gVisor या Firecracker जैसे सैंडबॉक्सिंग टूल का उपयोग कैसे करें, और मल्टी-टेनेंसी के लिए Kubernetes के साथ ऑर्केस्ट्रेट कैसे करें। हम सही बुनियादी ढांचा प्रदाता चुनने पर भी चर्चा करेंगे जो अतिरिक्त अलगाव परत के लिए KVM-आधारित वर्चुअलाइजेशन प्रदान करता है। अंत तक, आपके पास डॉकर के साथ सुरक्षित मल्टी-टेनेंट वर्कलोड चलाने के लिए एक खाका होगा।
जब एक ही डॉकर होस्ट पर कई टेनेंट होस्ट किए जाते हैं, तो डिफ़ॉल्ट कंटेनर आइसोलेशन—जो लिनक्स नेमस्पेस और सीग्रुप्स पर बनाया गया है—अक्सर पर्याप्त नहीं होता है। एक टेनेंट में कंटेनर एस्केप पूरे होस्ट और अन्य सभी कंटेनरों से समझौता कर सकता है। यह समस्या विशेष रूप से साझा होस्टिंग, SaaS प्लेटफॉर्म, या किसी भी परिदृश्य में तीव्र होती है जहां अविश्वसनीय कोड आपके अपने कोड के साथ चलता है। अच्छी खबर: आप कई आइसोलेशन तकनीकों को स्टैक करके एक सख्त मल्टी-टेनेंट वातावरण बना सकते हैं। यह मार्गदर्शिका छह व्यावहारिक कदमों से गुज़रती है, जिसमें उपयोगकर्ता नेमस्पेस जैसे आसान कदम से लेकर सैंडबॉक्स्ड रनटाइम और बुनियादी ढांचे के विकल्प जैसे उन्नत उपाय शामिल हैं।
डॉकर के डिफ़ॉल्ट आइसोलेशन को समझना
डॉकर प्रक्रियाओं, नेटवर्क, फाइलसिस्टम और अन्य संसाधनों को अलग करने के लिए लिनक्स नेमस्पेस का उपयोग करता है। सीग्रुप्स CPU, मेमोरी और I/O को सीमित करते हैं। लेकिन ये एक ही कर्नेल साझा करते हैं—कर्नेल में एक कमजोरी सभी कंटेनरों को प्रभावित कर सकती है। वास्तविक मल्टी-टेनेंसी के लिए, विशेष रूप से अविश्वसनीय टेनेंट के साथ, आपको गहन सुरक्षा की आवश्यकता है। जैसा कि डिज़ाइनिंग ए मल्टी-टेनेंट डॉकर आर्किटेक्चर: चूज़िंग द राइट आइसोलेशन लेवल में चर्चा की गई है, आइसोलेशन स्तर कमजोर (केवल नेमस्पेस) से लेकर मजबूत (हार्डवेयर वर्चुअलाइज्ड) तक होते हैं। आइए सबसे कमजोर से शुरू करें।
चरण 1: उपयोगकर्ता नेमस्पेस सक्षम करें
डिफ़ॉल्ट रूप से, कंटेनर के अंदर रूट होस्ट पर रूट से मैप होता है। कंटेनर ब्रेकआउट पूर्ण होस्ट एक्सेस देता है। उपयोगकर्ता नेमस्पेस कंटेनर रूट को बाहर एक गैर-रूट उपयोगकर्ता से रीमैप करते हैं। इसे dockerd --userns-remap=default के साथ वैश्विक रूप से या --userns=host के साथ प्रति-कंटेनर सक्षम करें। यह सरल कदम कई विशेषाधिकार वृद्धि हमलों को समाप्त करता है। अपने एप्लिकेशन का परीक्षण करें: कुछ जिन्हें होस्ट-स्तरीय विशेषाधिकारों की आवश्यकता होती है (जैसे, फाइलसिस्टम माउंट करना) टूट सकते हैं। Drupal या WordPress साइटों के लिए, यह आमतौर पर सुरक्षित है।
चरण 2: सेककॉम्प और अपआर्मर प्रोफाइल लागू करें
सेककॉम्प उन सिस्टम कॉल को सीमित करता है जो एक कंटेनर कर सकता है। डॉकर एक डिफ़ॉल्ट सेककॉम्प प्रोफाइल के साथ आता है जो mount और reboot जैसे खतरनाक syscalls को ब्लॉक करता है। मल्टी-टेनेंट के लिए, इसे और कसें—उन असामान्य syscalls को ब्लॉक करें जो एस्केप टूल उपयोग करते हैं। इसी तरह, अपआर्मर कंटेनर प्रक्रियाओं को सीमित कर सकता है। एक कस्टम अपआर्मर प्रोफाइल बनाएं जो कर्नेल इंटरफेस में लिखने की अनुमति न दे और फ़ाइल पथों को प्रतिबंधित करे। दोनों --security-opt फ्लैग के माध्यम से सेट किए जाते हैं। स्तरित सुरक्षा के लिए इन्हें मिलाएं।
चरण 3: प्रति-टेनेंट डॉकर डेमॉन का उपयोग करें
सभी टेनेंट के लिए एक ही डॉकर डेमॉन चलाना जोखिम भरा है—कोई भी कंटेनर एस्केप डेमॉन सॉकेट तक पहुंच सकता है। डॉकर-इन-डॉकर (DinD) या रिमोट डेमॉन एंडपॉइंट का उपयोग करके प्रति टेनेंट डेमॉन को अलग करें। उदाहरण के लिए, --privileged के साथ एक कंटेनर के अंदर एक डॉकर डेमॉन लॉन्च करें (लेकिन इससे आइसोलेशन कमजोर होता है)। एक बेहतर दृष्टिकोण: अलग-अलग VM पर अलग-अलग डेमॉन चलाएं या उपयोगकर्ता नेमस्पेस के साथ डॉकर के प्रायोगिक --group फीचर का उपयोग करें। ऑर्केस्ट्रेशन के लिए, Kubernetes नेमस्पेस-आधारित आइसोलेशन अधिक व्यावहारिक है, जैसा कि डिफ़ेंडिंग अगेंस्ट कंटेनर एस्केप: ए प्रैक्टिकल गाइड टू डॉकर आइसोलेशन फॉर मल्टी-टेनेंट होस्टिंग में शामिल है।
चरण 4: सैंडबॉक्स्ड रनटाइम पर विचार करें
जब लिनक्स कर्नेल ही अविश्वसनीय हो, तो सैंडबॉक्स्ड रनटाइम का उपयोग करें जो एक हल्की VM परत जोड़ता है। gVisor (runsc) syscalls को इंटरसेप्ट करता है और अपना स्वयं का कर्नेल लागू करता है, जबकि Firecracker हार्डवेयर वर्चुअलाइजेशन के साथ माइक्रो-VM का उपयोग करता है। दोनों containerd रनटाइम के माध्यम से डॉकर के साथ एकीकृत होते हैं। उदाहरण के लिए, डॉकर डेमॉन कॉन्फ़िगरेशन में "runtimes": {"runsc": {}} जोड़ें और कंटेनरों को --runtime=runsc के साथ चलाएं। प्रदर्शन ओवरहेड 5–15% है लेकिन आइसोलेशन कहीं अधिक मजबूत है। उच्च-सुरक्षा मल्टी-टेनेंट सेटअप के लिए आदर्श।
चरण 5: Kubernetes और सुरक्षा नीतियों के साथ ऑर्केस्ट्रेट करें
Kubernetes नेमस्पेस, पॉड सुरक्षा मानकों और नेटवर्कपॉलिसी के माध्यम से देशी मल्टी-टेनेंसी प्रदान करता है। संसाधन कोटा के साथ प्रति-टेनेंट नेमस्पेस परिभाषित करें, और प्रतिबंधित पॉड सुरक्षा संदर्भ लागू करें (सभी क्षमताओं को हटा दें, केवल-पढ़ने के लिए रूट फाइलसिस्टम)। OPA/Gatekeeper जैसे एडमिशन कंट्रोलर गलत कॉन्फ़िगरेशन को ब्लॉक कर सकते हैं। यदि आप कई टेनेंट प्रबंधित कर रहे हैं, तो Kubernetes आइसोलेशन प्रवर्तन को स्वचालित करता है। उत्पादन-पैमाने पर ऑर्केस्ट्रेशन के लिए, बियॉन्ड डॉकर कम्पोज़: ऑर्केस्ट्रेटिंग प्रोडक्शन-रेडी कंटेनराइज़्ड एप्लिकेशन्स देखें।
चरण 6: सही होस्टिंग प्रदाता चुनें
आपके बुनियादी ढांचा प्रदाता का हाइपरवाइज़र मायने रखता है। साझा होस्टिंग (OpenVZ) पर डॉकर कमजोर आइसोलेशन देता है—एक टेनेंट अन्य प्रक्रियाओं को देख सकता है। KVM या VMware का उपयोग करने वाले प्रदाताओं को प्राथमिकता दें, जो हार्डवेयर-स्तरीय अलगाव प्रदान करते हैं। DigitalOcean, Kamatera, या AWS जैसे प्रदाता समर्पित संसाधनों के साथ KVM-आधारित VPS प्रदान करते हैं। बेयर-मेटल के लिए, सुनिश्चित करें कि नेस्टेड कंटेनरों के लिए BIOS-स्तरीय वर्चुअलाइजेशन सक्षम हो। एक प्रदाता जो हाइपरवाइज़र स्तर पर टेनेंट को अलग करता है, आपके कंटेनर आइसोलेशन का पूरक है। जैसा कि मास्टरिंग डॉकर आइसोलेशन फॉर सिक्योर एंड एफिशिएंट वेब होस्टिंग में विस्तृत है, होस्ट OS को भी न्यूनतम हमले की सतह के साथ कठोर किया जाना चाहिए।
चेतावनियाँ और समझौते
प्रत्येक अतिरिक्त परत जटिलता और प्रदर्शन लागत जोड़ती है। उपयोगकर्ता नेमस्पेस होस्ट-माउंट वॉल्यूम को तोड़ सकते हैं। सेककॉम्प प्रोफाइल को प्रति एप्लिकेशन ट्यूनिंग की आवश्यकता होती है। gVisor जैसे सैंडबॉक्स्ड रनटाइम सभी syscalls का समर्थन नहीं करते—आपका ऐप काम नहीं कर सकता। प्रति-टेनेंट डॉकर डेमॉन मेमोरी ओवरहेड बढ़ाते हैं। अपने खतरे के मॉडल से मेल खाने वाला आइसोलेशन स्तर चुनें: भरोसेमंद टेनेंट के लिए, डिफ़ॉल्ट नेमस्पेस पर्याप्त हो सकता है; सार्वजनिक SaaS के लिए, रनटाइम सैंडबॉक्स और Kubernetes नीतियों में निवेश करें। उत्पादन से पहले अच्छी तरह से परीक्षण करें।
निष्कर्ष
डॉकर में वास्तविक मल्टी-टेनेंट आइसोलेशन कई कर्नेल सुविधाओं, रनटाइम सैंडबॉक्स और ऑर्केस्ट्रेशन नियंत्रणों को स्तरित करके प्राप्त किया जा सकता है। उपयोगकर्ता नेमस्पेस और सेककॉम्प से शुरू करें, फिर प्रति-टेनेंट डेमॉन या सैंडबॉक्स्ड रनटाइम पर जाएं। बड़े पैमाने के लिए, Kubernetes नीति-संचालित आइसोलेशन प्रदान करता है। हमेशा एक प्रतिष्ठित प्रदाता से हाइपरवाइज़र-स्तरीय पृथक होस्ट के साथ जोड़ी बनाएं। कोई भी एक तकनीक अभेद्य नहीं है, लेकिन उन्हें संयोजित करने से एक मजबूत सुरक्षा बनती है। आपके टेनेंट आपको धन्यवाद देंगे—और आपका सुरक्षा ऑडिट भी।
Sources (5)
- Docker and Container Isolation - Medium
- Enhanced Container Isolation - Docker Docs
- Container orchestration is the automated process of deploying, managing, scaling, and networking containers in production.
- Container Orchestration 101 - Docker
- Best 10 Docker Container Hosting Platforms in 2026 - Purvaco Technology

