Docker और DevOps की बुनियाद · पाठ

रनटाइम कंटेनर सुरक्षा

रनटाइम के दौरान कंटेनर्स को सुरक्षित करने की सर्वोत्तम प्रथाएँ लागू कीजिए, जिनमें उपयोगकर्ता विशेषाधिकार और संसाधन सीमाएँ शामिल हैं।

पाठ 2, कुल 4 में से12 चरण

रनटाइम कंटेनर सुरक्षा, CoddyKit पर Docker और DevOps की बुनियाद का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Docker और DevOps की बुनियाद सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Docker और DevOps की बुनियाद पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

रनटाइम सुरक्षा की आवश्यक बातें

रनटाइम कंटेनर सुरक्षा में आपका स्वागत है! सुरक्षित इमेज बनाना महत्वपूर्ण है, लेकिन आपका कंटेनर चलने के बाद क्या होता है?

यह पाठ आपके अनुप्रयोगों को सक्रिय रहने के दौरान सुरक्षित रखने की सर्वोत्तम प्रथाओं पर केंद्रित है, ताकि कमजोरियों या हमलों से होने वाली संभावित क्षति सीमित की जा सके।

रनटाइम कंटेनर सुरक्षा — चित्र 1

न्यूनतम विशेषाधिकार का सिद्धांत

एक मौलिक सुरक्षा अवधारणा न्यूनतम विशेषाधिकार का सिद्धांत है। इसका अर्थ है कि किसी इकाई (जैसे कंटेनर या उपयोगकर्ता) को अपना कार्य करने के लिए बिल्कुल आवश्यक अनुमतियाँ ही दी जाएँ, उससे अधिक नहीं।

इसे लागू करने से हमले की सतह कम होती है और कंटेनर के साथ छेड़छाड़ होने पर उसका प्रभाव सीमित रहता है।

रूट के रूप में चलाने से बचें

डिफ़ॉल्ट रूप से, Docker कंटेनर के अंदर की प्रक्रियाएँ root उपयोगकर्ता के रूप में चलती हैं, जिसके पास कंटेनर के भीतर पूर्ण प्रशासनिक विशेषाधिकार होते हैं।

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

गैर-रूट उपयोगकर्ता के रूप में चलाएँ

आप docker run के साथ --user फ़्लैग का उपयोग करके अपनी कंटेनर प्रक्रिया के लिए नाम या UID से कोई उपयोगकर्ता निर्दिष्ट कर सकते हैं। यहाँ हम Alpine कंटेनर में उपयोगकर्ता 1000 के रूप में id कमांड चलाते हैं।

यदि उपयोगकर्ता 1000 मौजूद नहीं है, तो भी Docker उस UID का उपयोग करेगा।

docker run --rm -it --user 1000 alpine id

Linux क्षमताओं को समझना

पारंपरिक Linux सिस्टम में रूट उपयोगकर्ता के पास 'सब या कुछ नहीं' प्रकार के विशेषाधिकार होते हैं। Linux क्षमताएँ रूट के शक्तिशाली विशेषाधिकारों को छोटी, अलग-अलग इकाइयों में बाँट देती हैं।

इससे किसी प्रक्रिया को पूर्ण रूट पहुँच दिए बिना केवल वही विशिष्ट रूट-जैसी शक्तियाँ दी जा सकती हैं, जिनकी उसे आवश्यकता है (जैसे, कम पोर्ट से जुड़ना या कच्ची नेटवर्क पहुँच)।

अनावश्यक क्षमताएँ हटाएँ

Docker कंटेनर डिफ़ॉल्ट रूप से क्षमताओं के एक बड़े समूह के साथ चलते हैं। कंटेनर क्या कर सकता है, इसे और सीमित करने के लिए आप --cap-drop का उपयोग करके अनावश्यक क्षमताएँ हटा सकते हैं।

यहाँ हम NET_RAW क्षमता हटाते हैं। NET_RAW की आवश्यकता वाली ping कमांड इसके बाद विफल हो जाएगी, जिससे यह प्रतिबंध प्रदर्शित होगा।

docker run --rm -it --cap-drop=NET_RAW alpine ping -c 1 localhost || echo "Ping failed: NET_RAW capability dropped!"

कंटेनर संसाधनों को नियंत्रित करना

कंटेनर होस्ट के कर्नेल और संसाधनों को साझा करते हैं। किसी एक कंटेनर द्वारा संसाधनों के अनियंत्रित उपयोग से अन्य कंटेनरों या स्वयं होस्ट के लिए सेवा से इनकार (DoS) हो सकता है।

  • CPU सीमाएँ: किसी कंटेनर को CPU चक्रों पर एकाधिकार करने से रोकें।
  • मेमोरी सीमाएँ: किसी कंटेनर को उपलब्ध पूरी RAM इस्तेमाल करने से रोकें, ताकि सिस्टम अस्थिर न हो।

संसाधन सीमाएँ लागू करना

आप docker run के साथ सीधे CPU और मेमोरी की सीमाएँ तय कर सकते हैं। यह उदाहरण मेमोरी को 128MB और CPU उपयोग को 0.5 (एक CPU कोर के आधे) तक सीमित करता है।

इससे यह सुनिश्चित होता है कि आपका कंटेनर ठीक से व्यवहार करे और अन्य प्रक्रियाओं के संसाधन समाप्त न करे।

docker run --rm -it --memory="128m" --cpus="0.5" alpine sh -c "echo 'Container running with limited resources.' && free -h"

केवल-पठन फ़ाइल सिस्टम

कई अनुप्रयोगों को शुरू होने के बाद अपने रूट फ़ाइल सिस्टम में लिखने की आवश्यकता नहीं होती। फ़ाइल सिस्टम को केवल-पठन योग्य बनाने से आपको सुरक्षा के महत्वपूर्ण लाभ मिलते हैं:

  • छेड़छाड़ रोकता है: हमलावर मौजूदा फ़ाइलों को संशोधित या नई दुर्भावनापूर्ण फ़ाइलें लिख नहीं सकता।
  • स्थायित्व सीमित करता है: किए गए सभी परिवर्तन अस्थायी होते हैं और कंटेनर के पुनः आरंभ होने पर खो जाते हैं।
  • अपरिवर्तनीयता लागू करता है: यह ऐसी रूपरेखा को बढ़ावा देता है जिसमें कंटेनर आसानी से हटाए जा सकें और कॉन्फ़िगरेशन बाहरी हो।

केवल-पठन कंटेनर परिनियोजित करें

कंटेनर चलाते समय --read-only फ़्लैग का उपयोग करें। कंटेनर के फ़ाइल सिस्टम में लिखने का कोई भी प्रयास (स्पष्ट रूप से माउंट किए गए वॉल्यूम के बाहर) विफल हो जाएगा।

इस केवल-पठन कंटेनर में फ़ाइल बनाने का प्रयास करें:

docker run --rm -it --read-only alpine sh -c "touch /test.txt || echo 'Error: Cannot write to read-only filesystem!'"

रनटाइम सुरक्षा जाँच

रनटाइम में कंटेनरों को सुरक्षित करने के लिए निम्नलिखित में से कौन-सी अच्छी प्रथाएँ हैं?

रनटाइम सुरक्षा का पुनरावलोकन

बहुत अच्छा! आपने सीखा कि कंटेनर के चलते समय उसकी सुरक्षा कैसे बढ़ाई जाए:

  • न्यूनतम विशेषाधिकार: केवल आवश्यक अनुमतियाँ दें।
  • गैर-रूट उपयोगकर्ता: प्रक्रियाओं को root के रूप में चलाने से बचें।
  • क्षमताएँ: अनावश्यक Linux क्षमताएँ हटाएँ।
  • संसाधन सीमाएँ: CPU और मेमोरी के उपयोग को नियंत्रित करें।
  • केवल-पठन: लिखने से रोकने के लिए फ़ाइल सिस्टम को अपरिवर्तनीय बनाएँ।

इन प्रथाओं से हमले की सतह और संभावित छेड़छाड़ का प्रभाव काफी कम हो जाता है। अभ्यास करते रहें!

शुरुआत निःशुल्क

एआई शिक्षक के साथ Docker और DevOps की बुनियाद सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “रनटाइम कंटेनर सुरक्षा” पाठ निःशुल्क है?

हाँ — Docker और DevOps की बुनियाद अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “रनटाइम कंटेनर सुरक्षा” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Docker और DevOps की बुनियाद पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“रनटाइम कंटेनर सुरक्षा” में मैं क्या सीखूँगा?

रनटाइम के दौरान कंटेनर्स को सुरक्षित करने की सर्वोत्तम प्रथाएँ लागू कीजिए, जिनमें उपयोगकर्ता विशेषाधिकार और संसाधन सीमाएँ शामिल हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Docker और DevOps की बुनियाद का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Docker और DevOps की बुनियाद शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Docker और DevOps की बुनियाद शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“रनटाइम कंटेनर सुरक्षा” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Docker और DevOps की बुनियाद पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Docker और DevOps की बुनियाद पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कंटेनर इमेज सुरक्षा स्कैनिंग
  2. रनटाइम कंटेनर सुरक्षा
  3. सीक्रेट्स प्रबंधन और RBAC
  4. नेटवर्क नीतियाँ और न्यूनतम-अधिकार नेटवर्किंग
← Docker और DevOps की बुनियाद पर वापस जाएँ