GKE वर्कलोड को सेवा खाता कुंजियों का प्रबंधन किए बिना GCP APIs तक पहुंचने की आवश्यकता है।
→GKE क्लस्टर पर Workload Identity को सक्षम और कॉन्फ़िगर करें। Kubernetes Service Accounts (KSA) को Google Service Accounts (GSA) से मैप करें।
क्यों: KSA टोकन से प्राप्त अल्पकालिक, स्वचालित रूप से घुमाए गए क्रेडेंशियल का उपयोग करके लीक हुई सेवा खाता कुंजियों के जोखिम को समाप्त करता है।
संदर्भ↗
उपयोगकर्ता पहचान और डिवाइस स्थिति के आधार पर, VPN के बिना, किसी भी नेटवर्क से आंतरिक वेब ऐप्स तक पहुंच प्रदान करें।
→Access Context Manager के साथ Identity-Aware Proxy (IAP) का उपयोग करें। IP, डिवाइस स्थिति (Endpoint Verification के माध्यम से), और उपयोगकर्ता पहचान के आधार पर एक्सेस स्तर परिभाषित करें।
क्यों: पहुंच नियंत्रण को नेटवर्क परिधि से व्यक्तिगत उपयोगकर्ताओं और उपकरणों में स्थानांतरित करता है, शून्य-ट्रस्ट सिद्धांतों को लागू करता है।
संदर्भ↗
एक CI/CD पाइपलाइन (जैसे, GitHub Actions, GitLab) को लंबे समय तक रहने वाले क्रेडेंशियल्स के बिना GCP संसाधनों तक पहुंचने की आवश्यकता है।
→Workload Identity Federation का उपयोग करें। बाहरी IdP (जैसे, GitHub OIDC) के लिए एक प्रदाता पूल बनाएं और विशिष्ट रिपॉजिटरी या ब्रांच तक पहुंच को प्रतिबंधित करने के लिए विशेषता शर्तें कॉन्फ़िगर करें।
क्यों: बाहरी वर्कलोड के लिए कीलेस प्रमाणीकरण। बाहरी सिस्टम अपना टोकन प्रदान करता है, जिसे अल्पकालिक GCP टोकन के लिए आदान-प्रदान किया जाता है।
संपूर्ण संगठन में IAM सुरक्षा नीतियों को लागू करें, जैसे सेवा खाता कुंजी निर्माण को रोकना या IAM अनुदानों को विशिष्ट डोमेन तक सीमित करना।
→`iam.disableServiceAccountKeyCreation` और `iam.allowedPolicyMemberDomains` जैसी Organization Policy बाधाओं का उपयोग करें।
क्यों: Organization Policies विरासत में मिली हैं और परियोजना मालिकों द्वारा ओवरराइड नहीं की जा सकतीं, जिससे लगातार सुरक्षा स्थिति सुनिश्चित होती है।
किसी घटना के लिए किसी उपयोगकर्ता को उत्पादन वातावरण तक अस्थायी, ऑडिट करने योग्य और अनुमोदन-गेटेड प्रशासनिक पहुंच की आवश्यकता है।
→जस्ट-इन-टाइम (JIT) एक्सेस के लिए Privileged Access Manager (PAM) का उपयोग करें। उपयोगकर्ता सीमित समय के लिए एक विशिष्ट भूमिका का अनुरोध करता है, जो एक अनुमोदन वर्कफ़्लो से गुजरता है।
क्यों: स्थायी विशेषाधिकारों को समाप्त करता है, एक बड़ा सुरक्षा जोखिम। एक्सेस समय-बद्ध, न्यायसंगत और पूरी तरह से ऑडिट किया जाता है।
कई टीमें एक GKE क्लस्टर साझा करती हैं। प्रत्येक टीम को केवल अपने स्वयं के नेमसस्पेस के भीतर संसाधनों का प्रबंधन करना चाहिए।
→परियोजना स्तर पर IAM भूमिका `roles/container.clusterViewer` प्रदान करें। विशिष्ट अनुमतियां (जैसे, संपादन, दृश्य) प्रदान करने के लिए प्रत्येक नेमसस्पेस के भीतर Kubernetes RBAC `Role` और `RoleBinding` का उपयोग करें।
क्यों: क्लस्टर-स्तर प्रमाणीकरण (IAM) को नेमसस्पेस-स्तर प्राधिकरण (Kubernetes RBAC) से अलग करता है, जिससे बारीक, मल्टी-टेनेंट नियंत्रण मिलता है।
APIs को स्टैटिक कुंजियों के बजाय अल्पकालिक क्रेडेंशियल्स का उपयोग करके कॉल किया जाना चाहिए।
→सेवा खाता प्रतिरूपण का उपयोग करें। लक्ष्य सेवा खाते पर `roles/iam.serviceAccountTokenCreator` भूमिका के लिए एक प्रिंसिपल प्रदान करें ताकि अल्पकालिक OAuth 2.0 एक्सेस टोकन उत्पन्न हो सकें।
क्यों: लंबे समय तक रहने वाली कुंजियों को वितरित और प्रबंधित करने से बचाता है। टोकन स्वचालित रूप से समाप्त हो जाते हैं (डिफ़ॉल्ट 1 घंटा), समझौता होने पर जोखिम कम हो जाता है।
एक ठेकेदार को विशिष्ट संसाधनों तक पहुंच की आवश्यकता है, लेकिन पहुंच 30 दिनों के बाद स्वचालित रूप से समाप्त हो जानी चाहिए।
→समय-आधारित IAM Condition के साथ आवश्यक IAM भूमिका प्रदान करें, जैसे `request.time < timestamp("YYYY-MM-DDTHH:MM:SSZ")`।
क्यों: पहुंच निरस्तीकरण को स्वचालित करता है, मैन्युअल सफाई से बचा जाता है और यह सुनिश्चित करता है कि पहुंच अनजाने में लंबी न हो।
केवल CI/CD पाइपलाइन द्वारा हस्ताक्षरित कंटेनर छवियों को उत्पादन GKE क्लस्टर में तैनात करने की अनुमति दें।
→Binary Authorization लागू करें। छवियों पर हस्ताक्षर करने के लिए CI पाइपलाइन में एक सत्यापन बनाएं। इस सत्यापन की आवश्यकता के लिए GKE क्लस्टर पर एक Binary Authorization नीति कॉन्फ़िगर करें।
क्यों: उत्पादन में अविवेकी या छेड़छाड़ की गई छवियों को चलाने से रोककर एक सुरक्षित सॉफ्टवेयर आपूर्ति श्रृंखला को लागू करता है।
संदर्भ↗
संसाधनों को उनके असाइन किए गए टैग के आधार पर अनुमतियां प्रदान करें, न कि व्यक्तिगत संसाधन नामों के आधार पर।
→संसाधन टैग अभिव्यक्तियों के साथ IAM Conditions का उपयोग करें, जैसे `resource.matchTag("123456789/env", "prod")`।
क्यों: स्केलेबल, एट्रीब्यूट-आधारित एक्सेस कंट्रोल (ABAC) को सक्षम करता है। अनुमतियां गतिशील होती हैं और संसाधनों को टैग किए जाने पर स्वचालित रूप से लागू होती हैं।
एक सेवा परियोजना को नेटवर्क एडमिन अधिकार दिए बिना Shared VPC होस्ट परियोजना में VMs तैनात करने की अनुमति दें।
→होस्ट परियोजना में, सेवा परियोजना के सेवा खाते को विशिष्ट सबनेट पर `roles/compute.networkUser` भूमिका प्रदान करें जिसे उसे उपयोग करने की आवश्यकता है।
क्यों: सबसे कम विशेषाधिकार का पालन करता है। सेवा परियोजनाएं नेटवर्क का उपयोग कर सकती हैं लेकिन इसे संशोधित नहीं कर सकती हैं (जैसे, फ़ायरवॉल नियम बदलें), जो केंद्रीय रूप से प्रबंधित रहता है।
`storage.admin` वाले उपयोगकर्ता बकेट नहीं बना सकते। आपको मूल कारण की पहचान करने की आवश्यकता है।
→उच्च स्तर (फ़ोल्डर, संगठन) पर एक IAM Deny Policy की जांच करें जो `storage.buckets.create` अनुमति को अस्वीकार करती है।
क्यों: IAM Deny नीतियां हमेशा किसी भी अनुमति नीतियों को ओवरराइड करती हैं। यह गैर-परक्राम्य सुरक्षा सीमाओं को लागू करने के लिए एक शक्तिशाली उपकरण है।
Google Cloud कंसोल तक पहुंचने के लिए ऑन-प्रिमाइसेस Active Directory उपयोगकर्ताओं के लिए SSO सक्षम करें।
→पहचान को Cloud Identity से सिंक करने के लिए Google Cloud Directory Sync (GCDS) का उपयोग करें। Cloud Identity और AD FS (या किसी अन्य IdP) के बीच फेडरेशन (SAML) कॉन्फ़िगर करें।
क्यों: उपयोगकर्ताओं के लिए एक सहज, फेडरेटेड SSO अनुभव प्रदान करते हुए AD को पहचान के लिए सत्य के स्रोत के रूप में बनाए रखता है।