एक Compute Engine इंस्टेंस को Cloud Storage बकेट से पढ़ने और BigQuery टेबल में लिखने की आवश्यकता है। न्यूनतम आवश्यक अनुमतियाँ प्रदान करें।
→एक कस्टम सर्विस अकाउंट बनाएँ। इसे `roles/storage.objectViewer` और `roles/bigquery.dataEditor` रोल प्रदान करें। इस सर्विस अकाउंट को इंस्टेंस से अटैच करें।
क्यों: विशिष्ट, पूर्वनिर्धारित भूमिकाओं के साथ एक कस्टम सर्विस अकाउंट का उपयोग करने से डिफ़ॉल्ट Compute Engine सर्विस अकाउंट की अत्यधिक अनुमति देने वाली प्रकृति से बचा जाता है, जिससे कम विशेषाधिकार के सिद्धांत का पालन होता है।
किसी उपयोगकर्ता को GCE इंस्टेंस प्रबंधित करने की अनुमति दें, लेकिन उन्हें हटाने की नहीं।
→एक कस्टम IAM रोल बनाएँ। `roles/compute.instanceAdmin.v1` रोल से अनुमतियों के साथ शुरू करें और `compute.instances.delete` अनुमति हटा दें।
क्यों: कस्टम रोल विशिष्ट जॉब फ़ंक्शन के लिए पूर्वनिर्धारित रोल बहुत व्यापक या बहुत प्रतिबंधात्मक होने पर अनुमतियों का एक सटीक सेट प्रदान करने की लचीलापन प्रदान करते हैं।
एक डेवलपर को सुरक्षा नीति के अनुसार Compute Engine इंस्टेंस में SSH करने की आवश्यकता है जिसका कोई बाहरी IP एड्रेस नहीं है।
→डेवलपर को `roles/iap.tunnelResourceAccessor` रोल प्रदान करें। वे फिर `gcloud compute ssh [INSTANCE_NAME] --tunnel-through-iap` का उपयोग करके कनेक्ट कर सकते हैं।
क्यों: Identity-Aware Proxy (IAP) TCP फॉरवर्डिंग बैस्टियन होस्ट्स, VPNs, या सार्वजनिक IP के बिना आंतरिक इंस्टेंस तक पहुंचने के लिए एक सुरक्षित, पहचान-आधारित विधि प्रदान करती है।
संदर्भ↗
केवल कॉर्पोरेट ऑफिस IP रेंज से विशिष्ट VMs पर इनबाउंड SSH (पोर्ट 22) ट्रैफिक की अनुमति दें।
→`direction: INGRESS`, `action: ALLOW`, `protocol/ports: tcp:22`, `source ranges: [CORPORATE_IP_CIDR]`, और `target tags: [उदाहरण के लिए, "allow-ssh"]` के साथ एक VPC फ़ायरवॉल नियम बनाएँ। टैग को इच्छित VMs पर लागू करें।
क्यों: सोर्स रेंज और टारगेट टैग्स को मिलाकर ट्रैफिक को नियंत्रित करने का एक सटीक और स्केलेबल तरीका मिलता है। यह प्रतिबंधित करता है कि *कौन* कनेक्ट कर सकता है और *किससे* कनेक्ट कर सकता है।
संवेदनशील BigQuery प्रोजेक्ट से डेटा को एक विश्वसनीय नेटवर्क सीमा के बाहर से कॉपी या एक्सेस होने से रोकें, भले ही वैध क्रेडेंशियल्स हों।
→VPC Service Controls कॉन्फ़िगर करें। एक सर्विस पेरिमेटर बनाएँ जिसमें संवेदनशील प्रोजेक्ट शामिल हो और BigQuery API को प्रतिबंधित करे।
क्यों: VPC Service Controls एक वर्चुअल "डेटा पेरिमेटर" बनाते हैं जो API-स्तर के एक्सेस को नियंत्रित करता है, डेटा एक्सफ़िल्ट्रेशन के खिलाफ एक मजबूत बचाव प्रदान करता है जो फ़ायरवॉल नियम नहीं कर सकते।
एक तृतीय-पक्ष एप्लिकेशन को Cloud Storage बकेट में एक विशिष्ट प्राइवेट ऑब्जेक्ट तक अस्थायी, समय-सीमित रीड एक्सेस प्रदान करें।
→रीड अनुमतियों वाले एक सर्विस अकाउंट का उपयोग करके एक छोटी समाप्ति अवधि (जैसे, 15 मिनट) के साथ ऑब्जेक्ट के लिए एक साइन्ड URL जनरेट करें।
क्यों: साइन्ड URL अस्थायी, प्रति-ऑब्जेक्ट एक्सेस प्रदान करते हैं, बिना तीसरे पक्ष को Google अकाउंट या IAM अनुमतियों की आवश्यकता के। यह इस उपयोग के मामले के लिए सबसे सुरक्षित तरीका है।
एक GKE पॉड को Google Cloud APIs (जैसे, Pub/Sub) को सुरक्षित रूप से एक्सेस करने की आवश्यकता है, बिना सर्विस अकाउंट कीज़ को Kubernetes सीक्रेट्स के रूप में स्टोर किए।
→GKE क्लस्टर पर Workload Identity सक्षम करें। एक Google Service Account (GSA) और एक Kubernetes Service Account (KSA) बनाएँ। IAM पॉलिसी का उपयोग करके KSA को GSA से बाइंड करें। पॉड को KSA का उपयोग करने के लिए कॉन्फ़िगर करें।
क्यों: Workload Identity GKE एप्लिकेशन के लिए Google Cloud सेवाओं के लिए प्रमाणीकरण का अनुशंसित, कीलेस तरीका है। यह KSA पहचानों को GSA पहचानों से मैप करता है, जो कुंजी फ़ाइलों को प्रबंधित और घुमाने से अधिक सुरक्षित है।
संदर्भ↗
एक ऑर्गनाइजेशन नीति की आवश्यकता है कि Cloud Storage बकेट में सभी डेटा को एक एन्क्रिप्शन कुंजी का उपयोग करके एन्क्रिप्ट किया जाए जिसे ऑर्गनाइजेशन नियंत्रित करता है।
→Cloud KMS में एक क्रिप्टोग्राफिक कुंजी बनाएँ। Cloud Storage बकेट बनाते समय, इस कुंजी को Customer-Managed Encryption Key (CMEK) के रूप में निर्दिष्ट करें।
क्यों: CMEK आपको एन्क्रिप्शन के लिए उपयोग की जाने वाली कुंजी पर नियंत्रण प्रदान करता है, जिसमें रोटेशन और निरस्तीकरण शामिल है, जबकि अभी भी Google के प्रबंधित एन्क्रिप्शन इन्फ्रास्ट्रक्चर का लाभ उठा रहा है।
कर्मचारियों को Google Cloud संसाधनों तक पहुंचने के लिए अपनी मौजूदा ऑन-प्रिमाइसेस Active Directory क्रेडेंशियल्स का उपयोग करने की अनुमति दें।
→SAML 2.0 का उपयोग करके Active Directory के साथ फेडरेट करने के लिए Cloud Identity को कॉन्फ़िगर करें। उपयोगकर्ता AD के साथ प्रमाणित करते हैं, जो फिर एक्सेस के लिए अपनी पहचान Google Cloud को बताता है।
क्यों: फेडरेशन सिंगल साइन-ऑन (SSO) की अनुमति देता है और मौजूदा IdP (Active Directory) में पहचान प्रबंधन को केंद्रीकृत करता है, जिससे Google Cloud में पासवर्ड के एक अलग सेट का प्रबंधन करने की आवश्यकता नहीं होती है।
एक बाहरी ठेकेदार को एक प्रोजेक्ट तक अस्थायी एक्सेस प्रदान करें, जो 30 दिनों के बाद स्वचालित रूप से समाप्त हो जाना चाहिए।
→ठेकेदार को आवश्यक भूमिका के साथ एक IAM सदस्य के रूप में जोड़ें। एक समाप्ति टाइमस्टैम्प (`request.time < timestamp("YYYY-MM-DDTHH:MM:SSZ")`) के साथ भूमिका बाइंडिंग में एक शर्त जोड़ें।
क्यों: IAM Conditions एट्रिब्यूट-आधारित एक्सेस कंट्रोल प्रदान करती हैं। समय-आधारित शर्तें अस्थायी एक्सेस के लिए एकदम सही हैं, क्योंकि वे मैन्युअल सफाई के बिना अनुमतियों को स्वचालित रूप से रद्द कर देती हैं।