Openshift - SCC

Reading time: 3 minutes

इस पृष्ठ के मूल लेखक हैं Guillaume

परिभाषा

OpenShift के संदर्भ में, SCC का अर्थ है Security Context Constraints। Security Context Constraints नीतियाँ हैं जो OpenShift क्लस्टरों पर चल रहे पॉड्स के लिए अनुमतियों को नियंत्रित करती हैं। ये उन सुरक्षा मानकों को परिभाषित करती हैं जिनके तहत एक पॉड को चलाने की अनुमति है, जिसमें यह शामिल है कि यह कौन-सी क्रियाएँ कर सकता है और यह कौन-से संसाधनों तक पहुँच सकता है।

SCCs प्रशासकों को क्लस्टर में सुरक्षा नीतियों को लागू करने में मदद करते हैं, यह सुनिश्चित करते हुए कि पॉड्स उचित अनुमतियों के साथ चल रहे हैं और संगठनात्मक सुरक्षा मानकों का पालन कर रहे हैं। ये प्रतिबंध पॉड सुरक्षा के विभिन्न पहलुओं को निर्दिष्ट कर सकते हैं, जैसे:

  1. Linux क्षमताएँ: कंटेनरों के लिए उपलब्ध क्षमताओं को सीमित करना, जैसे विशेषाधिकार प्राप्त क्रियाएँ करने की क्षमता।
  2. SELinux संदर्भ: कंटेनरों के लिए SELinux संदर्भों को लागू करना, जो यह परिभाषित करते हैं कि प्रक्रियाएँ सिस्टम पर संसाधनों के साथ कैसे इंटरैक्ट करती हैं।
  3. केवल पढ़ने योग्य रूट फ़ाइल सिस्टम: कुछ निर्देशिकाओं में फ़ाइलों को संशोधित करने से कंटेनरों को रोकना।
  4. अनुमत होस्ट निर्देशिकाएँ और वॉल्यूम: यह निर्दिष्ट करना कि कौन-से होस्ट निर्देशिकाएँ और वॉल्यूम एक पॉड माउंट कर सकता है।
  5. UID/GID के रूप में चलाना: यह निर्दिष्ट करना कि कंटेनर प्रक्रिया किस उपयोगकर्ता और समूह आईडी के तहत चलती है।
  6. नेटवर्क नीतियाँ: पॉड्स के लिए नेटवर्क पहुँच को नियंत्रित करना, जैसे कि निकासी ट्रैफ़िक को प्रतिबंधित करना।

SCCs को कॉन्फ़िगर करके, प्रशासक यह सुनिश्चित कर सकते हैं कि पॉड्स उचित स्तर की सुरक्षा अलगाव और पहुँच नियंत्रण के साथ चल रहे हैं, जिससे क्लस्टर के भीतर सुरक्षा कमजोरियों या अनधिकृत पहुँच के जोखिम को कम किया जा सके।

बुनियादी रूप से, हर बार जब एक पॉड तैनाती का अनुरोध किया जाता है, तो एक प्रवेश प्रक्रिया निम्नलिखित के रूप में निष्पादित होती है:

यह अतिरिक्त सुरक्षा परत डिफ़ॉल्ट रूप से विशेषाधिकार प्राप्त पॉड्स के निर्माण, होस्ट फ़ाइल सिस्टम को माउंट करने, या किसी भी विशेषताओं को सेट करने से रोकती है जो विशेषाधिकार वृद्धि का कारण बन सकती हैं।

Pod Escape Privileges

SCC सूची

Openshift Client के साथ सभी SCC की सूची बनाने के लिए:

bash
$ oc get scc #List all the SCCs

$ oc auth can-i --list | grep securitycontextconstraints #Which scc user can use

$ oc describe scc $SCC #Check SCC definitions

सभी उपयोगकर्ताओं को डिफ़ॉल्ट SCC "restricted" और "restricted-v2" तक पहुँच है, जो सबसे सख्त SCCs हैं।

SCC का उपयोग करें

किसी पॉड के लिए उपयोग की जाने वाली SCC एक एनोटेशन के अंदर परिभाषित होती है:

bash
$ oc get pod MYPOD -o yaml | grep scc
openshift.io/scc: privileged

जब एक उपयोगकर्ता के पास कई SCCs तक पहुंच होती है, तो सिस्टम उस SCC का उपयोग करेगा जो सुरक्षा संदर्भ मानों के साथ मेल खाता है। अन्यथा, यह एक निषिद्ध त्रुटि को ट्रिगर करेगा।

bash
$ oc apply -f evilpod.yaml #Deploy a privileged pod
Error from server (Forbidden): error when creating "evilpod.yaml": pods "evilpod" is forbidden: unable to validate against any security context constrain

SCC Bypass

OpenShift - SCC bypass

References