यह इस खंड का बहु-पृष्ठ प्रिंट योग्य दृश्य है। प्रिंट करने के लिए यहां क्लिक करें.

इस पृष्ठ के सामान्य दृश्य पर लौटें.

सुरक्षा

अपने क्लाउड-नेटिव वर्कलोड को सुरक्षित रखने की अवधारणाएँ।

यह Kubernetes दस्तावेज़ीकरण अनुभाग आपको वर्कलोड को अधिक सुरक्षित तरीके से चलाने और Kubernetes क्लस्टर को सुरक्षित रखने के आवश्यक पहलुओं के बारे में सीखने में मदद करता है।

Kubernetes एक क्लाउड-नेटिव आर्किटेक्चर पर आधारित है और क्लाउड नेटिव सूचना सुरक्षा के लिए अच्छे अभ्यास के बारे में CNCF की सलाह का उपयोग करता है।

अपने क्लस्टर और उस पर चलाए जा रहे एप्लिकेशन को सुरक्षित करने के व्यापक संदर्भ के लिए Cloud Native Security and Kubernetes पढ़ें।

Kubernetes सुरक्षा तंत्र

Kubernetes में कई API और सुरक्षा नियंत्रण शामिल हैं, साथ ही नीतियाँ परिभाषित करने के तरीके भी हैं जो सूचना सुरक्षा प्रबंधन का हिस्सा बन सकते हैं।

कंट्रोल प्लेन सुरक्षा

किसी भी Kubernetes क्लस्टर के लिए एक प्रमुख सुरक्षा तंत्र Kubernetes API तक पहुँच को नियंत्रित करना है। कुबेरनेट्स आपसे अपेक्षा करता है कि आप कंट्रोल प्लेन के भीतर और कंट्रोल प्लेन एवं उसके क्लाइंट्स के बीच ट्रांजिट में डेटा एन्क्रिप्शन प्रदान करने के लिए TLS को कॉन्फ़िगर और उपयोग करें। आप कुबेरनेट्स कंट्रोल प्लेन के भीतर संग्रहीत डेटा के लिए एट-रेस्ट एन्क्रिप्शन भी सक्षम कर सकते हैं; यह आपके अपने वर्कलोड के डेटा के लिए एट-रेस्ट एन्क्रिप्शन का उपयोग करने से अलग है, जो कि एक अच्छा विचार हो सकता है।

सीक्रेट्स

Secret API उन कॉन्फ़िगरेशन मानों के लिए बुनियादी सुरक्षा प्रदान करता है जिन्हें गोपनीयता की आवश्यकता होती है।

वर्कलोड सुरक्षा

Pod security standards लागू करें ताकि यह सुनिश्चित हो सके कि Pods और उनके कंटेनर उचित रूप से अलग हैं। यदि आवश्यक हो तो आप कस्टम अलगाव परिभाषित करने के लिए RuntimeClasses का भी उपयोग कर सकते हैं।

नेटवर्क नीतियाँ आपको पॉड्स के बीच, या पॉड्स और आपके क्लस्टर के बाहर के नेटवर्क के बीच नेटवर्क ट्रैफिक को नियंत्रित करने देती हैं।

आप पॉड्स, उनके कंटेनरों और उनमें चलने वाली छवियों (images) के आसपास निवारक या खोजी नियंत्रण लागू करने के लिए व्यापक इकोसिस्टम से सुरक्षा नियंत्रण तैनात कर सकते हैं।

एडमिशन कंट्रोल

Admission controllers ऐसे प्लगइन हैं जो Kubernetes API अनुरोधों को इंटरसेप्ट करते हैं और अनुरोध में विशिष्ट फ़ील्ड के आधार पर अनुरोधों को मान्य या परिवर्तित कर सकते हैं। इन नियंत्रकों को विचारपूर्वक डिज़ाइन करने से Kubernetes APIs के संस्करण अपडेट में बदलने पर अनपेक्षित व्यवधानों से बचने में मदद मिलती है। डिज़ाइन संबंधी विचारों के लिए, Admission Webhook Good Practices देखें।

ऑडिटिंग

Kubernetes audit logging एक सुरक्षा-प्रासंगिक, कालानुक्रमिक रिकॉर्ड सेट प्रदान करता है जो क्लस्टर में कार्यों के अनुक्रम को दस्तावेज़ीकरण करता है। क्लस्टर उपयोगकर्ताओं द्वारा, Kubernetes API का उपयोग करने वाले एप्लिकेशन द्वारा, और कंट्रोल प्लेन द्वारा उत्पन्न गतिविधियों का ऑडिट करता है।

क्लाउड प्रदाता सुरक्षा

टिप्पणी: Items on this page refer to vendors external to Kubernetes. The Kubernetes project authors aren't responsible for those third-party products or projects. To add a vendor, product or project to this list, read the content guide before submitting a change. More information.

यदि आप अपने हार्डवेयर या किसी भिन्न क्लाउड प्रदाता पर Kubernetes क्लस्टर चला रहे हैं, तो सुरक्षा सर्वोत्तम प्रथाओं के लिए अपने दस्तावेज़ीकरण से परामर्श करें। नीचे कुछ लोकप्रिय क्लाउड प्रदाताओं के सुरक्षा दस्तावेज़ीकरण के लिंक दिए गए हैं:

क्लाउड प्रदाता सुरक्षा
IaaS प्रदाता लिंक
Alibaba Cloud https://www.alibabacloud.com/trust-center
Amazon Web Services https://aws.amazon.com/security
Google Cloud Platform https://cloud.google.com/security
Huawei Cloud https://www.huaweicloud.com/intl/en-us/securecenter/overallsafety
IBM Cloud https://www.ibm.com/cloud/security
Microsoft Azure https://docs.microsoft.com/en-us/azure/security/azure-security
Oracle Cloud Infrastructure https://www.oracle.com/security
Tencent Cloud https://www.tencentcloud.com/solutions/data-security-and-information-protection
VMware vSphere https://www.vmware.com/solutions/security/hardening-guides

नीतियाँ

आप Kubernetes-नेटिव तंत्रों का उपयोग करके सुरक्षा नीतियाँ परिभाषित कर सकते हैं, जैसे NetworkPolicy (नेटवर्क पैकेट फ़िल्टरिंग पर घोषणात्मक नियंत्रण) या ValidatingAdmissionPolicy (Kubernetes API का उपयोग करके कोई कौन से परिवर्तन कर सकता है इस पर घोषणात्मक प्रतिबंध)।

हालाँकि, आप कुबेरनेट्स के आसपास के व्यापक इकोसिस्टम (ecosystem) से नीति कार्यान्वयन पर भी भरोसा कर सकते हैं। कुबेरनेट्स ऐसे एक्सटेंशन तंत्र प्रदान करता है जिससे वे इकोसिस्टम प्रोजेक्ट्स सोर्स कोड समीक्षा, कंटेनर इमेज अनुमोदन, API एक्सेस कंट्रोल, नेटवर्किंग और बहुत कुछ पर अपने स्वयं के नीति नियंत्रण लागू कर सकें।

नीति तंत्रों और Kubernetes के बारे में अधिक जानकारी के लिए, Policies पढ़ें।

संबंधित Kubernetes सुरक्षा विषयों के बारे में जानें:

संदर्भ जानें:

प्रमाणित हों:

इस अनुभाग में और पढ़ें:

1 - क्लाउड नेटिव सुरक्षा और Kubernetes

अपने क्लाउड नेटिव वर्कलोड को सुरक्षित रखने की अवधारणाएँ।

Kubernetes एक क्लाउड नेटिव आर्किटेक्चर पर आधारित है और क्लाउड नेटिव सूचना सुरक्षा के लिए अच्छे अभ्यास के बारे में CNCF की सलाह का उपयोग करता है।

आगे पढ़ें और जानें कि Kubernetes आपको एक सुरक्षित क्लाउड नेटिव प्लेटफ़ॉर्म तैनात करने में कैसे मदद करने के लिए डिज़ाइन किया गया है।

क्लाउड नेटिव सूचना सुरक्षा

क्लाउड नेटिव सुरक्षा पर CNCF का श्वेत पत्र सुरक्षा नियंत्रणों और प्रथाओं को परिभाषित करता है जो विभिन्न जीवनचक्र चरणों के लिए उपयुक्त हैं।

Develop जीवनचक्र चरण

  • विकास परिवेशों की अखंडता सुनिश्चित करें।
  • अपने संदर्भ के लिए उपयुक्त सूचना सुरक्षा की अच्छी प्रथाओं का पालन करते हुए एप्लिकेशन डिज़ाइन करें।
  • समाधान डिज़ाइन के हिस्से के रूप में अंतिम उपयोगकर्ता सुरक्षा पर विचार करें।

इसे प्राप्त करने के लिए, आप यह कर सकते हैं:

  1. एक ऐसी आर्किटेक्चर अपनाएँ, जैसे zero trust, जो आंतरिक खतरों के लिए भी अटैक सर्फेस को कम करती है।
  2. एक कोड समीक्षा प्रक्रिया परिभाषित करें जो सुरक्षा संबंधी चिंताओं पर विचार करे।
  3. अपने सिस्टम या एप्लिकेशन का एक थ्रेट मॉडल बनाएँ जो ट्रस्ट सीमाओं की पहचान करे। उस थ्रेट मॉडल का उपयोग जोखिमों की पहचान करने और उन्हें कैसे संभालना है यह निर्धारित करने के लिए करें।
  4. उन्नत सुरक्षा स्वचालन शामिल करें, जैसे fuzzing और security chaos engineering, जहाँ यह उचित हो।

Distribute जीवनचक्र चरण

  • आप जो कंटेनर इमेज निष्पादित करते हैं उनकी सप्लाई चेन की सुरक्षा सुनिश्चित करें।
  • क्लस्टर और अन्य घटकों की सप्लाई चेन की सुरक्षा सुनिश्चित करें जो आपका एप्लिकेशन निष्पादित करते हैं। उदाहरण के लिए, इसमें एक बाहरी डेटाबेस शामिल हो सकता है जिसे आपका क्लाउड नेटिव एप्लिकेशन persistence के लिए उपयोग करता है।

इसे प्राप्त करने के लिए, आप यह कर सकते हैं:

  1. ज्ञात कमज़ोरियों के लिए कंटेनर इमेज और अन्य आर्टिफैक्ट स्कैन करें।
  2. सुनिश्चित करें कि सॉफ़्टवेयर वितरण ट्रांज़िट में एन्क्रिप्शन का उपयोग करे, सॉफ़्टवेयर स्रोत के लिए विश्वास की श्रृंखला के साथ।
  3. अपडेट उपलब्ध होने पर, विशेष रूप से सुरक्षा घोषणाओं के जवाब में, dependencies अपडेट करने की प्रक्रियाएँ अपनाएँ और उनका पालन करें।
  4. सप्लाई चेन आश्वासन के लिए डिजिटल प्रमाणपत्र जैसे सत्यापन तंत्र का उपयोग करें।
  5. सुरक्षा जोखिमों के बारे में सचेत करने के लिए फ़ीड और अन्य तंत्रों की सदस्यता लें।
  6. आर्टिफैक्ट तक पहुँच प्रतिबंधित करें। कंटेनर इमेज को एक प्राइवेट रजिस्ट्री में रखें जो केवल अधिकृत क्लाइंट को इमेज pull करने की अनुमति देती है।

Deploy जीवनचक्र चरण

यह सुनिश्चित करें कि क्या तैनात किया जा सकता है, कौन इसे तैनात कर सकता है, और इसे कहाँ तैनात किया जा सकता है, इस पर उचित प्रतिबंध हों। आप distribute चरण के उपाय लागू कर सकते हैं, जैसे कंटेनर इमेज आर्टिफैक्ट की क्रिप्टोग्राफ़िक पहचान सत्यापित करना।

आप विभिन्न एप्लिकेशन और क्लस्टर घटकों को अलग-अलग namespaces में तैनात कर सकते हैं। कंटेनर और namespaces दोनों अलगाव तंत्र प्रदान करते हैं जो सूचना सुरक्षा के लिए प्रासंगिक हैं।

जब आप Kubernetes तैनात करते हैं, तो आप अपने एप्लिकेशन के रनटाइम परिवेश की नींव भी रखते हैं: एक Kubernetes क्लस्टर (या कई क्लस्टर)। उस इंफ्रास्ट्रक्चर को वे सुरक्षा गारंटी प्रदान करनी होगी जिनकी उच्च परतें अपेक्षा करती हैं।

Runtime जीवनचक्र चरण

Runtime चरण में तीन महत्वपूर्ण क्षेत्र शामिल हैं: एक्सेस, कंप्यूट, और स्टोरेज

Runtime सुरक्षा: एक्सेस

Kubernetes API ही आपके क्लस्टर को काम करवाती है। इस API की सुरक्षा करना प्रभावी क्लस्टर सुरक्षा प्रदान करने की कुंजी है।

Kubernetes दस्तावेज़ीकरण के अन्य पृष्ठों में एक्सेस नियंत्रण के विशिष्ट पहलुओं को कैसे सेट करें इस बारे में अधिक विवरण है। security checklist आपके क्लस्टर के लिए सुझाए गए बुनियादी जाँच प्रदान करती है।

इसके अलावा, आपके क्लस्टर को सुरक्षित करने का अर्थ है API एक्सेस के लिए प्रभावी authentication और authorization लागू करना। वर्कलोड और क्लस्टर घटकों के लिए सुरक्षा पहचान प्रदान करने और प्रबंधित करने के लिए ServiceAccounts का उपयोग करें।

Kubernetes API ट्रैफ़िक की सुरक्षा के लिए TLS का उपयोग करता है; सुनिश्चित करें कि आप TLS का उपयोग करके क्लस्टर तैनात करें (नोड्स और कंट्रोल प्लेन के बीच ट्रैफ़िक सहित) और एन्क्रिप्शन कुंजियों की सुरक्षा करें। यदि आप CertificateSigningRequests के लिए Kubernetes के अपने API का उपयोग करते हैं, तो वहाँ दुरुपयोग को प्रतिबंधित करने पर विशेष ध्यान दें।

Runtime सुरक्षा: कंप्यूट

Containers दो चीज़ें प्रदान करते हैं: एप्लिकेशन के बीच अलगाव और उन अलग-अलग एप्लिकेशन को एक ही होस्ट कंप्यूटर पर चलाने के लिए संयोजित करने का एक तंत्र। वे दो पहलू—अलगाव और एकत्रीकरण—का अर्थ है कि रनटाइम सुरक्षा में ट्रेडऑफ़ की पहचान करना और एक उचित संतुलन खोजना शामिल है।

Kubernetes कंटेनर सेट अप और चलाने के लिए एक container runtime पर निर्भर करता है। Kubernetes प्रोजेक्ट किसी विशिष्ट कंटेनर रनटाइम की अनुशंसा नहीं करता है, और आपको यह सुनिश्चित करना चाहिए कि आपके द्वारा चुना गया रनटाइम आपकी सूचना सुरक्षा आवश्यकताओं को पूरा करता है।

रनटाइम पर अपने कंप्यूट की सुरक्षा के लिए, आप यह कर सकते हैं:

  1. एप्लिकेशन के लिए Pod Security Standards लागू करें ताकि यह सुनिश्चित हो सके कि वे केवल आवश्यक privileges के साथ चलें।

  2. अपने नोड्स पर एक विशेष ऑपरेटिंग सिस्टम चलाएँ जो विशेष रूप से containerized वर्कलोड चलाने के लिए डिज़ाइन किया गया हो। यह आमतौर पर एक रीड-ओनली ऑपरेटिंग सिस्टम (immutable image) पर आधारित होता है जो केवल कंटेनर चलाने के लिए आवश्यक सेवाएँ प्रदान करता है।

    कंटेनर-विशिष्ट ऑपरेटिंग सिस्टम सिस्टम घटकों को अलग करने में मदद करते हैं और कंटेनर एस्केप की स्थिति में एक कम अटैक सर्फेस प्रस्तुत करते हैं।

  3. साझा संसाधनों को उचित रूप से आवंटित करने के लिए ResourceQuotas परिभाषित करें, और यह सुनिश्चित करने के लिए कि Pods अपनी संसाधन आवश्यकताओं को निर्दिष्ट करें, LimitRanges जैसे तंत्रों का उपयोग करें।

  4. अलगाव में सुधार के लिए वर्कलोड को विभिन्न नोड्स में विभाजित करें। यह सुनिश्चित करने के लिए कि विभिन्न ट्रस्ट संदर्भों वाले Pods अलग नोड सेट पर चलें, Kubernetes से या पारिस्थितिकी तंत्र से node isolation तंत्रों का उपयोग करें।

  5. एक container runtime का उपयोग करें जो सुरक्षा प्रतिबंध प्रदान करता है।

  6. Linux नोड्स पर, Linux सुरक्षा मॉड्यूल जैसे AppArmor या seccomp का उपयोग करें।

Runtime सुरक्षा: स्टोरेज

अपने क्लस्टर और उस पर चलने वाले एप्लिकेशन के लिए स्टोरेज की सुरक्षा के लिए, आप यह कर सकते हैं:

  1. अपने क्लस्टर को एक बाहरी स्टोरेज प्लगइन के साथ एकीकृत करें जो volumes के लिए रेस्ट में एन्क्रिप्शन प्रदान करता है।
  2. API ऑब्जेक्ट के लिए encryption at rest सक्षम करें।
  3. बैकअप का उपयोग करके डेटा स्थायित्व की सुरक्षा करें, और सत्यापित करें कि आप जब भी आवश्यक हो उन्हें पुनर्स्थापित कर सकते हैं।
  4. क्लस्टर नोड्स और उनके द्वारा उपयोग किए जाने वाले किसी भी नेटवर्क स्टोरेज के बीच कनेक्शन प्रमाणित करें।
  5. अपने स्वयं के एप्लिकेशन के भीतर डेटा एन्क्रिप्शन लागू करें।

एन्क्रिप्शन कुंजियों के लिए, विशेष हार्डवेयर के भीतर इन्हें उत्पन्न करना प्रकटीकरण जोखिमों के विरुद्ध सर्वोत्तम सुरक्षा प्रदान करता है। एक hardware security module आपको क्रिप्टोग्राफ़िक ऑपरेशन करने की अनुमति दे सकता है बिना सुरक्षा कुंजी को कहीं और कॉपी होने दिए।

नेटवर्किंग और सुरक्षा

आपको नेटवर्क सुरक्षा उपायों पर भी विचार करना चाहिए, जैसे NetworkPolicy या एक service mesh। Kubernetes के कुछ नेटवर्क प्लगइन वर्चुअल प्राइवेट नेटवर्क (VPN) ओवरले जैसी तकनीकों का उपयोग करके आपके क्लस्टर नेटवर्क के लिए एन्क्रिप्शन प्रदान करते हैं। डिज़ाइन के अनुसार, Kubernetes आपको अपने क्लस्टर के लिए अपना नेटवर्किंग प्लगइन उपयोग करने देता है। यदि आप managed Kubernetes का उपयोग करते हैं, तो प्रदाता ने शायद पहले से ही आपके लिए एक नेटवर्क प्लगइन चुना हो।

आप जो नेटवर्क प्लगइन चुनते हैं और जिस तरह से आप इसे एकीकृत करते हैं, वह ट्रांज़िट में सूचना की सुरक्षा पर महत्वपूर्ण प्रभाव डाल सकता है।

अवलोकनीयता और रनटाइम सुरक्षा

Kubernetes आपको अतिरिक्त टूलिंग के साथ अपने क्लस्टर का विस्तार करने देता है। आप अपने एप्लिकेशन और उन्हें चलाने वाले क्लस्टर की निगरानी या समस्या निवारण में मदद के लिए थर्ड-पार्टी समाधान सेट अप कर सकते हैं। आपको Kubernetes में बनी हुई कुछ बुनियादी अवलोकनीयता सुविधाएँ भी मिलती हैं। कंटेनरों में चलने वाला आपका कोड लॉग उत्पन्न कर सकता है, मेट्रिक्स प्रकाशित कर सकता है, या अन्य अवलोकनीयता डेटा प्रदान कर सकता है; तैनाती के समय, आपको यह सुनिश्चित करना होगा कि आपका क्लस्टर वहाँ सुरक्षा का उचित स्तर प्रदान करे।

यदि आप कोई मेट्रिक्स डैशबोर्ड या इसी तरह की कोई चीज़ सेट करते हैं, तो उस डैशबोर्ड में डेटा भरने वाले घटकों की श्रृंखला के साथ-साथ डैशबोर्ड की भी समीक्षा करें। सुनिश्चित करें कि पूरी श्रृंखला पर्याप्त लचीलेपन और अखंडता सुरक्षा के साथ डिज़ाइन की गई है ताकि आप किसी घटना के दौरान भी इस पर भरोसा कर सकें जब आपका क्लस्टर डिग्रेड हो सकता है।

जहाँ उचित हो, Kubernetes परत के नीचे सुरक्षा उपाय तैनात करें, जैसे क्रिप्टोग्राफ़िक रूप से मापा गया बूट या समय का प्रमाणित वितरण (जो लॉग और ऑडिट रिकॉर्ड की निष्ठा सुनिश्चित करने में मदद करता है)।

उच्च-आश्वासन परिवेश के लिए, यह सुनिश्चित करने के लिए क्रिप्टोग्राफ़िक सुरक्षा तैनात करें कि लॉग छेड़छाड़-रोधी और गोपनीय दोनों हों।

आगे क्या है

क्लाउड नेटिव सुरक्षा

Kubernetes और सूचना सुरक्षा