MongoDB Bezpieczeństwo, monitorowanie i tworzenie kopii zapasowych (Mongodump)

⚡ Inteligentne podsumowanie

MongoDB Bezpieczeństwo, monitorowanie i tworzenie kopii zapasowych to podstawowe koncepcje administrowania bazami danych, które zapewniają bezpieczeństwo, dostępność i możliwość odzyskiwania danych. Ten materiał obejmuje najlepsze praktyki bezpieczeństwa, kopie zapasowe Mongodump, narzędzia do monitorowania, wskazówki dotyczące indeksowania, mechanizmy uwierzytelniania, certyfikaty X.509 i konfigurację. MongoDB z uwierzytelnianiem Kerberos.

  • 🔒 Bezpieczeństwo: Włącz kontrolę dostępu, dostęp oparty na rolach, szyfrowanie TLS/SSL i audyt.
  • 💾 Utworzyć kopię zapasową: Skopiuj pliki danych, użyj mongodump do zrzutów BSON lub Cloud Manager.
  • 📊 Monitoring: Użyj mongostat, mongotop, interfejsu internetowego i serverStatus.
  • Indeksowanie: Dodaj indeksy do pól przeszukiwanych i ogranicz liczbę zwróconych pól.
  • 🪪 Poświadczenie: Aby zapewnić bezpieczny dostęp klienta, należy używać certyfikatów x.509 lub Kerberos.

MongoDB Bezpieczeństwo, monitorowanie i kopie zapasowe

Jedno z kluczowych pojęć w MongoDB to zarządzanie bazami danych. Ważne aspekty, takie jak bezpieczeństwo, tworzenie kopii zapasowych i dostęp do baz danych, są istotnymi koncepcjami w kontekście administrowania bazami danych.

MongoDB Przegląd zabezpieczeń

MongoDB ma możliwość definiowania mechanizmów bezpieczeństwa dla baz danych. Domyślnie nie chcemy, aby każdy miał otwarty dostęp do każdej bazy danych w MongoDB, stąd wymóg posiadania pewnego rodzaju mechanizmu bezpieczeństwa MongoDB jest ważne.

Poniżej przedstawiono najlepsze praktyki wdrażania zabezpieczeń w bazach danych:

  1. Włącz kontrolę dostępu – Utwórz użytkowników, aby wszystkie aplikacje i użytkownicy musieli mieć pewien rodzaj mechanizmu uwierzytelniania podczas uzyskiwania dostępu do baz danych. MongoDB.
  2. Konfigurowanie kontroli dostępu opartej na rolach – Czasami może istnieć logiczna grupaping uprawnień, które mogą być wymagane i które można pogrupować w role. Następnie użytkownikom można przypisać te role.
  3. Spróbuj skonfigurować MongoDB użyć jakiegoś protokołu szyfrowania, takiego jak TLS lub SSL. Protokoły te mogą służyć do szyfrowania ruchu przepływającego między klientem a MongoDB środowisko.
  4. Konfiguruj audyt – Administratorzy zazwyczaj muszą wiedzieć, kto co robi, co pomaga w późniejszej analizie problemów. Najlepszym sposobem jest włączenie audytu w MongoDB.
  5. Uruchom MongoDB instancja serwera z osobnym identyfikatorem użytkownika, który ma dostęp wyłącznie do wymaganych zasobów w środowisku serwerowym.

MongoDB Procedury tworzenia kopii zapasowych – mongodump

Podczas pracy z MongoDBważne jest, aby zawsze zapewnić procedurę tworzenia kopii zapasowej na wypadek utraty danych w niej zawartych MongoDB ulega uszkodzeniu z dowolnego powodu. Poniżej przedstawiono mechanizmy tworzenia kopii zapasowych dostępne w ramach MongoDB:

  1. Tworzenie kopii zapasowych poprzez kopiowanie podstawowych plików danych – To prawdopodobnie najprostszy mechanizm. Wystarczy skopiować pliki danych, na których MongoDB znajduje się i kopiuje je do innej lokalizacji, która w idealnym przypadku powinna znajdować się na innym serwerze.
  2. Utwórz kopię zapasową bazy danych za pomocą mongodump – Narzędzie mongodump odczytuje dane z pliku MongoDB Baza danych i tworzy pliki BSON o wysokiej wierności. Należy pamiętać, że jeśli zbiór danych jest duży, Mongodump może być bardzo zasobochłonny, dlatego aby złagodzić ten problem, narzędzie powinno być uruchamiane na serwerze zapasowym.
  3. MongoDB Kopia zapasowa menedżera chmury - MongoDB Cloud Manager stale tworzy kopie zapasowe MongoDB zestawy replik i klastry podzielone poprzez odczyt danych oplog z MongoDB środowisko. MongoDB Cloud Manager może tworzyć odzyskiwanie danych z określonego punktu w czasie poprzez przechowywanie danych oplog, dzięki czemu możliwe jest utworzenie kopii zapasowej w dowolnym momencie dla określonego zestawu replik lub klastra partycjonowanego.

MongoDB Monitorowanie

Monitorowanie jest jedną z najważniejszych czynności administracyjnych w MongoDB. Dzieje się tak, ponieważ możesz działać bardziej proaktywnie, monitorując środowisko pod kątem potencjalnych problemów, które mogą się pojawić. Poniżej znajduje się kilka przykładów wdrożenia monitorowania:

  1. mongostat Powie Ci, ile razy na serwerze faktycznie występują operacje bazy danych, takie jak wstawianie, wyszukiwanie, aktualizacja i usuwanie. Daje to dobry obraz obciążenia serwera i wskazuje, czy potrzebne są dodatkowe zasoby na serwerze, czy może dodatkowe serwery do rozłożenia obciążenia.
  2. mongotop tracks i raportuje bieżącą aktywność odczytu i zapisu MongoDB instancję i raportuje te statystyki dla poszczególnych kolekcji.
  3. MongoDB zapewnia interfejs sieciowy, który udostępnia informacje diagnostyczne i monitorujące na prostej stronie internetowej.
  4. Polecenie serverStatus lub db.serverStatus() z powłoki zwraca przegląd stanu bazy danych, ze szczegółami dotyczącymi użycia dysku, użycia pamięci, nawiązanych połączeń z bazą danych. MongoDB środowisko i wiele innych.

MongoDB Indeksowanie i zagadnienia dotyczące wydajności

  1. Indeksy są bardzo ważne w każdej bazie danych i można je wykorzystać do poprawy efektywności zapytań wyszukiwania MongoDBJeśli ciągle przeprowadzasz przeszukiwanie dokumentu, lepiej jest dodać indeksy do pól dokumentu, które są używane w kryteriach wyszukiwania.
  2. Staraj się zawsze ograniczać liczbę zwracanych wyników zapytania. Załóżmy, że masz kilka nazw pól w dokumencie, ale chcesz wyświetlić tylko dwa pola z dokumentu. Upewnij się, że zapytanie wyświetla tylko dwa potrzebne pola, a nie wszystkie.
  3. Jeśli chcesz wyświetlić określone wartości pól, użyj w zapytaniu tylko tych pól. Nie wykonuj zapytań o wszystkie pola w kolekcji, jeśli nie są one wymagane.

MongoDB Mechanizmy uwierzytelniania

Podczas gdy autoryzacja ma na celu zapewnienie klientowi dostępu do systemu, uwierzytelnianie sprawdza, jaki typ dostępu ma klient MongoDB po uzyskaniu autoryzacji w systemie. Istnieją różne mechanizmy uwierzytelniania; poniżej przedstawiamy tylko kilka z nich.

MongoDB Uwierzytelnianie przy użyciu certyfikatów x.509

Użyj certyfikatów x.509 do uwierzytelnienia klienta – certyfikat to w zasadzie zaufany podpis między klientem a MongoDB Serwer.

Zamiast więc wprowadzać nazwę użytkownika i hasło, aby połączyć się z serwerem, między klientem a serwerem przekazywany jest certyfikat MongoDB Serwer. Klient będzie zasadniczo posiadał certyfikat klienta, który zostanie przekazany serwerowi w celu uwierzytelnienia. Każdy certyfikat klienta odpowiada pojedynczemu MongoDB użytkownik. Zatem każdy użytkownik z MongoDB musi posiadać własny certyfikat, aby zostać uwierzytelnionym MongoDB serwer.

Aby mieć pewność, że to zadziała, należy wykonać następujące kroki:

  1. Należy zakupić ważny certyfikat od ważnego niezależnego organu certyfikującego i zainstalować go na komputerze. MongoDB Serwer.
  2. Certyfikat klienta musi mieć następujące właściwości: jeden Urząd Certyfikacji (CA) musi wydawać certyfikaty zarówno dla klienta, jak i serwera, a certyfikaty klienta muszą zawierać pola keyUsage i extendedKeyUsage.
  3. Każdy użytkownik, który łączy się z MongoDB Serwer musi mieć osobny certyfikat.

Jak skonfigurować MongoDB z uwierzytelnianiem Kerberos

Poniżej znajdują się kroki konfiguracji MongoDB z włączonym uwierzytelnianiem Kerberos Windows:

Krok 1) Skonfiguruj MongoDB z włączonym uwierzytelnianiem Kerberos Windows

Kerberos to mechanizm uwierzytelniania używany w dużych środowiskach klient-serwer. Jest to bardzo bezpieczny mechanizm, w którym hasło jest dozwolone tylko wtedy, gdy jest zaszyfrowane. MongoDB posiada funkcję uwierzytelniania w istniejącym systemie opartym na protokole Kerberos.

Krok 2) Proces serwera mongod.exe

Następnie uruchom proces serwera mongod.exe.

Krok 3) Przetwórz klienta mongo.exe i połącz się

Następnie uruchom proces klienta mongo.exe i połącz się z MongoDB serwer.

Krok 4) Dodaj użytkownika MongoDB

Dodaj użytkownika, który jest w zasadzie nazwą użytkownika Kerberos, do bazy danych $external. Baza danych $external to specjalna baza danych, która informuje MongoDB do uwierzytelnienia tego użytkownika w systemie Kerberos zamiast we własnym systemie wewnętrznym.

Konfigurowanie MongoDB z uwierzytelnianiem Kerberos

use $external
db.createUser(
  {
    user: "user1@example.NET",
    roles: [
      { role: "read", db: "Marketing" }
    ]
  }
)

Krok 5) Zacznij używać polecenia

Uruchom mongod.exe z obsługą Kerberos, używając następującego polecenia:

mongod.exe --auth --setParameter authenticationMechanisms=GSSAPI

Następnie możesz teraz połączyć się z użytkownikiem Kerberos i uwierzytelnić Kerberos do bazy danych.

FAQ

Tak. Narzędzia monitorujące oparte na sztucznej inteligencji mogą sygnalizować nietypowe wzorce zapytań, nieudane logowania i podejrzany dostęp. MongoDBUzupełniają one wbudowane funkcje audytu, jednak administratorzy nadal powinni przeglądać alerty i ręcznie egzekwować kontrolę dostępu.

Tak. Skrypty wspomagane sztuczną inteligencją i narzędzia w chmurze mogą planować kopie zapasowe Mongodump, weryfikować ich integralność i sugerować punkty przywracania. MongoDB Atlas oferuje również zautomatyzowane, ciągłe tworzenie kopii zapasowych, redukując ręczną pracę związaną z ochroną danych.

mongodump tworzy na żądanie migawki BSON bazy danych. MongoDB Cloud Manager stale odczytuje dziennik operacji, aby umożliwić odzyskiwanie zestawów replik i klastrów partycjonowanych w określonym momencie.

Użyj narzędzia mongorestore, kierując je na katalog zrzutu. Na przykład polecenie mongorestore –db Marketing dump/Marketing wczytuje pliki BSON z powrotem do wskazanej bazy danych.

Podsumuj ten post następująco: