sql >> Databáze >  >> NoSQL >> MongoDB

10 tipů, jak zlepšit zabezpečení MongoDB

MongoDB poskytuje řadu konstrukcí pro zlepšení zabezpečení vašich dat. Zabezpečení vašich dat v MongoDB je prvořadé – proto je důležité využít tyto konstrukce ke zmenšení vaší plochy. Zde je 10 tipů, které můžete použít ke zlepšení zabezpečení vašich serverů MongoDB na místě a v cloudu.

  1. Povolit ověřování

    I když jste své servery MongoDB nasadili v důvěryhodné síti, je dobrým bezpečnostním postupem povolit ověřování. Poskytuje vám „hloubkovou obranu“, pokud je vaše síť ohrožena. Upravte svůj konfigurační soubor MongoDB, abyste povolili auth:

    auth = true
    
  2. Nevystavujte svou produkční databázi internetu

    Omezení fyzického přístupu k vaší databázi je důležitým aspektem zabezpečení. Pokud to není nutné, nevystavujte svou produkční databázi internetu. V případě jakéhokoli kompromisu, pokud se útočník nemůže fyzicky připojit k vašemu serveru MongoDB, jsou vaše data mnohem bezpečnější. Pokud používáte AWS, můžete své databáze umístit do podsítě virtuálního privátního cloudu (VPC). Další informace najdete v příspěvku na blogu Nasazení MongoDB ve VPC.

  3. Používejte brány firewall

    Pomocí firewallů omezte, které další entity se mohou připojit k vašemu serveru MongoDB. Nejlepší praxí je povolit přístup k databázi pouze vašim aplikačním serverům. Pokud jste hostováni na AWS, použijte k omezení přístupu „Skupiny zabezpečení“. Pokud jste hostováni u poskytovatele, který nepodporuje konstrukce brány firewall, můžete si jej snadno nakonfigurovat sami pomocí „iptables“. Informace o konfiguraci iptables pro váš scénář naleznete v dokumentaci MongoDB.

  4. K nastavení sady replik použijte soubory klíčů

    Zadáním souboru sdíleného klíče povolíte komunikaci mezi vašimi instancemi MongoDB v sadě replik. Chcete-li to povolit, přidejte parametr keyfile do konfiguračního souboru, jak je uvedeno níže. Obsah souboru musí být na všech počítačích stejný:

    keyFile = /srv/mongodb/keyfile
    
  5. Zakázat rozhraní stavu HTTP

    MongoDB ve výchozím nastavení poskytuje rozhraní http běžící na portu 28017, které poskytuje „domovskou“ stavovou stránku. Toto rozhraní se nedoporučuje pro produkční použití a nejlépe je deaktivovat. Pomocí konfiguračního nastavení „nohttpinterface“ deaktivujte rozhraní http:

    nohttpinterface = true
    
  6. Zakázat rozhraní REST

    Rozhraní MongoDB REST se pro produkci nedoporučuje. Nepodporuje žádné ověřování a je ve výchozím nastavení vypnuto. Pokud jste ji zapnuli pomocí možnosti konfigurace „zbytek“, měli byste ji vypnout pro produkční systémy.

    rest = false
    
  7. Nakonfigurujte bind_ip

    Pokud má váš systém více síťových rozhraní, můžete použít volbu „bind_ip“ k omezení serveru MongoDB tak, aby naslouchal pouze na rozhraních, která jsou relevantní. Ve výchozím nastavení se MongoDB naváže na všechna rozhraní:

    bind_ip = 10.10.0.25,10.10.0.26
    
  8. Povolte SSL

    Pokud nepoužíváte SSL, vaše data putují mezi vaším klientem Mongo a serverem Mongo nešifrovaná a jsou náchylná k odposlouchávání, manipulaci a útokům typu „man in the middle“. To je zvláště důležité, pokud se připojujete k serveru MongoDB přes nezabezpečené sítě, jako je internet.

  9. Autorizace na základě rolí

    MongoDB podporuje autentizaci na základě rolí, aby vám poskytla podrobnou kontrolu nad akcemi, které může provádět každý uživatel. Omezte přístup pomocí konstrukcí založených na rolích, místo abyste ze všech svých uživatelů udělali administrátory. Další podrobnosti naleznete v dokumentaci k rolím.

  10. Enterprise MongoDB &Kerberos

    Enterprise MongoDB se integruje s Kerberos pro ověřování. Další podrobnosti najdete v dokumentaci MongoDB. Systémy uživatelských jmen a hesel jsou ze své podstaty nezabezpečené – pokud je to možné, používejte ověřování založené na obrubníku.

V ScaleGrid se snažíme ve výchozím nastavení podporovat osvědčené konfigurace zabezpečení pro všechna naše nasazení. Umožňujeme vám používat SSL a také nevystavovat vaši databázi internetu. Pokud máte nějaké dotazy, pošlete nám e-mail na adresu [email protected].


  1. Klonování instance MongoDB nebo sady replik

  2. Jak mohu vyprázdnit redis db z python redis?

  3. Spusťte javascriptový skript (soubor .js) v mongodb včetně dalšího souboru uvnitř js

  4. Mohu určit, zda je řetězec MongoDB ObjectID?