कोड और लॉग से सीक्रेट्स दूर रखें

डेवलपर्स के लिए AWS Security का उपयोग

Rahul Singh

Technical Product Manager

हर सेंसिटिव चीज़ सीक्रेट नहीं होती

स्ट्रिंग के तीन प्रकार

  • Secret: कोई अजनबी आपकी तरह काम कर सकता है
  • Sensitive data: किसी व्यक्ति का खुलासा होता है
  • Config: पाने लायक कुछ नहीं

तीन स्टैक्ड पंक्तियाँ: सीक्रेट, सेंसिटिव डेटा और कॉन्फ़िग की तुलना। हर पंक्ति में दो उदाहरण और अजनबी क्या कर सकता है दिखता है, आपकी तरह काम करने से लेकर कुछ न पाने तक.

डेवलपर्स के लिए AWS Security का उपयोग

हर सेंसिटिव चीज़ सीक्रेट नहीं होती

स्ट्रिंग के तीन प्रकार

  • Secret: कोई अजनबी आपकी तरह काम कर सकता है
  • Sensitive data: किसी व्यक्ति का खुलासा होता है
  • Config: पाने लायक कुछ नहीं

पर्सनल डेटा के दो नाम

  • PII: personally identifiable information
  • PHI: protected health information

तीन स्टैक्ड पंक्तियाँ: सीक्रेट, सेंसिटिव डेटा और कॉन्फ़िग की तुलना। हर पंक्ति में दो उदाहरण और अजनबी क्या कर सकता है दिखता है, आपकी तरह काम करने से लेकर कुछ न पाने तक.

डेवलपर्स के लिए AWS Security का उपयोग

सीक्रेट लीक होने के चार रास्ते

चलती प्रणाली का एक सीक्रेट चार क्रमांकित रास्तों में फैलता है: 1 सोर्स कोड और उसका इतिहास, 2 एन्वायरनमेंट वैरिएबल्स, 3 एप्लिकेशन लॉग्स, 4 एरर आउटपुट और ट्रेसेज़। चारों मिलकर एक बॉक्स पर आते हैं: किसी के लिए पढ़ने योग्य.

  1. सोर्स कोड और उसका इतिहास
  2. एन्वायरनमेंट वैरिएबल्स
डेवलपर्स के लिए AWS Security का उपयोग

सीक्रेट लीक होने के चार रास्ते

चलती प्रणाली का एक सीक्रेट चार क्रमांकित रास्तों में फैलता है: 1 सोर्स कोड और उसका इतिहास, 2 एन्वायरनमेंट वैरिएबल्स, 3 एप्लिकेशन लॉग्स, 4 एरर आउटपुट और ट्रेसेज़। चारों मिलकर एक बॉक्स पर आते हैं: किसी के लिए पढ़ने योग्य.

  1. सोर्स कोड और उसका इतिहास
  2. एन्वायरनमेंट वैरिएबल्स
  3. एप्लिकेशन लॉग्स
  4. एरर आउटपुट और ट्रेसेज़
डेवलपर्स के लिए AWS Security का उपयोग

At rest एन्क्रिप्शन छुपाव नहीं है

सुरक्षित लगने वाला विकल्प

  • डिस्क पर हमेशा एन्क्रिप्टेड
  • AWS KMS key, डिफ़ॉल्ट रूप से AWS-मैनेज्ड

एक Lambda फ़ंक्शन में एन्वायरनमेंट वैरिएबल दो रास्तों में बंटता है। डिस्क पर यह AWS KMS key से एट-रेस्ट एन्क्रिप्टेड (हरा) है। API पर GetFunctionConfiguration कॉल वैल्यू को क्लियर-टेक्स्ट में लौटाती है (लाल)। नोट: सिर्फ एक रास्ता सुरक्षित है.

डेवलपर्स के लिए AWS Security का उपयोग

At rest एन्क्रिप्शन छुपाव नहीं है

सुरक्षित लगने वाला विकल्प

  • डिस्क पर हमेशा एन्क्रिप्टेड
  • AWS KMS key, डिफ़ॉल्ट रूप से AWS-मैनेज्ड

GetFunctionConfiguration क्या लौटाता है

  • वैल्यू, प्लेन टेक्स्ट में

एक एक्सेस प्रश्न का स्टोरेज जवाब

एक Lambda फ़ंक्शन में एन्वायरनमेंट वैरिएबल दो रास्तों में बंटता है। डिस्क पर यह AWS KMS key से एट-रेस्ट एन्क्रिप्टेड (हरा) है। API पर GetFunctionConfiguration कॉल वैल्यू को क्लियर-टेक्स्ट में लौटाती है (लाल)। नोट: सिर्फ एक रास्ता सुरक्षित है.

डेवलपर्स के लिए AWS Security का उपयोग

कौन-सा स्टोर, और क्यों

दो सेवाएँ, एक-एक काम

  • Secrets Manager: सीक्रेट्स के लिए बना
  • Parameter Store: कॉन्फ़िग के लिए बना, और SecureString पैरामीटर KMS key से एन्क्रिप्टेड होता है

एक स्पेक्ट्रम डायग्राम। बाएँ Secrets Manager, दाएँ Systems Manager Parameter Store। बीच में चार क्षैतिज रेलें, हर रेल पर एक मार्कर: 1 सबसे बाएँ, 2 केंद्र के बाएँ, 3 केंद्र रेखा पर, 4 सबसे दाएँ; चौथी रेल के सिरों पर लागत के आँकड़े और नोट: रोटेशन निर्णायक है.

डेवलपर्स के लिए AWS Security का उपयोग

कौन-सा स्टोर, और क्यों

दो सेवाएँ, एक-एक काम

  • Secrets Manager: सीक्रेट्स के लिए बना
  • Parameter Store: कॉन्फ़िग के लिए बना, और SecureString पैरामीटर KMS key से एन्क्रिप्टेड होता है

चार बातें तय करती हैं

  1. मैनेज्ड रोटेशन
  2. क्रॉस-अकाउंट शेयरिंग
  3. वर्ज़निंग
  4. कॉस्ट

एक स्पेक्ट्रम डायग्राम। बाएँ Secrets Manager, दाएँ Systems Manager Parameter Store। बीच में चार क्षैतिज रेलें, हर रेल पर एक मार्कर: 1 सबसे बाएँ, 2 केंद्र के बाएँ, 3 केंद्र रेखा पर, 4 सबसे दाएँ; चौथी रेल के सिरों पर लागत के आँकड़े और नोट: रोटेशन निर्णायक है.

डेवलपर्स के लिए AWS Security का उपयोग

ताज़ा पढ़ें, थोड़ी देर कैश करें

आपकी चल रही प्रक्रिया मार्कर 1 पर सीक्रेट स्टोर से GetSecretValue कॉल करती है, मार्कर 2 पर एक स्कोप्ड रोल से जो एक सीक्रेट ARN और kms:Decrypt तक सीमित है, और मार्कर 3 पर लौटाई गई वैल्यू को इन-मेमोरी कैश में रखती है, फिर डेटाबेस या पार्टनर API को कॉल करती है.

  1. स्टार्टअप पर GetSecretValue कॉल करें
  2. रोल एक सीक्रेट ARN और kms:Decrypt तक सीमित
डेवलपर्स के लिए AWS Security का उपयोग

ताज़ा पढ़ें, थोड़ी देर कैश करें

आपकी चल रही प्रक्रिया मार्कर 1 पर सीक्रेट स्टोर से GetSecretValue कॉल करती है, मार्कर 2 पर एक स्कोप्ड रोल से जो एक सीक्रेट ARN और kms:Decrypt तक सीमित है, और मार्कर 3 पर लौटाई गई वैल्यू को इन-मेमोरी कैश में रखती है, फिर डेटाबेस या पार्टनर API को कॉल करती है.

  1. स्टार्टअप पर GetSecretValue कॉल करें
  2. रोल एक सीक्रेट ARN और kms:Decrypt तक सीमित
  3. वैल्यू को मेमोरी में कैश करें

हमेशा कैश करेंगे तो रोटेशन आपको तोड़ देगा

डेवलपर्स के लिए AWS Security का उपयोग

रोटेशन आपके नीचे वैल्यू बदल देता है

चार स्टेप क्यों, एक स्वैप क्यों नहीं

  • नई वैल्यू इस्तेमाल से पहले साबित होती है
  • एक स्वैप सारे क्लाइंट्स को एक साथ तोड़ देता

पेज पर तीन कॉलम: रोटेशन स्टेप्स, लेबल, और आपका कैश। Secrets Manager createSecret, setSecret, testSecret चलाता है, फिर एक डैश्ड लाइन उस पल को दिखाती है जब finishSecret लेबल बदलता है। लाइन के ऊपर AWSCURRENT पुरानी वैल्यू है और कैश सही है; नीचे AWSCURRENT नई वैल्यू है और वही कैश लाल हैच्ड है। दो उपाय: छोटा कैश लाइफ़टाइम और ऑथेंटिकेशन फेल होने पर रिफ्रेश.

डेवलपर्स के लिए AWS Security का उपयोग

रोटेशन आपके नीचे वैल्यू बदल देता है

चार स्टेप क्यों, एक स्वैप क्यों नहीं

  • नई वैल्यू इस्तेमाल से पहले साबित होती है
  • एक स्वैप सारे क्लाइंट्स को एक साथ तोड़ देता

चार स्टेप, एक हैंडओवर

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

पेज पर तीन कॉलम: रोटेशन स्टेप्स, लेबल, और आपका कैश। Secrets Manager createSecret, setSecret, testSecret चलाता है, फिर एक डैश्ड लाइन उस पल को दिखाती है जब finishSecret लेबल बदलता है। लाइन के ऊपर AWSCURRENT पुरानी वैल्यू है और कैश सही है; नीचे AWSCURRENT नई वैल्यू है और वही कैश लाल हैच्ड है। दो उपाय: छोटा कैश लाइफ़टाइम और ऑथेंटिकेशन फेल होने पर रिफ्रेश.

डेवलपर्स के लिए AWS Security का उपयोग

रोटेशन आपके नीचे वैल्यू बदल देता है

चार स्टेप क्यों, एक स्वैप क्यों नहीं

  • नई वैल्यू इस्तेमाल से पहले साबित होती है
  • एक स्वैप सारे क्लाइंट्स को एक साथ तोड़ देता

चार स्टेप, एक हैंडओवर

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

आपके कैश को कोई नहीं बताता

  • लाइफ़टाइम कुछ मिनट, फिर दोबारा पढ़ें
  • ऑथेंटिकेशन फेल पर रिफ्रेश करें

पेज पर तीन कॉलम: रोटेशन स्टेप्स, लेबल, और आपका कैश। Secrets Manager createSecret, setSecret, testSecret चलाता है, फिर एक डैश्ड लाइन उस पल को दिखाती है जब finishSecret लेबल बदलता है। लाइन के ऊपर AWSCURRENT पुरानी वैल्यू है और कैश सही है; नीचे AWSCURRENT नई वैल्यू है और वही कैश लाल हैच्ड है। दो उपाय: छोटा कैश लाइफ़टाइम और ऑथेंटिकेशन फेल होने पर रिफ्रेश.

डेवलपर्स के लिए AWS Security का उपयोग

मास्क करें, रिडैक्ट करें, डिबगेबल रहें

एक कच्ची लॉग लाइन जिसमें request ID, पूरा कार्ड नंबर और एक टोकन है, लाल बॉर्डर में। नीचे ट्रीटमेंट के बाद वही तीन फील्ड: request ID जस का तस, कार्ड आखिरी चार अंकों तक मास्क, और टोकन को redacted मार्कर से बदला गया; नोट: डिबग के लिए पर्याप्त बचा.

लिखने से पहले सैनिटाइज़ करें

  • Mask: आकार बना, वैल्यू छुपी
डेवलपर्स के लिए AWS Security का उपयोग

मास्क करें, रिडैक्ट करें, डिबगेबल रहें

एक कच्ची लॉग लाइन जिसमें request ID, पूरा कार्ड नंबर और एक टोकन है, लाल बॉर्डर में। नीचे ट्रीटमेंट के बाद वही तीन फील्ड: request ID जस का तस, कार्ड आखिरी चार अंकों तक मास्क, और टोकन को redacted मार्कर से बदला गया; नोट: डिबग के लिए पर्याप्त बचा.

लिखने से पहले सैनिटाइज़ करें

  • Mask: आकार बना, वैल्यू छुपी
  • Redact: वैल्यू हटाई, मार्कर छोड़ा
डेवलपर्स के लिए AWS Security का उपयोग

मास्क करें, रिडैक्ट करें, डिबगेबल रहें

एक कच्ची लॉग लाइन जिसमें request ID, पूरा कार्ड नंबर और एक टोकन है, लाल बॉर्डर में। नीचे ट्रीटमेंट के बाद वही तीन फील्ड: request ID जस का तस, कार्ड आखिरी चार अंकों तक मास्क, और टोकन को redacted मार्कर से बदला गया; नोट: डिबग के लिए पर्याप्त बचा.

लिखने से पहले सैनिटाइज़ करें

  • Mask: आकार बना, वैल्यू छुपी
  • Redact: वैल्यू हटाई, मार्कर छोड़ा

ऑन-कॉल को कॉन्फ़िग चाहिए, अजनबी को बाकी सब नहीं

डेवलपर्स के लिए AWS Security का उपयोग

अभ्यास करते हैं!

डेवलपर्स के लिए AWS Security का उपयोग

Preparing Video For Download...