कैसे एक serverless.com परियोजना के लिए कोड में एन्क्रिप्टेड रहस्यों को संग्रहीत करने के लिए?


12

Serverless.com के साथ, एक एडब्ल्यूएस लैंबडा फ़ंक्शन के लिए एक रहस्य को उजागर करने का सबसे आसान तरीका इसे serverless.ymlफ़ाइल में संग्रहीत करना है (उदाहरण के लिए, केएमएस के साथ एन्क्रिप्टेड)।

लेकिन Git में एन्क्रिप्टेड सीक्रेट्स करना दुनिया की सबसे अच्छी बात नहीं है। जब एक चीज़ के लिए राज़ बदलना होता है, तो कोड में बदलाव की आवश्यकता होती है।

लेकिन अकेले सुरक्षा के संदर्भ में, बेहतर विकल्प क्या हैं? उदाहरण के लिए गुप्त को S3 (एन्क्रिप्टेड) ​​में संग्रहीत किया जा सकता है, लैंबडा के साथ उस स्थान और KMS कुंजी को एक्सेस दिया जाता है, लेकिन क्या यह वास्तव में किसी भी सार्थक तरीके से बेहतर है?


इस विचारधारा शब्दार्थ जिम्नास्टिक में मेरी दिलचस्पी नहीं है।
असफ लवी

जवाबों:


7

यहाँ पर विचार करने के लिए कुछ तत्व हैं:

  1. जो कोड कॉन्फ़िगर किया जा रहा है, उससे अलग रिलीज़ ताल के साथ कॉन्फ़िगरेशन बनाए रखने की क्षमता होना मूल्यवान है। ऐसा करने से स्वचालित रूप से क्रेडेंशियल्स के रोटेशन को बढ़ावा मिलता है, क्या यह नियमित रूप से इसे दर्द रहित बनाता है।

  2. Git में सभी कॉन्फ़िगरेशन को संग्रहीत करने के लिए "इंफ्रास्ट्रक्चर के रूप में कोड" के दृष्टिकोण से यह पूरी तरह से उचित है, यद्यपि एक अलग रिपॉजिटरी में यद्यपि यह संभव है कि कॉन्फ़िगरेशन का दायरा एक से अधिक सेवाओं की अवधि होने की संभावना है।

  3. उपरोक्त दोनों कथनों को आपकी स्थिति के लिए प्रासंगिक मानते हुए, मैं KMS के साथ डेटा को एन्क्रिप्ट करने और इसे S3 या DynamoDB में संग्रहीत करना चाहूंगा। मैं यहाँ तक कहना चाहूँगा कि बहुत ही साधारण परिस्थितियों में यह KMS में ही डेटा को एन्क्रिप्ट और स्टोर करने के लिए उपयुक्त हो सकता है।

कई खुले स्रोत पुस्तकालय हैं जो इस ऑपरेशन का समर्थन करेंगे:


1

मैं आमतौर पर सीक्रेट्स डेटा को स्कोप के दायरे में मानता हूं। जैसे, यह कोड के साथ नहीं रहता है क्योंकि वे विभिन्न रिलीज़ शेड्यूल और प्रक्रियाओं द्वारा नियंत्रित होते हैं। एक अलग git रेपो, KMS, डायनेमो, s3 या आपके कॉन्फिग मैनेजमेंट सिस्टम के अंदर (शेफ की दुनिया में शेफ-वॉल्ट / इनक्रिप्टेड डेटाबेस) अच्छी जगहें हैं। असल में, आप एक गुप्त अद्यतन प्राप्त करने के लिए अपने सॉफ़्टवेयर की एक नई रिलीज़ का निर्माण और तैनाती नहीं करना चाहते हैं।

यदि आपको पता है कि प्रबंधन की आवश्यकताएं अधिक जटिल हैं, तो हसिकॉर्प वॉल्ट ( https://github.com/hashicorp/vault ) जैसा कुछ अच्छा विकल्प होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.