2016-11-07 14 views
8

मैं वर्तमान में उच्च प्रदर्शन क्लस्टर (एचपीसी) पर डॉकर उपलब्ध कराने के लिए एक सेटअप पर काम कर रहा हूं। विचार यह है कि हमारे समूह में प्रत्येक उपयोगकर्ता एक निश्चित समय के लिए मशीन आरक्षित करने में सक्षम होना चाहिए और डॉकर को "सामान्य तरीके" में उपयोग करने में सक्षम होना चाहिए। डॉकर सीएलआई के माध्यम से डॉकर डेमन तक पहुंचने का मतलब है।कुछ डॉकर रन विकल्प अक्षम करें

ऐसा करने के लिए, उपयोगकर्ता को डॉकर समूह में जोड़ा जाएगा। लेकिन यह हमारे लिए एक बड़ी सुरक्षा समस्या लगाता है, क्योंकि इसका मूल रूप से मतलब है कि उस मशीन पर उपयोगकर्ता के पास रूट विशेषाधिकार हैं।

नया विचार उपयोगकर्ता नामस्थान मैपिंग विकल्प का उपयोग करना है (जैसा कि https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-user-namespace-options में वर्णित है)। जैसा कि मैंने इसे देखा, यह हमारी सबसे बड़ी सुरक्षा चिंता से निपटने वाला होगा कि एक कंटेनर में जड़ मेजबान मशीन पर रूट के समान ही है।

लेकिन जब तक उपयोगकर्ता --userns = होस्ट के माध्यम से इसे बाईपास करने में सक्षम होते हैं, यह किसी भी तरह से सुरक्षा में वृद्धि नहीं करता है।

क्या यह और अन्य डॉकर रन विकल्पों को अक्षम करने का कोई तरीका है?

+0

आप एक खोल स्क्रिप्ट है कि 'डोकर रन का शुभारंभ करेंगे लिख सकते हैं ...', लेकिन यह एक दोषपूर्ण अवधारणा की तरह दिखता है – user2915097

+0

मुझे लगता है कि केवल सीएलआई को बदलने या बदलने से बहुत मदद नहीं मिलती है, क्योंकि डॉकर डेमॉन सॉकेट अभी भी इन विकल्पों को स्वीकार करेगा। तो आप सॉकेट के साथ बातचीत करने के लिए बस एक और प्रोग्राम का उपयोग कर सकते हैं। परिवर्तन को डॉकर डेमन में विकल्प को अक्षम करना चाहिए। – StateOfTheArt89

+0

उन्हें डॉकर सीएलआई तक पहुंच की आवश्यकता क्यों है? यदि उस आवश्यकता को हटाया जा सकता है, तो आप उन्हें एक ऐसी स्क्रिप्ट तक पहुंच सकते हैं जो किसी भी छवि को कंटेनर के रूप में बहुत कम सुरक्षा जोखिम के साथ फैलाता है। – BMitch

उत्तर

2

issue 22223

में उल्लेख किया है वहाँ तरीकों से उन डोकर रन के माध्यम से विशेषाधिकार तरक्की कर सकते हैं की एक पूरी बहुत कुछ कर रहे हैं, --privileged का उपयोग करके जैसे।
आप को रोक सकता है इस द्वारा:

  • भी नहीं सीधे, उत्पादन में डेमॉन के लिए पहुँच प्रदान, और स्क्रिप्ट का उपयोग

(जो नहीं है क्या तुम यहाँ चाहते हैं)

  • या कुछ विकल्पों को अस्वीकार करने के लिए auth plugin का उपयोग करके।

है:

dockerd --authorization-plugin=plugin1 

कौन सा करने के लिए नेतृत्व कर सकते हैं:

https://docs.docker.com/engine/extend/images/authz_deny.png

+1

यहां एक बुनियादी डॉकर प्राधिकरण प्लगइन उदाहरण है: https://github.com/twistlock/authz – VonC

संबंधित मुद्दे