Kubernetes SecurityContext(s)

हैकट्रिक्स का समर्थन करें और लाभ प्राप्त करें!

PodSecurityContext

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

  • runASNonRoot को True के रूप में रखें

  • runAsUser को कॉन्फ़िगर करें

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

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

fsGroup integer

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

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

runAsGroup integer

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

runAsNonRoot boolean

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

runAsUser integer

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

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

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

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

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

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

  • संभव होने पर, readOnlyFilesystem को True में सेट करें

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

  • संभव होने पर, seLinuxOptions और seccompProfile को निर्दिष्ट करके permissions को सीमित करें

  • runAsGroup के माध्यम से privilege group उपयोग की पहुंच न दें।

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

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

capabilities Capabilities अधिक जानकारी के बारे में Capabilities

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

privileged boolean

निहित कंटेनर मोड में कंटेनर चलाएँ। निहित कंटेनर में प्रक्रियाएं मूलतः होस्ट पर रूट के समान होती हैं। डिफ़ॉल्ट रूप से यह असत्य होता है।

procMount string

procMount कंटेनर के लिए प्रोसेस माउंट के प्रकार को दर्शाता है। डिफ़ॉल्ट रूप से यह DefaultProcMount होता है जो कंटेनर रनटाइम की डिफ़ॉल्ट पठों के लिए रोड़ों और मास्क की डिफ़ॉल्ट सेट का उपयोग करता है।

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

runAsGroup integer

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

runAsNonRoot boolean

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

runAsUser integer

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

<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.

Last updated