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 में नेमस्पेस्ड sysctls की सूची होती है जो पॉड के लिए उपयोग होती है। असमर्थित sysctls वाले पॉड (कंटेनर रनटाइम द्वारा) लॉन्च नहीं हो सकते। | |
सभी कंटेनरों पर लागू होने वाले विंडोज़ विशेष सेटिंग्स। यदि अनिर्दिष्ट है, तो कंटेनर के सुरक्षा संदर्भ के भीतर के विकल्पों का उपयोग किया जाएगा। | |
## सुरक्षा संदर्भ |
यह संदर्भ कंटेनर परिभाषाओं के अंदर सेट किया जाता है। एक रक्षात्मक सुरक्षा दृष्टिकोण से आपको ध्यान में रखना चाहिए:
allowPrivilegeEscalation को False पर सेट करें
संवेदनशील capabilities जोड़ना नहीं है (और जो आपको चाहिए नहीं हैं, उन्हें हटा दें)
privileged को False पर सेट करें
संभावना हो तो readOnlyFilesystem को True पर सेट करें
runAsNonRoot को True पर सेट करें और एक runAsUser सेट करें
संभावना हो तो permissions को सीलिनक्स विकल्प और seccompProfile की सीमित करना विचार करें
runAsGroup के माध्यम से privilege group एक्सेस न दें।
ध्यान दें कि SecurityContext और PodSecurityContext में सेट किए गए गुण, SecurityContext में निर्दिष्ट मान को प्राथमिकता देते हैं।
allowPrivilegeEscalation boolean | AllowPrivilegeEscalation यह नियंत्रित करता है कि क्या एक प्रक्रिया अपने माता प्रक्रिया से अधिक प्रिविलेज प्राप्त कर सकती है। यह बूल सीधे नियंत्रित करता है कि क्या no_new_privs फ्लैग कंटेनर प्रक्रिया पर सेट किया जाएगा। AllowPrivilegeEscalation हमेशा सत्य होता है जब कंटेनर Privileged के रूप में चलाया जाता है या CAP_SYS_ADMIN है |
capabilities Capabilities More info about Capabilities | कंटेनर चलाने के समय जोड़ने/हटाने के लिए क्षमताएँ। डिफ़ॉल्ट रूप से क्षमताओं का एक डिफ़ॉल्ट सेट होता है। |
privileged boolean | निर्दिष्ट प्रकार में procMount देखता है कि कंटेनर के लिए कौन सा proc mount प्रयोग करना है। डिफ़ॉल्ट DefaultProcMount है जो केवल पढ़ने वाले पथों और मास्क किए गए पथों के लिए कंटेनर रनटाइम डिफ़ॉल्ट का उपयोग करता है। |
readOnlyRootFilesystem boolean | क्या इस कंटेनर के पास एक केवल पढ़ने वाला रूट फ़ाइल सिस्टम है। डिफ़ॉल्ट फॉल्स है। |
runAsGroup integer | कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए GID। अगर असेट नहीं है तो रनटाइम डिफ़ॉल्ट का उपयोग किया जाएगा। |
runAsNonRoot boolean | इसका संकेत है कि कंटेनर एक गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए। अगर सत्य है, तो कुबलेट रनटाइम प्रतिक्रिया में यह सुनिश्चित करेगा कि यह यूआईडी 0 (रूट) के रूप में नहीं चलता है और यदि ऐसा है तो कंटेनर को शुरू करने में विफल हो जाएगा। |
runAsUser integer | कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID। अगर अनिर्दिष्ट है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता का उपयोग किया जाएगा। |
seLinuxOptions SELinuxOptions More info about seLinux | कंटेनर पर लागू किए जाने वाले SELinux संदर्भ। अगर अनिर्दिष्ट है, तो कंटेनर रनटाइम हर कंटेनर के लिए एक यादृच्छिक SELinux संदर्भ आवंटित करेगा। |
इस कंटेनर द्वारा उपयोग करने के लिए seccomp विकल्प। | |
सभी कंटेनरों पर लागू होने वाले Windows विशेष सेटिंग्स। |
संदर्भ
Last updated