स्थिर डेटा का एन्क्रिप्शन और ट्रांज़िट में TLS
शिक्षार्थी क्लाइंट कनेक्शन के लिए TLS सक्षम करेंगे और स्थिर डेटा के WiredTiger एन्क्रिप्शन तथा Atlas के अंतर्निर्मित एन्क्रिप्टेड स्टोरेज पर चर्चा करेंगे।
स्थिर डेटा का एन्क्रिप्शन और ट्रांज़िट में TLS, CoddyKit पर MongoDB Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह MongoDB Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। MongoDB Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
डेटाबेस एन्क्रिप्शन की दो परतें
MongoDB डेटा को सुरक्षित करने के लिए दो अलग-अलग बिंदुओं पर सुरक्षा आवश्यक है: ट्रांज़िट में एन्क्रिप्शन (क्लाइंट और MongoDB के बीच या रेप्लिका सेट सदस्यों के बीच स्थानांतरित हो रहा डेटा) और स्थिर डेटा का एन्क्रिप्शन (डिस्क पर संग्रहीत डेटा)। प्रमाणीकरण यह नियंत्रित करता है कि कौन कनेक्ट कर सकता है, लेकिन एन्क्रिप्शन रहित कनेक्शन पर काम करने वाला प्रमाणित उपयोगकर्ता भी क्रेडेंशियल और क्वेरी को नेटवर्क पर निगरानी के सामने उजागर कर देता है। TLS और स्थिर डेटा का एन्क्रिप्शन मिलकर सुरक्षा की कई परतें प्रदान करते हैं।
TLS: ट्रांज़िट में डेटा एन्क्रिप्ट करना
TLS (Transport Layer Security) MongoDB क्लाइंट, ड्राइवर और mongod/mongos इंस्टेंस के बीच नेटवर्क चैनल को एन्क्रिप्ट करता है। TLS सक्षम करने से नेटवर्क पर हो रही जासूसी और बीच के व्यक्ति वाले हमलों से सुरक्षा मिलती है। MongoDB 4.2+ केवल TLS 1.1 और उसके बाद के संस्करणों का समर्थन करता है, जबकि आधुनिक प्लेटफ़ॉर्म पर TLS 1.3 उपलब्ध है। ऐसे किसी भी परिवेश में हमेशा TLS का उपयोग करें जहाँ नेटवर्क ट्रैफ़िक को रोका जा सकता हो — इसमें क्लाउड VPC भी शामिल हैं, भले ही VPC-स्तरीय अलगाव मौजूद हो।
mongod.conf में TLS कॉन्फ़िगर करना
mongod.conf के net.tls अनुभाग में TLS कॉन्फ़िगर किया जाता है। सभी अनएन्क्रिप्टेड कनेक्शन अस्वीकार करने के लिए mode: requireTLS सेट करें। आपको सर्वर का प्रमाणपत्र और निजी कुंजी वाली एक PEM फ़ाइल देनी होगी। वैकल्पिक रूप से, क्लाइंट से आपके CA द्वारा हस्ताक्षरित प्रमाणपत्र प्रस्तुत करवाने के लिए CAFile दें (म्यूचुअल TLS)।
# mongod.conf — require TLS for all connections
net:
port: 27017
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb-server.pem
CAFile: /etc/ssl/ca.pem # optional: require client certs
disabledProtocols: TLS1_0,TLS1_1 # enforce TLS 1.2+Node.js ड्राइवर में TLS से कनेक्ट करना
आधिकारिक MongoDB Node.js ड्राइवर तब TLS सक्षम करता है, जब कनेक्शन URI में mongodb+srv:// का उपयोग किया गया हो (Atlas में हमेशा TLS का उपयोग होता है) या tls: true विकल्प सेट किया गया हो। स्वयं होस्ट किए गए परिनियोजनों में, ड्राइवर को सर्वर प्रमाणपत्र सत्यापित करने के लिए CA फ़ाइल का पथ देना पड़ सकता है। प्रमाणपत्रों के पथ के लिए पर्यावरण चर का उपयोग करें, ताकि वे स्रोत कोड में सीधे न लिखे हों।
const { MongoClient } = require('mongodb')
// Self-hosted MongoDB with TLS
const client = new MongoClient('mongodb://myUser:myPass@dbhost:27017', {
tls: true,
tlsCAFile: process.env.MONGO_TLS_CA_FILE,
// For mutual TLS (client certificate):
// tlsCertificateKeyFile: process.env.MONGO_TLS_CERT_FILE
})
await client.connect()
// Atlas — TLS is enabled by default via SRV record
const atlasClient = new MongoClient(process.env.ATLAS_CONNECTION_STRING)TLS मोड: disabled, allowTLS, preferTLS, requireTLS
MongoDB स्थानांतरण के चरणों के दौरान TLS के चार मोड प्रदान करता है। disabled केवल साधारण कनेक्शन स्वीकार करता है (केवल विकास के लिए)। allowTLS TLS और साधारण, दोनों प्रकार के कनेक्शन स्वीकार करता है (पिछली संगतता के लिए)। preferTLS डिफ़ॉल्ट रूप से TLS का उपयोग करता है, लेकिन अनएन्क्रिप्टेड कनेक्शन भी स्वीकार करता है। requireTLS सभी गैर-TLS कनेक्शन अस्वीकार करता है और उत्पादन परिनियोजनों के लिए स्वीकार्य एकमात्र मोड है।
# Migration path: gradually enforce TLS
# Step 1: allowTLS (accept both)
# Step 2: preferTLS (default TLS, allow plain)
# Step 3: requireTLS (reject plain) <- production target
net:
tls:
mode: requireTLSडेटा-भंडारण एन्क्रिप्शन: WiredTiger
MongoDB का डिफ़ॉल्ट स्टोरेज इंजन, WiredTiger, एन्क्रिप्टेड स्टोरेज इंजन का समर्थन करता है (यह MongoDB Enterprise में उपलब्ध है)। यह डिस्क पर मौजूद डेटा फ़ाइलों को AES-256-CBC या AES-256-GCM का उपयोग करके एन्क्रिप्ट करता है। यदि किसी हमलावर को भौतिक डिस्क या डिस्क स्नैपशॉट तक पहुँच भी मिल जाए, तब भी एन्क्रिप्शन कुंजी के बिना वह डेटा पढ़ नहीं सकता। इससे GDPR, HIPAA और PCI-DSS जैसी अनुपालन आवश्यकताएँ पूरी होती हैं, जिनमें डेटा के डेटा-भंडारण अवस्था में संरक्षण को अनिवार्य किया गया है।
# mongod.conf — WiredTiger encryption at rest (Enterprise only)
security:
enableEncryption: true
encryptionKeyFile: /etc/mongodb/encryption-key # AES-256 key
# Or use KMIP key management:
security:
enableEncryption: true
kmip:
serverName: kmip.example.com
port: 5696
clientCertificateFile: /etc/ssl/kmip-client.pemAtlas में डेटा-भंडारण एन्क्रिप्शन
MongoDB Atlas क्लाउड प्रदाता की कुंजी प्रबंधन सेवाओं का उपयोग करके डेटा-भंडारण अवस्था में एन्क्रिप्शन प्रदान करता है: AWS KMS, Azure Key Vault या Google Cloud KMS। ग्राहक अपनी Customer Master Key (CMK) ला सकते हैं, जिससे उन्हें पूरा नियंत्रण मिलता है — यदि आप अपनी CMK हटा देते हैं, तो Atlas आपका डेटा डिक्रिप्ट नहीं कर सकता। Atlas का डेटा-भंडारण एन्क्रिप्शन Security सेटिंग्स में प्रत्येक प्रोजेक्ट के लिए सक्षम किया जाता है और उस प्रोजेक्ट के सभी क्लस्टरों पर लागू होता है।
कुंजी प्रबंधन की सर्वोत्तम प्रक्रियाएँ
एन्क्रिप्शन उतना ही मजबूत होता है जितनी उसकी कुंजियों की सुरक्षा। कुंजी प्रबंधन की इन सर्वोत्तम प्रक्रियाओं का पालन करें: एन्क्रिप्शन कुंजियों को डेटाबेस वाले सर्वर पर रखने के बजाय समर्पित Key Management Service (KMS) में रखें; एन्क्रिप्शन कुंजियों को नियमित रूप से बदलें (MongoDB सभी डेटा को दोबारा एन्क्रिप्ट किए बिना कुंजी बदलने का समर्थन करता है); विकास, स्टेजिंग और उत्पादन के लिए अलग-अलग कुंजियों का उपयोग करें; और कुंजी तक पहुँच की सभी घटनाओं पर नज़र रखने के लिए KMS ऑडिट लॉग सक्षम करें।
बिना डाउनटाइम TLS प्रमाणपत्र बदलना
TLS प्रमाणपत्र आम तौर पर 1–2 वर्षों के बाद समाप्त हो जाते हैं। MongoDB ऑनलाइन प्रमाणपत्र बदलाव का समर्थन करता है: आप एक नई PEM फ़ाइल तैनात करके rotateCertificates कमांड mongod को भेज सकते हैं। mongod प्रक्रिया को पुनः आरंभ किए बिना सभी नए कनेक्शनों के लिए नया प्रमाणपत्र अपना लेता है। अंतिम समय की भागदौड़ और उत्पादन रुकने से बचने के लिए प्रमाणपत्र की अवधि समाप्त होने से कम से कम 30 दिन पहले उसके नवीनीकरण की योजना बनाएँ।
// Trigger online certificate rotation (mongosh)
db.adminCommand({ rotateCertificates: 1 })
// MongoDB reloads the certificate file specified in mongod.conf
// without dropping existing connectionsनेटवर्क-स्तरीय सुरक्षा: IP अनुमति-सूची और VPC
TLS और डेटा-भंडारण अवस्था में एन्क्रिप्शन नेटवर्क पर तथा डिस्क पर मौजूद डेटा की सुरक्षा करते हैं, लेकिन नेटवर्क-स्तरीय नियंत्रण सुरक्षा की एक और परत जोड़ते हैं। MongoDB Atlas में IP Access List प्रविष्टियों का उपयोग करके केवल अपने एप्लिकेशन सर्वरों और डेवलपर IP को अनुमति दें। उत्पादन के लिए VPC Peering या AWS PrivateLink का उपयोग करें, ताकि आपके एप्लिकेशन और Atlas के बीच का ट्रैफ़िक सार्वजनिक इंटरनेट से होकर न जाए। इससे TLS पर विचार करने से पहले ही नेटवर्क-आधारित हमलों की एक बड़ी श्रेणी समाप्त हो जाती है।
एन्क्रिप्टेड कनेक्शनों का ऑडिट
TLS सक्षम करने के बाद, connPoolStats या MongoDB कनेक्शन लॉग की जाँच करके सुनिश्चित करें कि सभी कनेक्शन एन्क्रिप्टेड हैं। MongoDB TLS हैंडशेक की विफलताओं को लॉग करता है, जिससे आप ऐसे पुराने क्लाइंट की पहचान कर सकते हैं जो अब भी साधारण, अनएन्क्रिप्टेड कनेक्शन का प्रयास कर रहे हैं। Atlas में Monitoring टैब सक्रिय कनेक्शन और उनकी TLS स्थिति दिखाता है, जिससे allowTLS मोड हटाने से पहले पूर्ण प्रवर्तन की पुष्टि करना आसान हो जाता है।
// Check current connections (mongosh)
db.adminCommand({ currentOp: true }).inprog
.filter(op => op.client)
.map(op => ({ client: op.client, tls: op.clientMetadata }))
// Server status — TLS stats
db.serverStatus().network.serviceExecutorTaskStatsत्वरित जाँच
इस पाठ में MongoDB और NoSQL डेटाबेस की अवधारणाओं की अपनी समझ जाँचें।
पाठ का पुनरावलोकन
इस पाठ में आपने सीखा: requireTLS in mongod.conf एन्क्रिप्टेड क्लाइंट कनेक्शन लागू करता है और उत्पादन में यही एकमात्र उपयोग किया जाने वाला मोड होना चाहिए; WiredTiger Encrypted Storage Engine डिस्क पर मौजूद डेटा फ़ाइलों की सुरक्षा करता है (Enterprise), जबकि Atlas CMK-आधारित क्लाउड एन्क्रिप्शन प्रदान करता है; और IP अनुमति-सूचियों तथा VPC Peering जैसे नेटवर्क-स्तरीय नियंत्रण TLS से आगे सुरक्षा की अतिरिक्त परतें जोड़ते हैं। अगले पाठ में हम Client-Side Field Level Encryption देखते हैं।
एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “स्थिर डेटा का एन्क्रिप्शन और ट्रांज़िट में TLS” पाठ निःशुल्क है?
हाँ—“स्थिर डेटा का एन्क्रिप्शन और ट्रांज़िट में TLS” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और MongoDB Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। MongoDB Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“स्थिर डेटा का एन्क्रिप्शन और ट्रांज़िट में TLS” में मैं क्या सीखूँगा?
शिक्षार्थी क्लाइंट कनेक्शन के लिए TLS सक्षम करेंगे और स्थिर डेटा के WiredTiger एन्क्रिप्शन तथा Atlas के अंतर्निर्मित एन्क्रिप्टेड स्टोरेज पर चर्चा करेंगे। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ MongoDB Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या MongoDB Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर MongoDB Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“स्थिर डेटा का एन्क्रिप्शन और ट्रांज़िट में TLS” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस MongoDB Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर MongoDB Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- प्रमाणीकरण तंत्र: SCRAM और x.509
- भूमिका-आधारित अभिगम नियंत्रण: अंतर्निर्मित और कस्टम भूमिकाएँ
- स्थिर डेटा का एन्क्रिप्शन और ट्रांज़िट में TLS
- क्लाइंट-साइड फ़ील्ड-स्तरीय एन्क्रिप्शन