GCP - KMS Privesc
KMS
KMS के बारे में जानकारी:
ध्यान दें कि KMS में अनुमतियाँ केवल संस्थाओं, फ़ोल्डरों और परियोजनाओं से विरासत में नहीं मिलती हैं बल्कि कीरिंग्स से भी मिलती हैं।
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToDecrypt
आप इस अनुमति का उपयोग कुंजी के साथ जानकारी को डिक्रिप्ट करने के लिए कर सकते हैं जिसके ऊपर आपके पास यह अनुमति है।
cloudkms.cryptoKeys.setIamPolicy
cloudkms.cryptoKeys.setIamPolicy
इस अनुमति के साथ एक हमलावर अपने लिए अनुमति दे सकता है कि वह कुंजी का उपयोग करके जानकारी को डिक्रिप्ट कर सके।
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
यहाँ इस प्रतिनिधित्व के काम करने का एक वैचारिक विश्लेषण है:
Service Account A को KMS में एक विशिष्ट कुंजी का उपयोग करके डिक्रिप्ट करने का सीधा अधिकार है।
Service Account B को
useToDecryptViaDelegation
अनुमति दी गई है। यह इसे Service Account A की ओर से डेटा डिक्रिप्ट करने के लिए KMS से अनुरोध करने की अनुमति देता है।
इस अनुमति का उपयोग उस तरीके में निहित है जिसमें KMS सेवा अनुमतियों की जांच करती है जब एक डिक्रिप्शन अनुरोध किया जाता है।
जब आप Google Cloud KMS API का उपयोग करके एक मानक डिक्रिप्शन अनुरोध करते हैं (Python या किसी अन्य भाषा में), तो सेवा जांचती है कि क्या अनुरोध करने वाले सेवा खाते के पास आवश्यक अनुमतियाँ हैं। यदि अनुरोध एक सेवा खाते द्वारा किया जाता है जिसके पास useToDecryptViaDelegation
अनुमति है, तो KMS यह सत्यापित करता है कि क्या यह खाता उस इकाई की ओर से डिक्रिप्शन का अनुरोध करने के लिए अधिकृत है जो कुंजी का मालिक है।
Setting Up for Delegation
Define the Custom Role: एक YAML फ़ाइल बनाएं (जैसे,
custom_role.yaml
) जो कस्टम भूमिका को परिभाषित करती है। इस फ़ाइल मेंcloudkms.cryptoKeyVersions.useToDecryptViaDelegation
अनुमति शामिल होनी चाहिए। यहाँ इस फ़ाइल का एक उदाहरण है:
gcloud CLI का उपयोग करके कस्टम भूमिका बनाएं: अपने Google Cloud प्रोजेक्ट में कस्टम भूमिका बनाने के लिए निम्नलिखित कमांड का उपयोग करें:
अपने Google Cloud प्रोजेक्ट ID के साथ [YOUR_PROJECT_ID]
को बदलें।
एक सेवा खाते को कस्टम भूमिका दें: इस अनुमति का उपयोग करने वाले सेवा खाते को अपनी कस्टम भूमिका सौंपें। निम्नलिखित कमांड का उपयोग करें:
[YOUR_PROJECT_ID]
और [SERVICE_ACCOUNT_EMAIL]
को अपने प्रोजेक्ट आईडी और सेवा खाते के ईमेल से क्रमशः बदलें।
Last updated