डेवलपर टूल · Docker रन टू Docker Compose कन्वर्टर
कंटेनर को रूट के रूप में चलाना: क्या --user और उपयोगकर्ता: परिवर्तन और क्यों
· यह क्यों मायने रखती है
डाक में काम करनेवाला मज़दूर कंटेनरों सुरक्षा
जब तक छवि अन्यथा न कहे, आपके कंटेनर में प्रक्रिया रूट है। यह पोस्ट बताती है कि होस्ट पर इसका क्या मतलब है, --user और Compose उपयोगकर्ता: कुंजी इसे कैसे बदलते हैं, और इसके बाद आने वाली फ़ाइल-स्वामित्व समस्याएं।
फ़ाइलें जिन्हें आप हटा नहीं सकते - एक बाइंड माउंट एक कंटेनर चलाने के बाद रूट-स्वामित्व वाली फ़ाइलों से भरा होता है
फ़ाइलें जिन्हें आप हटा नहीं सकते - एक बाइंड माउंट एक कंटेनर चलाने के बाद रूट-स्वामित्व वाली फ़ाइलों से भरा होता है। साक्ष्य: बाइंड-माउंटेड आउटपुट पहचान बेमेल को उजागर कर सकता है, पार्सिंग निदान नहीं कर सकता है। डिस्पोज़ेबल लिटरल्स के साथ रनटाइम पहचान को पुन: प्रस्तुत करें। प्रत्येक स्रोत घटना को उपयोगकर्ता माउंट क्षमताओं के साथ जोड़ें; गंतव्य समीक्षा के लिए नामस्थान और स्वामित्व आरक्षित करें।
सुरक्षा घटना से यह भी पता चलता है कि एक अलग सुरक्षा घटना सीमा यह है कि छवि USER और एंट्रीपॉइंट स्विच को निरीक्षण या छवि स्रोतों की आवश्यकता होती है। साक्ष्य: छवि USER और एंट्रीपॉइंट स्विच के लिए निरीक्षण या छवि स्रोतों की आवश्यकता होती है। यह रनटाइम पहचान बाधा एक रोक बिंदु है। विनिर्माण व्यवहार के बिना उपयोगकर्ता माउंट क्षमताओं का निरीक्षण करें, फिर नेमस्पेस और स्वामित्व के लिए होस्ट चेक का दस्तावेजीकरण करें।
अंदर रूट बाहर रूट है - डिफ़ॉल्ट उपयोगकर्ता नेमस्पेस सेटिंग्स के साथ, कंटेनर में UID 0 माउंटेड फ़ाइलों के लिए होस्ट पर UID 0 है
अंदर रूट बाहर रूट है - डिफ़ॉल्ट उपयोगकर्ता नेमस्पेस सेटिंग्स के साथ, कंटेनर में UID 0 माउंटेड फ़ाइलों के लिए होस्ट पर UID 0 है। साक्ष्य: UID शून्य होस्ट प्रभाव नेमस्पेस कॉन्फ़िगरेशन पर निर्भर करते हैं जो यहां नहीं पढ़ा गया है। उपयोगकर्ता माउंट क्षमताओं में रनटाइम पहचान टोकन ट्रेस करें। अंतिम-मूल्य वाले फ़ील्ड से ऑर्डर किए गए मानों को अलग करें; नामस्थान और स्वामित्व संग्रह से बाहर है।
एक संबंधित सुरक्षा तंत्र सीमा यह है कि एक अलग सुरक्षा व्याकरण सीमा यह है कि एक 1000:1000 उदाहरण संरक्षण को प्रदर्शित करता है न कि स्वामित्व की गारंटी को। साक्ष्य: 1000:1000 उदाहरण संरक्षण को दर्शाता है न कि स्वामित्व की गारंटी को। उपयोगकर्ता माउंट क्षमताओं में एक सदस्य या स्केलर की भविष्यवाणी करने के लिए इस रनटाइम पहचान तथ्य का उपयोग करें। नामस्थान और स्वामित्व के बारे में कुछ भी निर्णय लेने से पहले चेतावनियों की जाँच करें।
--user उपयोगकर्ता बन जाता है: - संख्यात्मक UID:GID बनाम नाम, और जब छवि में कोई मिलान खाता नहीं है तो संख्यात्मक सुरक्षित क्यों है
--user उपयोगकर्ता बन जाता है: - संख्यात्मक UID:GID बनाम नाम, और जब छवि में कोई मिलान खाता नहीं है तो संख्यात्मक सुरक्षित क्यों है। साक्ष्य: --user उपयोगकर्ता बन जाता है और संख्यात्मक UID:GID पाठ उद्धृत किया जाता है। इसके मॉडल से रनटाइम पहचान क्रमबद्धता का मूल्यांकन करें। उपयोगकर्ता माउंट क्षमताओं में उद्धरण प्रकारों की सुरक्षा करता है लेकिन नामस्थान और स्वामित्व के लिए कोई परिचालन प्रमाण नहीं देता है।
दूसरा सुरक्षा क्रमांकन अवलोकन एक अलग सुरक्षा आउटपुट सीमा है जो रीड_ओनली कैप_ड्रॉप और सिक्योरिटी_ऑप्ट मैप है जबकि रूटलेस मोड ऐसा नहीं करता है। साक्ष्य: रीड_ओनली कैप_ड्रॉप और सिक्योरिटी_ऑप्ट मैप जबकि रूटलेस मोड ऐसा नहीं करता। यह रनटाइम पहचान आउटपुट सेटिंग्स को अनुपलब्ध संदर्भ से अलग करता है। उपयोगकर्ता माउंट क्षमताओं को समीक्षा योग्य रखें और नामस्थान और स्वामित्व की स्वतंत्र रूप से जांच करें।
वे छवियाँ जो पहले से ही Dockerफ़ाइल में विशेषाधिकारों को छोड़ देती हैं - USER, और वे छवियाँ जो उपयोगकर्ताओं को उनके प्रवेश बिंदु में स्विच करती हैं
वे छवियाँ जो पहले से ही विशेषाधिकार छोड़ देती हैं - Dockerफ़ाइल में USER, और वे छवियाँ जो उपयोगकर्ताओं को उनके प्रवेश बिंदु में स्विच करती हैं। अनुमान लगाने के बजाय रनटाइम पहचान अपवाद पर रुकें। उपयोगकर्ता माउंट क्षमताओं के निकट किसी भी अतिरिक्त को नामस्थान और स्वामित्व से जुड़े एक तैनाती-विशिष्ट कारण की आवश्यकता होती है।
एक अन्य सुरक्षा अपवाद बाधा यह है कि एक अलग सुरक्षा अपवाद सीमा यह है कि नेमस्पेस रीमैपिंग और कुबेरनेट्स संदर्भ दायरे से बाहर हैं। साक्ष्य: नेमस्पेस रीमैपिंग और कुबेरनेट्स संदर्भ दायरे से बाहर हैं। मूल रनटाइम पहचान आदेश को चेतावनियों के पास रखें। तुलना से पता चलता है कि उपयोगकर्ता माउंट क्षमताओं में क्या शामिल है और कौन से नामस्थान और स्वामित्व निर्णय मैन्युअल रहता है।
कार्यान्वित उदाहरण: Docker रन को कन्वर्ट करना --user 1000:1000 -v /srv/app:/app - उपयोगकर्ता: कुंजी और डिस्क पर परिणामी स्वामित्व
कार्यान्वित उदाहरण: docker run --user 1000:1000 -v /srv/app:/app - उपयोगकर्ता: कुंजी और डिस्क पर परिणामी स्वामित्व को परिवर्तित करना। सिंथेटिक नामों से रनटाइम पहचान उदाहरण बनाएं। उत्पादन नाम स्थान और स्वामित्व विवरण को उजागर किए बिना प्रत्येक उपयोगकर्ता माउंट क्षमता आइटम को ट्रेस करने योग्य बनाएं।
वही सुरक्षा उदाहरण नमूना दर्शाता है कि एक अलग सुरक्षा उदाहरण सीमा यह है कि समीक्षा के लिए माउंट और क्षमताओं के बगल में पहचान दिखाई देती है। साक्ष्य: समीक्षा के लिए माउंट और क्षमताओं के बगल में पहचान दिखाई देती है। युग्मित रनटाइम पहचान तथ्य उपयोगकर्ता माउंट क्षमताओं में दिखाई देना चाहिए। उस पंक्ति को रिकॉर्ड करें और नामस्थान और स्वामित्व के बारे में धारणाओं से बचें।
अन्य सख्त कुंजियाँ - केवल पढ़ने के लिए, कैप_ड्रॉप: [ALL], सुरक्षा_ऑप्ट नो-न्यू-विशेषाधिकार, और रूटलेस Docker बड़े कदम के रूप में
अन्य सख्त कुंजियाँ - केवल पढ़ने के लिए, कैप_ड्रॉप: [ALL], सुरक्षा_ऑप्ट नो-न्यू-विशेषाधिकार, और रूटलेस Docker बड़े कदम के रूप में। रनटाइम पहचान परिणाम को एक अवलोकन योग्य उपयोगकर्ता माउंट क्षमताओं के अंतर में अनुवाद करें। Docker के पास बाद के नामस्थान और स्वामित्व निर्णय का स्वामित्व है।
सुरक्षा परिणाम कार्यान्वयन यह भी दिखाता है कि एक अलग सुरक्षा प्रभाव सीमा यह है कि बाइंड-माउंटेड आउटपुट पहचान बेमेल को उजागर कर सकता है, पार्सिंग निदान नहीं कर सकता है। स्प्लिट रनटाइम पहचान जिम्मेदारियां: रूपांतरण उपयोगकर्ता माउंट क्षमताओं को लिखता है, रिपॉजिटरी रहस्यों को हटा देता है, और ऑपरेटर नामस्थान और स्वामित्व को मान्य करते हैं।
इसमें क्या शामिल नहीं है - उपयोगकर्ता नेमस्पेस रीमैपिंग कॉन्फ़िगरेशन और कुबेरनेट्स सुरक्षा कॉन्टेक्स्ट
इसमें क्या शामिल नहीं है - उपयोगकर्ता नेमस्पेस रीमैपिंग कॉन्फ़िगरेशन और कुबेरनेट्स सुरक्षा कॉन्टेक्स्ट। यहां दिखाई गई उपयोगकर्ता माउंट क्षमता शाखाओं तक रनटाइम पहचान का दायरा सीमित करें। पड़ोसी प्रपत्र और डिफ़ॉल्ट नामस्थान और स्वामित्व प्रश्नों का उत्तर नहीं दे सकते।
एक और सुरक्षा दायरा सीमा एक अलग सुरक्षा सीमा सीमा का अनुसरण करती है जो UID शून्य होस्ट प्रभाव नेमस्पेस कॉन्फ़िगरेशन पर निर्भर करती है जो यहां नहीं पढ़ी गई है। इस रनटाइम पहचान सीमा को बहिष्करण के रूप में मानें। नामस्थान और स्वामित्व के बारे में अनुमानों के बजाय सटीक उपयोगकर्ता माउंट क्षमताओं को प्राथमिकता दें।
टेकअवे: तय करें कि आपकी प्रक्रिया कौन सी है - और स्टैक ऊपर लाने से पहले जांचें कि कन्वर्टर के आउटपुट में उपयोगकर्ता शामिल है:
टेकअवे: तय करें कि आपकी प्रक्रिया कौन सी है - और स्टैक ऊपर लाने से पहले जांचें कि कन्वर्टर के आउटपुट में उपयोगकर्ता शामिल है:। स्रोत विकल्प, मॉडल फ़ील्ड, उपयोगकर्ता माउंट क्षमताओं लाइन और चेतावनी के रूप में ऑडिट रनटाइम पहचान। नामस्थान और स्वामित्व की जाँच करने से पहले रहस्य हटाएँ।
अंत में, सुरक्षा टेकअवे स्रोत पुष्टि करता है कि एक अलग सुरक्षा निर्णय सीमा यह है कि --user उपयोगकर्ता बन जाता है और संख्यात्मक UID:GID पाठ उद्धृत किया जाता है। रनटाइम पहचान को संकीर्ण रूप से बंद करें: उपयोगकर्ता माउंट क्षमताएं एक उम्मीदवार है; नामस्थान और स्वामित्व और शेल तुल्यता गारंटी नहीं हैं।