Kubernetes SecurityContext(s)

हैकट्रिक्स का समर्थन करें

PodSecurityContext

दस्तावेज़ से:

Pod की सुरक्षा संदर्भ को निर्दिष्ट करते समय आप कई गुणों का उपयोग कर सकते हैं। एक रक्षात्मक सुरक्षा दृष्टिकोण से आपको ध्यान में रखना चाहिए:

  • runASNonRoot को सत्य रूप में रखना चाहिए

  • runAsUser कॉन्फ़िगर करना

  • यदि संभव हो तो अनुमतियों को सीमित करना, seLinuxOptions और seccompProfile को सूचित करना

  • runAsGroup और supplementaryGroups के माध्यम से विशेषाधिकार समूह उपयोग न करें

fsGroup पूर्णांक

एक विशेष सहायक समूह जो पॉड में सभी कंटेनरों पर लागू होता है। कुछ वॉल्यूम प्रकार किस्में Kubelet को उस वॉल्यूम की स्वामित्व को बदलने की अनुमति होती है कि पॉड द्वारा स्वामित्वित किया जाए: 1. स्वामित्वी GID FSGroup होगा 2. सेटगिड बिट सेट होता है (वॉल्यूम में नए फ़ाइलें FSGroup द्वारा स्वामित्वित होंगी) 3. अनुमति बिट्स OR किए जाते हैं rw-rw---- अगर असेट नहीं किया गया है, तो Kubelet किसी भी वॉल्यूम की स्वामित्व और अनुमतियों को संशोधित नहीं करेगा

fsGroupChangePolicy स्ट्रिंग

यह वॉल्यूम की स्वामित्व और अनुमति को बदलने का व्यवहार परिभाषित करता है पहले पॉड के अंदर प्रकट होने से पहले।

runAsGroup पूर्णांक

कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए GID। अगर असेट नहीं किया गया है तो रनटाइम डिफ़ॉल्ट का उपयोग किया जाएगा। सुरक्षा संदर्भ में भी सेट किया जा सकता है।

runAsNonRoot बूलियन

इसका इशारा है कि कंटेनर को गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए। यदि सत्य है, तो Kubelet रनटाइम पर छवि का मान्यता प्रदान करेगा ताकि यह सुनिश्चित कर सके कि यह UID 0 (रूट) के रूप में नहीं चलता है और यदि ऐसा होता है तो कंटेनर को प्रारंभ करने में विफल हो जाएगा।

runAsUser पूर्णांक

कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID। अगर अनिर्दिष्ट है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता का उपयोग किया जाएगा।

seLinuxOptions SELinuxOptions अधिक जानकारी के लिए seLinux

सभी कंटेनरों पर लागू करने के लिए SELinux संदर्भ। यदि अनिर्दिष्ट है, तो कंटेनर रनटाइम प्रत्येक कंटेनर के लिए एक यादृच्छिक SELinux संदर्भ आवंटित करेगा।

seccompProfile SeccompProfile अधिक जानकारी के लिए Seccomp

इस पॉड में कंटेनरों द्वारा उपयोग करने के लिए seccomp विकल्प

supplementalGroups पूर्णांक सरणी

प्रत्येक कंटेनर में चलने वाली पहली प्रक्रिया को लागू होने वाली समूहों की सूची, कंटेनर के प्राथमिक GID के अतिरिक्त।

sysctls Sysctl सरणी अधिक जानकारी के लिए sysctls

Sysctls में नेमस्पेस्ड sysctls की सूची होती है जो पॉड के लिए उपयोग होती है। असमर्थित sysctls वाले पॉड (कंटेनर रनटाइम द्वारा) लॉन्च नहीं हो सकते।

सभी कंटेनरों पर लागू होने वाले विंडोज़ विशेष सेटिंग्स। यदि अनिर्दिष्ट है, तो कंटेनर के सुरक्षा संदर्भ के भीतर के विकल्पों का उपयोग किया जाएगा।

## सुरक्षा संदर्भ

दस्तावेज़ से:

यह संदर्भ कंटेनर परिभाषाओं के अंदर सेट किया जाता है। एक रक्षात्मक सुरक्षा दृष्टिकोण से आपको ध्यान में रखना चाहिए:

  • allowPrivilegeEscalation को False पर सेट करें

  • संवेदनशील capabilities जोड़ना नहीं है (और जो आपको चाहिए नहीं हैं, उन्हें हटा दें)

  • privileged को False पर सेट करें

  • संभावना हो तो readOnlyFilesystem को True पर सेट करें

  • runAsNonRoot को True पर सेट करें और एक runAsUser सेट करें

  • संभावना हो तो permissions को सीलिनक्स विकल्प और seccompProfile की सीमित करना विचार करें

  • runAsGroup के माध्यम से privilege group एक्सेस न दें।

ध्यान दें कि SecurityContext और PodSecurityContext में सेट किए गए गुण, SecurityContext में निर्दिष्ट मान को प्राथमिकता देते हैं।

AllowPrivilegeEscalation यह नियंत्रित करता है कि क्या एक प्रक्रिया अपने माता प्रक्रिया से अधिक प्रिविलेज प्राप्त कर सकती है। यह बूल सीधे नियंत्रित करता है कि क्या no_new_privs फ्लैग कंटेनर प्रक्रिया पर सेट किया जाएगा। AllowPrivilegeEscalation हमेशा सत्य होता है जब कंटेनर Privileged के रूप में चलाया जाता है या CAP_SYS_ADMIN है

capabilities Capabilities More info about Capabilities

कंटेनर चलाने के समय जोड़ने/हटाने के लिए क्षमताएँ। डिफ़ॉल्ट रूप से क्षमताओं का एक डिफ़ॉल्ट सेट होता है।

privileged boolean

निर्दिष्ट प्रकार में procMount देखता है कि कंटेनर के लिए कौन सा proc mount प्रयोग करना है। डिफ़ॉल्ट DefaultProcMount है जो केवल पढ़ने वाले पथों और मास्क किए गए पथों के लिए कंटेनर रनटाइम डिफ़ॉल्ट का उपयोग करता है।

क्या इस कंटेनर के पास एक केवल पढ़ने वाला रूट फ़ाइल सिस्टम है। डिफ़ॉल्ट फॉल्स है।

runAsGroup integer

कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए GID। अगर असेट नहीं है तो रनटाइम डिफ़ॉल्ट का उपयोग किया जाएगा।

runAsNonRoot boolean

इसका संकेत है कि कंटेनर एक गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए। अगर सत्य है, तो कुबलेट रनटाइम प्रतिक्रिया में यह सुनिश्चित करेगा कि यह यूआईडी 0 (रूट) के रूप में नहीं चलता है और यदि ऐसा है तो कंटेनर को शुरू करने में विफल हो जाएगा।

runAsUser integer

कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID। अगर अनिर्दिष्ट है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता का उपयोग किया जाएगा।

seLinuxOptions SELinuxOptions More info about seLinux

कंटेनर पर लागू किए जाने वाले SELinux संदर्भ। अगर अनिर्दिष्ट है, तो कंटेनर रनटाइम हर कंटेनर के लिए एक यादृच्छिक SELinux संदर्भ आवंटित करेगा।

इस कंटेनर द्वारा उपयोग करने के लिए seccomp विकल्प

सभी कंटेनरों पर लागू होने वाले Windows विशेष सेटिंग्स

संदर्भ

HackTricks का समर्थन करें

Last updated