Database
 sql >> Baza danych >  >> RDS >> Database

Zabezpiecz swoje klastry Mongo za pomocą SSL

SSL jest niezwykle ważny dla zachowania prywatności i ważności danych w niezaufanych sieciach. Jeśli wdrażasz produkcyjny klaster baz danych w Internecie, zdecydowanie powinieneś rozważyć SSL. ScaleGrid obsługuje teraz włączanie SSL dla serwerów MongoDB.

Włączenie SSL jest teraz tak proste, jak zaznaczenie pola w kreatorze tworzenia MongoDB:

Dlaczego więc używać SSL z MongoDB?

  1. Prywatność

    Jeśli łączysz się z serwerem MongoDB przez niezabezpieczone sieci, Twoje dane są przesyłane w postaci niezaszyfrowanej i mogą być zarówno podsłuchiwane, jak i manipulowane. SSL szyfruje dane, więc tylko dwa punkty końcowe mają dostęp do niezaszyfrowanych danych.

  2. Uwierzytelnianie

    Użyj PKI (infrastruktury kluczy prywatnych), aby mieć pewność, że tylko klienci z certyfikatami z odpowiedniego urzędu certyfikacji mogą łączyć się z serwerem MongoDB. Jest to dodatkowy krok i możesz zrezygnować z używania niestandardowych certyfikatów lub CA – nadal będziesz korzystać z prywatności dzięki kompleksowemu szyfrowaniu.

Wady protokołu SSL MongoDB

  • Ogólne wyniki

    Z pewnością korzystanie z SSL wiąże się z pewnym obciążeniem wydajnością. Chociaż nie przeprowadziliśmy jeszcze kompleksowych testów, korzystanie z SSL wiąże się z pewnym obciążeniem.

  • Brak interfejsu użytkownika MongoDB

    Większość popularnych interfejsów użytkownika MongoDB nie obsługuje SSL po wyjęciu z pudełka. Być może będziesz musiał wybrać wersję płatną lub skorzystać z konsoli mongo.

Łączenie z serwerem MongoDB z obsługą SSL

Jeśli łączysz się z serwerem MongoDB z włączonym SSL, istnieje kilka różnic w kodzie połączenia MongoDB. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją kierowcy.

  1. Muszla Mongo

    Domyślny klient mongo nie obsługuje połączeń z serwerem z włączoną obsługą SSL – potrzebujesz kompilacji MongoDB z włączoną obsługą SSL. Możesz SSH do serwera z włączonym SSL, a następnie użyć klienta mongo na serwerze do połączenia. Oto składnia połączenia przy użyciu administratora dostarczonego przez ScaleGrid:

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

    Musisz dołączyć właściwość „ssl=true” do ciągu połączenia MongoDB. Ponadto niektóre platformy (np. JDK) będą wymagać dodania klucza publicznego certyfikatu SSL do zaufanej ścieżki przed połączeniem się z serwerem. Domyślnie dla każdego klastra generowany jest certyfikat samopodpisany. Możesz pobrać klucz publiczny certyfikatu SSL z interfejsu użytkownika lub możesz pobrać certyfikat z /etc/ssl/mongodb-cert.crt na serwerze. W interfejsie użytkownika link do pobrania publicznego certyfikatu SSL jest dostępny w modalnym ciągu połączenia:

    Więcej instrukcji na temat łączenia się przez SSH z instancją znajdziesz w sekcji „Poświadczenia maszyn wirtualnych” w tym poście na blogu. Plik crt znajduje się w /etc/ssl/mongodb-cert.crt na serwerze. Po pobraniu klucza publicznego musisz dodać go do zaufanego klucza:

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

    Domyślne hasło do sklepu cacerts to „changeit”. Ze względów bezpieczeństwa należy zmienić to hasło na własne. Po dodaniu certyfikatu wylicz certyfikaty w keystone, aby potwierdzić, że certyfikat został dodany:

    keytool -list -keystore cacerts -storepass changeit
    
  3. Interfejs użytkownika Mongo:Robo 3T

    Robo 3T (dawniej Robomongo) to jeden z niewielu interfejsów użytkownika MongoDB obsługujących łączenie z SSL. Podczas tworzenia połączenia z serwerem MongoDB wybierz opcję SSL. W przypadku certyfikatu użyj pliku .pem, który zawiera zarówno klucz publiczny, jak i klucz prywatny. Ten plik znajduje się w /etc/ssl na twoim serwerze MongoDB. Sprawdź nasz przewodnik połączenia Robo 3T MongoDB, aby uzyskać więcej informacji.

Jak zawsze, jeśli masz jakieś pytania, skontaktuj się z nami pod adresem [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. Zdarzenia i wątki w .NET

  2. Szybsze ładowanie Big Data

  3. Specjalne wyspy

  4. Nowe standardowe rozmiary warstw bazy danych SQL Azure

  5. Ogólne instrukcje budowania i wdrażania serwera bazy danych