एन्क्रिप्शन मोड और ट्रांजिट लागू करना

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

Rahul Singh

Technical Product Manager

दो गारंटी, एक डिफ़ॉल्ट

एक एप्लिकेशन एक ऑब्जेक्ट Amazon S3 बकेट को भेजता है। "in transit" लेबल वाला हरा ब्रैकेट नेटवर्क हॉप को कवर करता है, और "at rest" लेबल वाला दूसरा हरा ब्रैकेट स्टोर्ड ऑब्जेक्ट को। ऊपर नोट: SSE-S3 लागू है जब तक रिक्वेस्ट अलग न कहे।

  • At rest: डिस्क पर बाइट्स
  • In transit: नेटवर्क पर बाइट्स
डेवलपर्स के लिए AWS Security का उपयोग

दो गारंटी, एक डिफ़ॉल्ट

एक एप्लिकेशन एक ऑब्जेक्ट Amazon S3 बकेट को भेजता है। "in transit" लेबल वाला हरा ब्रैकेट नेटवर्क हॉप को कवर करता है, और "at rest" लेबल वाला दूसरा हरा ब्रैकेट स्टोर्ड ऑब्जेक्ट को। ऊपर नोट: SSE-S3 लागू है जब तक रिक्वेस्ट अलग न कहे।

  • At rest: डिस्क पर बाइट्स
  • In transit: नेटवर्क पर बाइट्स
  • Already done: हर नए ऑब्जेक्ट पर SSE-S3
  • Still yours: कौन सा मोड और किसके पास कुंजी है, यह आप तय करें
डेवलपर्स के लिए AWS Security का उपयोग

प्लेनटेक्स्ट कहाँ रुकता है

Server-side

  • AWS को रीडेबल बाइट्स मिलती हैं
  • S3 लिखते समय एन्क्रिप्ट करता है

 

सर्वर-साइड फ्लो। आपकी प्रोसेस प्लेनटेक्स्ट रखती है, उसे TLS पर भेजती है, और Amazon S3 लिखते समय एन्क्रिप्ट करता है। नीचे बार बाइट्स ट्रैक करता है: S3 पर डैश्ड डिवाइडर से पहले "your bytes: readable here" (लाल), उसके बाद "ciphertext" (हरा)।

 

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

प्लेनटेक्स्ट कहाँ रुकता है

Server-side

  • AWS को रीडेबल बाइट्स मिलती हैं
  • S3 लिखते समय एन्क्रिप्ट करता है

Client-side

  • आप भेजने से पहले एन्क्रिप्ट करते हैं
  • AWS केवल ciphertext स्टोर करता है

सर्वर-साइड फ्लो। आपकी प्रोसेस प्लेनटेक्स्ट रखती है, उसे TLS पर भेजती है, और Amazon S3 लिखते समय एन्क्रिप्ट करता है। नीचे बार बाइट्स ट्रैक करता है: S3 पर डैश्ड डिवाइडर से पहले "your bytes: readable here" (लाल), उसके बाद "ciphertext" (हरा)।

क्लाइंट-साइड फ्लो। आपकी प्रोसेस पहले एन्क्रिप्ट करती है, ciphertext को TLS पर भेजती है, और Amazon S3 वही स्टोर करता है जो मिला। नीचे बार बाइट्स ट्रैक करता है: आपकी प्रोसेस के अंदर डैश्ड डिवाइडर से पहले छोटा "your bytes: readable here" (लाल), उसके बाद सब "ciphertext" (हरा)।

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

चार मोड, एक फर्क

एक ही एल्गोरिदम, चार कुंजी-मालिक

  • मोड PUT पर हेडर के रूप में जाता है
  • SSE-S3: AWS कुंजी, कुछ मैनेज नहीं करना
  • SSE-KMS: आपकी कुंजी, CloudTrail, और कुंजी पर लगा key policy जो बताता है किसे जवाब देगी

SSE-S3, SSE-KMS, DSSE-KMS और SSE-C वाले चार स्टैक्ड कार्ड। बाएँ रेल ऊपर AWS कंट्रोल से नीचे आपकी कंट्रोल तक जाती है, और हर कार्ड पर केवल वही रिक्वेस्ट हेडर वैल्यू है जो मोड चुनती है।

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

चार मोड, एक फर्क

एक ही एल्गोरिदम, चार कुंजी-मालिक

  • मोड PUT पर हेडर के रूप में जाता है
  • SSE-S3: AWS कुंजी, कुछ मैनेज नहीं करना
  • SSE-KMS: आपकी कुंजी, CloudTrail, और कुंजी पर लगा key policy जो बताता है किसे जवाब देगी
  • DSSE-KMS: दो स्वतंत्र लेयर
  • SSE-C: हर रिक्वेस्ट पर आपकी कुंजी, खोना भी आपका

SSE-S3, SSE-KMS, DSSE-KMS और SSE-C वाले चार स्टैक्ड कार्ड। बाएँ रेल ऊपर AWS कंट्रोल से नीचे आपकी कंट्रोल तक जाती है, और हर कार्ड पर केवल वही रिक्वेस्ट हेडर वैल्यू है जो मोड चुनती है।

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

SSE-KMS पर लागत आपत्ति

दो पंक्तियाँ। बिना Bucket Keys, Amazon S3 से AWS KMS को छह ऐरो, हर ऑब्जेक्ट रिक्वेस्ट पर एक। Bucket Keys के साथ, S3 के अंदर रखी बकेट-लेवल कुंजी से एक ही ऐरो। नीचे नोट: Bucket Keys, DSSE-KMS के साथ उपलब्ध नहीं।

  • Without: प्रति ऑब्जेक्ट एक KMS कॉल
  • With Bucket Keys: एक शॉर्ट-लिव्ड कुंजी, दोबारा उपयोग
  • DSSE-KMS के साथ उपलब्ध नहीं
  • KMS रिक्वेस्ट्स में अधिकतम 99% कमी
डेवलपर्स के लिए AWS Security का उपयोग

टेबल नहीं, फ़ील्ड एन्क्रिप्ट करें

At rest पहले से चालू है

  • रीड एक्सेस वाले किसी भी यूज़र को क्वेरी plaintext देती है

एक DynamoDB आइटम जिसमें पाँच एट्रिब्यूट हैं। दो एट्रिब्यूट ciphertext रखते हैं और नीली रेल दिखती है, जबकि पार्टिशन की, सॉर्ट की और टाइमस्टैम्प plaintext रहते हैं। नीचे हरा बॉक्स: पूरी टेबल at rest एन्क्रिप्टेड है।

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

टेबल नहीं, फ़ील्ड एन्क्रिप्ट करें

At rest पहले से चालू है

  • रीड एक्सेस वाले किसी भी यूज़र को क्वेरी plaintext देती है

AWS Database Encryption SDK

  • चुने हुए एट्रिब्यूट अपने कोड में एन्क्रिप्ट करें
  • पार्टिशन और सॉर्ट की, जिनसे DynamoDB आइटम ढूँढता है, plaintext रहती हैं क्योंकि उसी पर इंडेक्स है

एक DynamoDB आइटम जिसमें पाँच एट्रिब्यूट हैं। दो एट्रिब्यूट ciphertext रखते हैं और नीली रेल दिखती है, जबकि पार्टिशन की, सॉर्ट की और टाइमस्टैम्प plaintext रहते हैं। नीचे हरा बॉक्स: पूरी टेबल at rest एन्क्रिप्टेड है।

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

TLS ऑफ़र होता है, अनिवार्य नहीं

ऑफ़र है, लागू नहीं

  • S3 HTTP और HTTPS दोनों का जवाब देता है

दो परिदृश्य। बिना किसी कंडीशन के, HTTPS और HTTP दोनों क्लाइंट ऑब्जेक्ट तक पहुँचते हैं। डिनाय कंडीशन के साथ, HTTP पाथ लाल क्रॉस पर रुक जाता है और कनेक्ट नहीं होता।

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

TLS ऑफ़र होता है, अनिवार्य नहीं

ऑफ़र है, लागू नहीं

  • S3 HTTP और HTTPS दोनों का जवाब देता है

इसे अनिवार्य बनाएँ

  • बकेट पॉलिसी: जब aws:SecureTransport false हो तो deny करें
  • वैध क्लाइंट्स को कोई फर्क नहीं पड़ेगा

दो परिदृश्य। बिना किसी कंडीशन के, HTTPS और HTTP दोनों क्लाइंट ऑब्जेक्ट तक पहुँचते हैं। डिनाय कंडीशन के साथ, HTTP पाथ लाल क्रॉस पर रुक जाता है और कनेक्ट नहीं होता।

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

कौन सी अथॉरिटी नाम की गारंटी देती है

पब्लिक नाम

  • ACM: पब्लिकली ट्रस्टेड, फ्री, खुद रिन्यू होता है

सिर्फ आपका नेटवर्क रिज़ॉल्व करे ऐसा नाम

  • AWS Private CA: आपकी खुद की सर्टिफिकेट अथॉरिटी
  • पब्लिक इंटरनेट पर कभी ट्रस्टेड नहीं

दो स्टैक्ड कार्ड: कौन सर्टिफिकेट जारी करता है। ऊपर, पब्लिक नाम: reports dot example dot com, जारीकर्ता ACM, हर जगह ट्रस्टेड। नीचे, इंटरनल नाम: admin dot example dot internal, केवल आपकी VPC में रिज़ॉल्व होता है, जारीकर्ता AWS Private CA।

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

प्राइवेट हिस्सा खोना आपका जोखिम है

कौन रखता है

  • ACM: AWS इसे रखता है
  • EC2 key pair या कोई भी SSH कुंजी: आप प्राइवेट हिस्सा रखते हैं, एक बार दिया जाता है

दो स्टैक्ड कार्ड: कौन सा हिस्सा कहाँ रहता है। ऊपर, पब्लिक हिस्सा: AWS या इंस्टेंस पर। नीचे नारंगी कार्ड, प्राइवेट हिस्सा: आपको एक कॉपी मिलती है, कोई स्पेयर नहीं; Secrets Manager में रखें (हरा टिक), और कभी repo, लैपटॉप या चैट में नहीं (नारंगी क्रॉस)।

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

प्राइवेट हिस्सा खोना आपका जोखिम है

कौन रखता है

  • ACM: AWS इसे रखता है
  • EC2 key pair या कोई भी SSH कुंजी: आप प्राइवेट हिस्सा रखते हैं, एक बार दिया जाता है

अगर यह आपका है

  • Secrets Manager में रखें, repo में नहीं
  • तय समय पर बदलें

दो स्टैक्ड कार्ड: कौन सा हिस्सा कहाँ रहता है। ऊपर, पब्लिक हिस्सा: AWS या इंस्टेंस पर। नीचे नारंगी कार्ड, प्राइवेट हिस्सा: आपको एक कॉपी मिलती है, कोई स्पेयर नहीं; Secrets Manager में रखें (हरा टिक), और कभी repo, लैपटॉप या चैट में नहीं (नारंगी क्रॉस)।

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

एक नहीं, तीन जवाब

मोड, कुंजी नियंत्रण और ट्रांजिट के लिए तीन नंबर वाले कार्ड, हर एक पर उसका हेडर या कंडीशन की। नीचे लाइन: तीसरी जाँच ही एन्क्रिप्शन सेटिंग्स के बाहर है।

  1. मोड: ऑब्जेक्ट किसने लिखकर स्टोर किया
  2. कुंजी नियंत्रण: कौन डिक्रिप्ट कर सकता है, इसी अकाउंट में या दूसरे में
  3. ट्रांजिट: आवश्यक है या सिर्फ ऑफ़र किया गया
डेवलपर्स के लिए AWS Security का उपयोग

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

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

Preparing Video For Download...