Database
 sql >> डेटाबेस >  >> RDS >> Database

SSL के साथ अपने Mongo क्लस्टर को सुरक्षित करें

SSL अविश्वसनीय नेटवर्क पर आपके डेटा की गोपनीयता और वैधता को बनाए रखने के लिए अत्यंत महत्वपूर्ण है। यदि आप इंटरनेट पर उत्पादन डेटाबेस क्लस्टर तैनात कर रहे हैं, तो एसएसएल निश्चित रूप से कुछ ऐसा है जिस पर आपको विचार करना चाहिए। स्केलग्रिड अब आपके MongoDB सर्वर के लिए SSL सक्षम करने का समर्थन करता है।

SSL को सक्षम करना अब MongoDB निर्माण विज़ार्ड में किसी बॉक्स को चेक करने जितना आसान है:

तो MongoDB के साथ SSL का उपयोग क्यों करें?

  1. गोपनीयता

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

  2. प्रमाणीकरण

    यह सुनिश्चित करने के लिए  PKI (निजी कुंजी अवसंरचना) का उपयोग करें कि केवल उपयुक्त CA के प्रमाणपत्र वाले क्लाइंट ही MongoDB सर्वर से कनेक्ट हो सकते हैं। यह एक अतिरिक्त कदम है और आप अपने कस्टम प्रमाणपत्र या सीए का उपयोग नहीं करना चुन सकते हैं - एंड-टू-एंड एन्क्रिप्शन के कारण आपको अभी भी गोपनीयता के लाभ प्राप्त होंगे।

MongoDB SSL कमियां

  • प्रदर्शन ओवरहेड

    SSL का उपयोग करने के लिए निश्चित रूप से कुछ प्रदर्शन ओवरहेड हैं। हालांकि हमने अभी तक व्यापक परीक्षण नहीं किए हैं, एसएसएल का उपयोग करने के कारण निश्चित रूप से ओवरहेड है।

  • MongoDB UI की कमी

    अधिकांश लोकप्रिय MongoDB UI एसएसएल का बिल्कुल भी समर्थन नहीं करते हैं। तो, आपको भुगतान किए गए संस्करण के लिए जाने या मोंगो कंसोल का उपयोग करने की आवश्यकता हो सकती है।

अपने SSL सक्षम MongoDB सर्वर से कनेक्ट करना

यदि आप SSL सक्षम वाले MongoDB सर्वर से कनेक्ट कर रहे हैं, तो MongoDB कनेक्शन कोड में कई अंतर हैं। अधिक विवरण के लिए कृपया अपने ड्राइवर के दस्तावेज़ देखें।

  1. मोंगो शैल

    डिफ़ॉल्ट मोंगो क्लाइंट एसएसएल सक्षम सर्वर से कनेक्शन का समर्थन नहीं करता है - आपको मोंगोडीबी के एसएसएल सक्षम-बिल्ड की आवश्यकता है। आप एसएसएल सक्षम सर्वर में एसएसएच कर सकते हैं और फिर कनेक्ट करने के लिए सर्वर पर मोंगो क्लाइंट का उपयोग कर सकते हैं। स्केलग्रिड द्वारा प्रदान किए गए व्यवस्थापक उपयोगकर्ता का उपयोग करके कनेक्ट करने का सिंटैक्स यहां दिया गया है:

    mongo <span style="color: #758e9f;">--ssl --sslCAFile <file.crt></span> -u admin -p <pass> servername/admin 
    
    
  2. कोड

    आपको अपने MongoDB कनेक्शन स्ट्रिंग में "ssl=true" गुण जोड़ने की आवश्यकता होगी। साथ ही, कुछ प्लेटफ़ॉर्म (जैसे JDK) को सर्वर से कनेक्ट करने से पहले आपको SSL प्रमाणपत्र की सार्वजनिक कुंजी को विश्वसनीय पथ में जोड़ने की आवश्यकता होगी। डिफ़ॉल्ट रूप से, प्रत्येक क्लस्टर के लिए एक स्व-हस्ताक्षरित प्रमाणपत्र उत्पन्न होता है। आप UI से SSL प्रमाणपत्र की सार्वजनिक कुंजी डाउनलोड कर सकते हैं या आप सर्वर पर /etc/ssl/mongodb-cert.crt से प्रमाणपत्र डाउनलोड कर सकते हैं। UI में, SSL सार्वजनिक प्रमाणपत्र डाउनलोड करने के लिए एक लिंक कनेक्शन स्ट्रिंग मोडल में उपलब्ध है:

    इस ब्लॉग पोस्ट में आप SSH कैसे कर सकते हैं, इस बारे में अधिक निर्देशों के लिए, इस ब्लॉग पोस्ट में "VM क्रेडेंशियल" अनुभाग देखें। crt फ़ाइल /etc/ssl/mongodb-cert.crt सर्वर पर स्थित है। सार्वजनिक कुंजी डाउनलोड करने के बाद, आपको इसे अपने विश्वसनीय कीस्टोन में जोड़ना होगा:

    keytool -import -alias "MongoDB-cert" -file "/etc/ssl/mongodb-cert.crt"
    -keystore "/usr/java/default/jre/lib/security/cacerts"
    -noprompt -storepass "changeit"
    

    कैसर्ट स्टोर के लिए डिफ़ॉल्ट पासवर्ड "चेंजिट" है। सुरक्षा कारणों से, आपको इस पासवर्ड को अपने से बदल लेना चाहिए। एक बार जब आप प्रमाणपत्र जोड़ लेते हैं, तो कीस्टोन में प्रमाणपत्रों की गणना करके पुष्टि करें कि प्रमाणपत्र जोड़ा गया है:

    keytool -list -keystore cacerts -storepass changeit
    
  3. मोंगो यूआई:रोबो 3टी

    Robo 3T (पूर्व में Robomongo) कुछ MongoDB UI में से एक है जो SSL से जुड़ने में सहायता करता है। अपने MongoDB सर्वर से कनेक्शन बनाते समय, SSL विकल्प चुनें। प्रमाणपत्र के लिए, .pem फ़ाइल का उपयोग करें जिसमें सार्वजनिक कुंजी और निजी कुंजी दोनों हों। यह फ़ाइल आपके MongoDB सर्वर पर /etc/ssl पर स्थित है। अधिक विवरण के लिए हमारी Robo 3T MongoDB कनेक्शन मार्गदर्शिका देखें।

हमेशा की तरह, यदि आपके कोई प्रश्न हैं, तो कृपया [email protected] पर हमसे संपर्क करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. समुच्चय और विभाजन

  2. SQL में DISTINCT का उपयोग कैसे करें

  3. सब कुछ जो आपको SQL में LIKE ऑपरेटर के बारे में जानना आवश्यक है

  4. वास्तविक स्वचालित प्रक्रिया के लिए SQL ट्यूनिंग के लिए AI का उपयोग कैसे करें

  5. उपयोगकर्ताओं, थ्रेड्स और पोस्ट को प्रबंधित करने के लिए बुनियादी डेटा संरचना की मॉडलिंग