MongoDB Zabezpečení, monitorování a zálohování (Mongodump)
⚡ Chytré shrnutí
MongoDB Zabezpečení, monitorování a zálohování jsou základní koncepty správy databází, které udržují data v bezpečí, dostupná a obnovitelná. Tento zdroj se zabývá osvědčenými postupy zabezpečení, zálohami Mongodump, nástroji pro monitorování, tipy pro indexování, mechanismy ověřování, certifikáty x.509 a konfigurací. MongoDB s ověřováním Kerberos.

Jeden z klíčových konceptů v MongoDB je správa databází. Důležité aspekty, jako je zabezpečení, zálohování a přístup k databázím, jsou důležité koncepty, pokud jde o správu databází.
MongoDB Přehled zabezpečení
MongoDB má schopnost definovat bezpečnostní mechanismy pro databáze. Ve výchozím nastavení by nikdo nechtěl, aby měl každý otevřený přístup ke každé databázi v MongoDB, tedy požadavek mít v sobě nějaký bezpečnostní mechanismus MongoDB je důležité.
Následují osvědčené postupy při implementaci zabezpečení v databázích:
- Povolit řízení přístupu – Vytvořte uživatele tak, aby všechny aplikace a uživatelé museli mít nějaký mechanismus ověřování při přístupu k databázím na MongoDB.
- Konfigurace řízení přístupu na základě rolí – Někdy může existovat logická skupinaping oprávnění, která mohou být vyžadována a která lze sdružit do rolí. Uživatelé pak mohou být těmto rolím přiřazeni.
- Zkuste nakonfigurovat MongoDB použít nějaký druh šifrovacího protokolu, jako je TLS nebo SSL. Tyto protokoly lze použít k šifrování provozu, který proudí mezi klientem a MongoDB prostředí.
- Konfigurace auditování – Administrátoři obvykle potřebují vědět, kdo co dělá, což pomáhá při pozdější analýze problémů. Nejlepším způsobem je povolit auditování v MongoDB.
- Spusťte MongoDB instance serveru se samostatným uživatelským ID, které má přístup pouze k požadovaným prostředkům v prostředí serveru.
MongoDB Zálohovací procedury – mongodump
Při práci s MongoDBje důležité vždy zajistit zálohování pro případ, že by se data uvnitř MongoDB z jakéhokoli důvodu poškodí. Níže jsou uvedeny zálohovací mechanismy dostupné v rámci MongoDB:
- Zálohování zkopírováním podkladových datových souborů – Toto je pravděpodobně nejjednodušší mechanismus. Stačí jen zkopírovat datové soubory, na kterých MongoDB nachází a zkopírovat je na jiné místo, ideálně na jiný server.
- Zálohujte databázi pomocí mongodump – Nástroj mongodump čte data z a MongoDB databázi a vytváří vysoce věrné soubory BSON. Je třeba vzít v úvahu, že pokud je datová sada velká, může být Mongodump velmi náročný na zdroje, takže pro zmírnění tohoto problému by měl být nástroj spuštěn na sekundárním serveru.
- MongoDB Zálohování správce cloudu - MongoDB Cloud Manager neustále zálohuje MongoDB sady replik a sdílené clustery čtením dat oplogu z MongoDB prostředí. MongoDB Cloud Manager může vytvořit obnovení k určitému bodu v čase uložením dat oplog, aby mohl kdykoli vytvořit obnovení pro konkrétní sadu replik nebo horizontálně dělený cluster.
MongoDB monitorování
Monitoring je jednou z nejdůležitějších administrativních činností MongoDBJe to proto, že můžete být proaktivnější sledováním prostředí a zjišťováním možných problémů, které by se mohly objevit. Níže uvádíme několik příkladů implementace monitorování:
- monostat vám řekne, kolikrát se na serveru skutečně vyskytnou databázové operace, jako je vkládání, dotazování, aktualizace a mazání. To dává dobrou představu o tom, kolik zátěže server zvládá, a naznačuje, zda potřebujete na serveru další zdroje, nebo případně další servery k rozložení zátěže.
- mongotop tracks a hlásí aktuální aktivitu čtení a zápisu MongoDB instanci a tyto statistiky hlásí pro každou kolekci.
- MongoDB poskytuje webové rozhraní, které zobrazuje diagnostické a monitorovací informace na jednoduché webové stránce.
- Příkaz serverStatus nebo db.serverStatus() ze shellu vrátí přehled stavu databáze s podrobnostmi o využití disku, využití paměti, navázaných připojeních k MongoDB prostředí a další.
MongoDB Indexování a úvahy o výkonu
- Indexy jsou velmi důležité v každé databázi a lze je použít ke zlepšení efektivity vyhledávacích dotazů v MongoDBPokud v dokumentu neustále provádíte vyhledávání, je lepší přidat indexy k polím dokumentu, která se používají ve vyhledávacích kritériích.
- Snažte se vždy omezit počet vrácených výsledků dotazu. Předpokládejme, že máte v dokumentu několik názvů polí, ale chcete zobrazit pouze 2 pole z dokumentu. Pak se ujistěte, že váš dotaz cílí na zobrazení pouze 2 požadovaných polí, a ne všech polí.
- Pokud chcete zobrazit určité hodnoty polí, použijte v dotazu pouze tato pole. Neptejte se na všechna pole v kolekci, pokud nejsou povinná.
MongoDB Autentizační mechanismy
Zatímco autorizace se zaměřuje na zajištění přístupu klienta k systému, autentizace kontroluje, jaký typ přístupu má klient v systému. MongoDB jakmile byli autorizováni do systému. Existují různé mechanismy ověřování; níže uvádíme jen některé z nich.
MongoDB Autentizace pomocí x.509 certifikátů
Používejte certifikáty x.509 k ověření klienta – certifikát je v podstatě důvěryhodný podpis mezi klientem a MongoDB Server.
Místo zadávání uživatelského jména a hesla pro připojení k serveru je tedy mezi klientem a serverem předán certifikát MongoDB Server. Klient bude mít v podstatě klientský certifikát, který bude předán serveru pro ověření na serveru. Každý klientský certifikát odpovídá jednomu MongoDB uživatel. Takže každý uživatel z MongoDB musí mít vlastní certifikát, aby mohl být ověřen MongoDB serveru.
Aby to fungovalo, je třeba dodržet následující kroky:
- Platný certifikát musí být zakoupen od platné autority třetí strany a nainstalován na MongoDB Server.
- Klientský certifikát musí mít následující vlastnosti: certifikáty pro klienta i server musí vydávat jedna certifikační autorita (CA) a klientské certifikáty musí obsahovat pole keyUsage a extendedKeyUsage.
- Každý uživatel, který se připojí k MongoDB Server potřebuje samostatný certifikát.
Jak konfigurovat MongoDB s ověřováním Kerberos
Níže jsou uvedeny kroky ke konfiguraci MongoDB se zapnutým ověřováním Kerberos Windows:
Krok 1) Nakonfigurujte MongoDB se zapnutým ověřováním Kerberos Windows
Kerberos je autentizační mechanismus používaný ve velkých klient-server prostředích. Jedná se o velmi bezpečný mechanismus, kde je heslo povoleno pouze v případě, že je zašifrované. MongoDB má možnost ověřování v existujícím systému založeném na protokolu Kerberos.
Krok 2) Proces serveru mongod.exe
Dále spusťte proces serveru mongod.exe.
Krok 3) Zpracujte klienta mongo.exe a připojte se
Dále spusťte klientský proces mongo.exe a připojte se k MongoDB serveru.
Krok 4) Přidejte uživatele MongoDB
Přidejte uživatele, což je v podstatě jméno principalu Kerberos, do databáze $external. Databáze $external je speciální databáze, která sděluje MongoDB k ověření tohoto uživatele proti systému Kerberos namísto jeho vlastního interního systému.
use $external db.createUser( { user: "user1@example.NET", roles: [ { role: "read", db: "Marketing" } ] } )
Krok 5) Začněte používat příkaz
Spusťte soubor mongod.exe s podporou Kerberos pomocí následujícího příkazu:
mongod.exe --auth --setParameter authenticationMechanisms=GSSAPI
A pak se nyní můžete připojit s uživatelem Kerberos a ověřováním Kerberos k databázi.

