Database
 sql >> Datenbank >  >> RDS >> Database

Sichern Sie Ihre Mongo-Cluster mit SSL

SSL ist äußerst wichtig, um die Vertraulichkeit und Gültigkeit Ihrer Daten über nicht vertrauenswürdige Netzwerke zu wahren. Wenn Sie einen Produktionsdatenbank-Cluster im Internet bereitstellen, sollten Sie SSL definitiv in Betracht ziehen. ScaleGrid unterstützt jetzt die Aktivierung von SSL für Ihre MongoDB-Server.

Das Aktivieren von SSL ist jetzt so einfach wie das Aktivieren eines Kästchens im MongoDB-Erstellungsassistenten:

Warum also SSL mit MongoDB verwenden?

  1. Datenschutz

    Wenn Sie sich über ungesicherte Netzwerke mit Ihrem MongoDB-Server verbinden, werden Ihre Daten unverschlüsselt übertragen und können sowohl abgehört als auch manipuliert werden. SSL verschlüsselt die Daten, sodass nur die beiden Endpunkte Zugriff auf die unverschlüsselten Daten haben.

  2. Authentifizierung

    Verwenden Sie PKI (Private Key Infrastructure), um sicherzustellen, dass nur Clients mit Zertifikaten von einer geeigneten Zertifizierungsstelle eine Verbindung zum MongoDB-Server herstellen können. Dies ist ein zusätzlicher Schritt und Sie können wählen, ob Sie Ihre benutzerdefinierten Zertifikate oder Zertifizierungsstellen nicht verwenden möchten – Sie genießen dennoch die Vorteile des Datenschutzes aufgrund der End-to-End-Verschlüsselung.

MongoDB-SSL-Nachteile

  • Leistungs-Overhead

    Es gibt definitiv einen gewissen Leistungsaufwand für die Verwendung von SSL. Wir müssen zwar noch umfassende Tests durchführen, aber durch die Verwendung von SSL entsteht definitiv ein Mehraufwand.

  • Fehlende MongoDB-Benutzeroberfläche

    Die meisten gängigen MongoDB-Benutzeroberflächen unterstützen SSL nicht standardmäßig. Daher müssen Sie sich möglicherweise für die kostenpflichtige Version entscheiden oder die Mongo-Konsole verwenden.

Verbinden mit Ihrem SSL-fähigen MongoDB-Server

Wenn Sie eine Verbindung zu einem MongoDB-Server mit aktiviertem SSL herstellen, gibt es mehrere Unterschiede im MongoDB-Verbindungscode. Weitere Einzelheiten finden Sie in der Dokumentation Ihres Treibers.

  1. Mongo-Muschel

    Der standardmäßige Mongo-Client unterstützt keine Verbindungen zu einem SSL-fähigen Server – Sie benötigen den SSL-fähigen Build von MongoDB. Sie können sich per SSH mit dem SSL-fähigen Server verbinden und dann den Mongo-Client auf dem Server verwenden, um eine Verbindung herzustellen. Hier ist die Syntax zum Herstellen einer Verbindung mit dem von ScaleGrid bereitgestellten Admin-Benutzer:

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

    Sie müssen die Eigenschaft „ssl=true“ an Ihre MongoDB-Verbindungszeichenfolge anhängen. Außerdem müssen Sie bei bestimmten Plattformen (z. B. JDK) den öffentlichen Schlüssel des SSL-Zertifikats zum vertrauenswürdigen Pfad hinzufügen, bevor Sie eine Verbindung zum Server herstellen können. Standardmäßig wird für jeden Cluster ein selbstsigniertes Zertifikat generiert. Sie können den öffentlichen Schlüssel des SSL-Zertifikats von der Benutzeroberfläche herunterladen oder Sie können das Zertifikat von /etc/ssl/mongodb-cert.crt auf dem Server herunterladen. In der Benutzeroberfläche ist ein Link zum Herunterladen des öffentlichen SSL-Zertifikats in der modalen Verbindungszeichenfolge verfügbar:

    Weitere Anweisungen dazu, wie Sie eine SSH-Verbindung zur Instanz herstellen können, finden Sie im Abschnitt „VM-Anmeldedaten“ in diesem Blogbeitrag. Die crt-Datei befindet sich unter /etc/ssl/mongodb-cert.crt auf dem Server. Nachdem Sie den öffentlichen Schlüssel heruntergeladen haben, müssen Sie ihn zu Ihrem vertrauenswürdigen Keystone hinzufügen:

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

    Das Standardkennwort für den cacerts-Speicher lautet „changeit“. Aus Sicherheitsgründen sollten Sie dieses Passwort in Ihr eigenes ändern. Nachdem Sie das Zertifikat hinzugefügt haben, zählen Sie die Zertifikate im Keystone auf, um zu bestätigen, dass das Zertifikat hinzugefügt wurde:

    keytool -list -keystore cacerts -storepass changeit
    
  3. Mongo-UI:Robo 3T

    Robo 3T (ehemals Robomongo) ist eine der wenigen MongoDB-Benutzeroberflächen, die eine Verbindung mit SSL unterstützen. Wählen Sie beim Erstellen einer Verbindung zu Ihrem MongoDB-Server die Option SSL aus. Verwenden Sie für das Zertifikat die .pem-Datei, die sowohl den öffentlichen Schlüssel als auch den privaten Schlüssel enthält. Diese Datei befindet sich unter /etc/ssl auf Ihrem MongoDB-Server. Weitere Einzelheiten finden Sie in unserem Robo 3T MongoDB Connection Guide.

Wenn Sie Fragen haben, wenden Sie sich bitte wie immer an [email protected].