sql >> Databáze >  >> RDS >> Database

Zabezpečte své Mongo Clusters pomocí SSL

SSL je nesmírně důležité pro zachování soukromí a platnosti vašich dat v nedůvěryhodných sítích. Pokud nasazujete produkční databázový cluster na internetu, SSL je rozhodně něco, co byste měli zvážit. ScaleGrid nyní podporuje povolení SSL pro vaše servery MongoDB.

Povolení SSL je nyní stejně snadné jako zaškrtnutí políčka v průvodci vytvořením MongoDB:

Proč tedy používat SSL s MongoDB?

  1. Ochrana osobních údajů

    Pokud se připojujete k serveru MongoDB přes nezabezpečené sítě, vaše data putují nezašifrovaná a jsou náchylná k odposlechu i manipulaci. SSL šifruje data, takže k nešifrovaným datům mají přístup pouze dva koncové body.

  2. Ověření

    Použijte  PKI (infrastruktura soukromých klíčů), abyste zajistili, že se k serveru MongoDB mohou připojit pouze klienti s certifikáty od příslušné CA. Toto je další krok a můžete se rozhodnout, že nebudete používat své vlastní certifikáty nebo CA – stále budete mít výhody ochrany soukromí díky end-to-end šifrování.

Nevýhody MongoDB SSL

  • Režie výkonu

    Používání protokolu SSL rozhodně znamená určitou režii na výkon. I když jsme ještě nespustili komplexní testy, existuje určitá režie kvůli použití SSL.

  • Nedostatek uživatelského rozhraní MongoDB

    Většina oblíbených uživatelských rozhraní MongoDB již po vybalení nepodporuje SSL. Takže možná budete muset přejít na placenou verzi nebo použít mongo konzolu.

Připojování k serveru MongoDB s povoleným SSL

Pokud se připojujete k serveru MongoDB s povoleným SSL, existuje několik rozdílů v kódu připojení MongoDB. Další podrobnosti naleznete v dokumentaci vašeho ovladače.

  1. Mongo Shell

    Výchozí mongo klient nepodporuje připojení k serveru s povoleným SSL – potřebujete sestavení MongoDB s povoleným SSL. Můžete SSH do serveru s povoleným SSL a poté se připojit pomocí mongo klienta na serveru. Zde je syntaxe pro připojení pomocí uživatele admin poskytnutého ScaleGrid:

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

    K připojovacímu řetězci MongoDB budete muset přidat vlastnost „ssl=true“. Některé platformy (např. JDK) také vyžadují, abyste přidali veřejný klíč certifikátu SSL do důvěryhodné cesty, než se budete moci připojit k serveru. Ve výchozím nastavení je pro každý cluster generován certifikát s vlastním podpisem. Veřejný klíč certifikátu SSL si můžete stáhnout z uživatelského rozhraní nebo si certifikát můžete stáhnout z /etc/ssl/mongodb-cert.crt na serveru. V uživatelském rozhraní je v modálním řetězci připojení k dispozici odkaz ke stažení veřejného certifikátu SSL:

    Další pokyny, jak můžete SSH do instance přidat, naleznete v části „Přihlašovací údaje virtuálního počítače“ v tomto příspěvku na blogu. Soubor crt se na serveru nachází v /etc/ssl/mongodb-cert.crt. Jakmile si stáhnete veřejný klíč, budete jej muset přidat do svého důvěryhodného klíčového kamene:

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

    Výchozí heslo pro obchod cacerts je „changeit“. Z bezpečnostních důvodů byste si toto heslo měli změnit na své vlastní. Jakmile certifikát přidáte, vyjmenujte certifikáty v základním kameni, abyste potvrdili, že byl certifikát přidán:

    keytool -list -keystore cacerts -storepass changeit
    
  3. Uživatelské rozhraní Mongo:Robo 3T

    Robo 3T (dříve Robomongo) je jedno z mála uživatelských rozhraní MongoDB, které podporuje připojení pomocí SSL. Při vytváření připojení k vašemu serveru MongoDB vyberte možnost SSL. Pro certifikát použijte soubor .pem, který má veřejný i soukromý klíč. Tento soubor se nachází v /etc/ssl na vašem serveru MongoDB. Další podrobnosti najdete v našem průvodci připojením Robo 3T MongoDB.

Jako vždy, pokud máte nějaké dotazy, kontaktujte nás na adrese [email protected].


  1. SQL Server:Extrahujte metadata tabulky (popis, pole a jejich datové typy)

  2. Mám odstranit nebo zakázat řádek v relační databázi?

  3. PostgreSQL index se nepoužívá pro dotaz na rozsahy IP

  4. Jak filtrovat výsledky dotazů v PostgreSQL