एक वितरित सिस्टम के लिए एक व्यापक प्रेक्षणीयता रणनीति (observability strategy) लागू करें।
→तीन स्तंभों को एकत्र और सहसंबंधित करें: Metrics (Prometheus के माध्यम से संख्यात्मक समय-श्रृंखला डेटा), Logs (Fluent Bit के माध्यम से संरचित घटनाएँ), और Traces (OpenTelemetry के माध्यम से अनुरोध प्रवाह)।
क्यों: कोई भी एक स्तंभ पर्याप्त नहीं है। जटिल माइक्रोसेवा आर्किटेक्चर में समस्याओं का त्वरित निदान करने के लिए उन्हें सहसंबंधित करना (उदाहरण के लिए, लॉग में ट्रेस IDs एम्बेड करना) आवश्यक है।
सभी Kubernetes क्लस्टर में सुरक्षा और संगठनात्मक नीतियों को स्वचालित रूप से लागू करें।
→OPA/Gatekeeper या Kyverno जैसे एक नीति इंजन का उपयोग करें, जिसे एक वैलिडेटिंग/म्यूटेटिंग एडमिशन कंट्रोलर के रूप में एकीकृत किया गया हो। नीतियों को Git में स्टोर करें और उन्हें GitOps के माध्यम से सिंक करें।
क्यों: यह स्वचालित, निवारक सुरक्षा प्रदान करता है, जिससे डेवलपर्स को उनकी CI/CD पाइपलाइन में तेजी से प्रतिक्रिया मिलती है, बजाय धीमी, मैन्युअल समीक्षा गेट्स के।
टीम के कौशल सेट और नीति की जटिलता के आधार पर Kubernetes के लिए एक नीति इंजन का चयन करें।
→Kyverno का उपयोग उन नीतियों के लिए करें जिन्हें परिचित Kubernetes-शैली YAML में व्यक्त किया जा सकता है। OPA/Gatekeeper का उपयोग जटिल नीतियों के लिए करें जिनके लिए एक अधिक शक्तिशाली, उद्देश्य-निर्मित भाषा (Rego) और बाहरी डेटा एकीकरण की आवश्यकता होती है।
क्यों: Kyverno का Kubernetes अभ्यासकर्ताओं के लिए सीखने का वक्र कम है। OPA/Rego अधिक शक्तिशाली है लेकिन एक नई भाषा सीखने की आवश्यकता है।
उत्पादन में तैनात कंटेनर इमेज की अखंडता और प्रामाणिकता सुनिश्चित करें।
→Sigstore/Cosign का उपयोग करके CI पाइपलाइन में इमेज साइनिंग लागू करें। एक नीति नियंत्रक (Kyverno, Gatekeeper) का उपयोग करके एक एडमिशन नीति बनाएं जो पॉड को बनने की अनुमति देने से पहले इमेज हस्ताक्षरों को सत्यापित करती है।
क्यों: यह सुनिश्चित करता है कि केवल विश्वसनीय CI पाइपलाइन द्वारा बनाई गई इमेज और जिनके साथ छेड़छाड़ नहीं की गई है, वे ही क्लस्टर में चल सकते हैं, जिससे अनधिकृत कोड निष्पादन को रोका जा सकता है।
संदर्भ↗
क्लस्टर के भीतर सभी सेवा-से-सेवा संचार को शून्य-विश्वास दृष्टिकोण के साथ सुरक्षित करें।
→एक सर्विस मेश (जैसे Istio, Linkerd) तैनात करें और सभी इन-मेश ट्रैफ़िक के लिए सख्त म्यूचुअल TLS (mTLS) सक्षम करें।
क्यों: mTLS ट्रांज़िट में एन्क्रिप्शन और क्लाइंट और सर्वर दोनों के लिए मजबूत, क्रिप्टोग्राफ़िक रूप से सत्यापन योग्य पहचान प्रदान करता है, जिससे क्लस्टर के अंदर स्पूफिंग और मैन-इन-द-मिडल हमलों को रोका जा सकता है।
क्लस्टर में चल रहे सभी वर्कलोड के लिए सुरक्षा सर्वोत्तम प्रथाओं को लागू करें।
→बिल्ट-इन पॉड सुरक्षा एडमिशन कंट्रोलर सक्षम करें। वर्कलोड के लिए `restricted` प्रोफ़ाइल और प्लेटफ़ॉर्म घटकों के लिए `baseline` लागू करने के लिए नेमस्पेस कॉन्फ़िगर करें।
क्यों: `restricted` प्रोफ़ाइल महत्वपूर्ण सुरक्षा को सख्त करती है (जैसे, गैर-रूट के रूप में चलाएँ, सभी क्षमताओं को छोड़ दें, विशेषाधिकार वृद्धि की अनुमति न दें) और यह एक मूलभूत सुरक्षा उपाय है।
संदर्भ↗
OS स्तर पर चल रहे कंटेनरों के अंदर असामान्य या दुर्भावनापूर्ण व्यवहार का पता लगाएं।
→एक रनटाइम सुरक्षा टूल तैनात करें जो eBPF का उपयोग करता है, जैसे Falco या Tetragon। संदिग्ध सिस्टम कॉल, फ़ाइल एक्सेस और प्रक्रिया निष्पादन का पता लगाने के लिए नियम परिभाषित करें।
क्यों: पारंपरिक सुरक्षा उपकरण कंटेनरों के अंदर की गतिविधि के प्रति अंधे होते हैं। eBPF कर्नेल-स्तरीय घटनाओं में गहरी, कम-ओवरहेड दृश्यता प्रदान करता है, जिससे उन खतरों का पता लगाने में मदद मिलती है जिन्हें अन्य उपकरण अनदेखा करते हैं।
एक स्केलेबल और लचीली प्रेक्षणीयता डेटा पाइपलाइन (observability data pipeline) बनाएं।
→OpenTelemetry (OTel) कलेक्टर का उपयोग करें। डेटा को बदलने के लिए प्रोसेसर को चेन करें (जैसे, PII हटाने के लिए `attributes` प्रोसेसर, दक्षता के लिए `batch` प्रोसेसर)। OOMs को रोकने के लिए पाइपलाइन में जल्दी `memory_limiter` प्रोसेसर का उपयोग करें।
क्यों: कलेक्टर इंस्ट्रूमेंटेशन को बैकएंड से अलग करता है और टेलीमेट्री डेटा को निर्यात करने से पहले संसाधित करने, फ़िल्टर करने और रूट करने का एक लचीला, विक्रेता-तटस्थ तरीका प्रदान करता है।
संदर्भ↗