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

Jedno z kluczowych pojęć w MongoDB jest zarządzaniem bazami danych. Ważne aspekty, takie jak bezpieczeństwo, kopia zapasowa, dostęp do baz danych, są ważnymi koncepcjami, jeśli chodzi o administrowanie bazami danych.

MongoDB Przegląd zabezpieczeń

MongoDB posiada możliwość definiowania mechanizmów zabezpieczeń baz danych. Domyślnie nie chcielibyśmy, aby każdy miał otwarty dostęp do każdej bazy danych 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ć jakiś mechanizm uwierzytelniania podczas uzyskiwania dostępu do baz danych MongoDB.
  2. Skonfiguruj kontrolę dostępu opartą na rolach — czasami może istnieć logiczne grupowanie uprawnień, które mogą być wymagane i które można pogrupować w role. Następnie można przypisać użytkowników do tych ról.
  3. Spróbuj skonfigurować MongoDB aby 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 środowiskiem Mongo DB.
  4. Skonfiguruj audytowanie – Administratorzy zazwyczaj muszą wiedzieć, kto co robi, co pomaga w późniejszej analizie problemów. Najlepszym sposobem jest włączenie audytowania w MongoDB.
  5. Uruchom instancję serwera MongDB z oddzielnym identyfikatorem użytkownika, który ma dostęp do wymaganych zasobów w środowisku serwera.

Procedury tworzenia kopii zapasowych Mongodb – mongodump

Podczas pracy z MongDB ważne jest, aby zawsze mieć wdrożoną procedurę tworzenia kopii zapasowych na wypadek, gdyby dane się w niej znajdowały MongoDB ulega uszkodzeniu z jakiegokolwiek powodu.

Poniżej znajdują się mechanizmy tworzenia kopii zapasowych dostępne od wewnątrz MongoDB

  1. Tworzenie kopii zapasowych poprzez kopiowanie podstawowych plików danych – To chyba najprostszy mechanizm, jedyne co trzeba zrobić to skopiować pliki z danymi, na których MongoDB znajduje się i skopiuj go do innej lokalizacji, która w idealnym przypadku powinna być innym serwerem.
  2. Utwórz kopię zapasową bazy danych za pomocą mongodump – Narzędzie mongodump odczytuje dane z pliku MongoDB bazy danych i tworzy pliki BSON o wysokiej wierności. Należy wziąć pod uwagę, że jeśli zestaw danych ma dużą objętość, wówczas mongodump może wymagać bardzo dużych zasobów, więc aby złagodzić ten problem, narzędzie powinno zostać uruchomione na serwerze pomocniczym.
  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 Usługa Cloud Manager umożliwia tworzenie odzyskiwania danych z określonego punktu w czasie poprzez przechowywanie danych oplog, dzięki czemu możliwe jest utworzenie operacji przywracania w dowolnym momencie dla określonego zestawu replik lub klastra partycjonowanego.

Monitorowanie Mongodb

Monitorowanie jest jedną z najważniejszych czynności administracyjnych w MongoDB. Dzieje się tak dlatego, że możesz być bardziej proaktywny, monitorując środowisko pod kątem możliwych problemów, które mogą się pojawić.

Poniżej znajduje się kilka przykładów wdrożenia monitoringu

  1. mongostat powie ci, ile razy operacje bazodanowe, takie jak wstawianie, zapytanie, aktualizacja, usuwanie itp. faktycznie występują na serwerze. To da ci dobre pojęcie o tym, jak duże obciążenie obsługuje serwer i wskaże, czy potrzebujesz dodatkowych zasobów na serwerze lub może dodatkowych serwerów do rozłożenia obciążenia.
  2. mongotop śledzi i raportuje bieżącą aktywność odczytu i zapisu a 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. Można przejść do poniższego adresu URL na serwerze lokalnym, aby otworzyć narzędzie do administrowania siecią http://localhost:28017
  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 itp.

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 MongoDB. Jeśli stale przeszukujesz swój dokument, lepiej dodać indeksy na polach dokumentu, które są wykorzystywane w kryteriach wyszukiwania.
  2. Staraj się zawsze ograniczać liczbę zwracanych wyników zapytania. Załóżmy, że masz w dokumencie 2 nazwy pól, ale chcesz zobaczyć tylko 2 pola z dokumentu. Następnie upewnij się, że zapytanie ma na celu wyłącznie wyświetlenie 2 wymaganych pól, a nie wszystkich pól.
  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.

Konfigurowanie MongoDB z uwierzytelnianiem Kerberos

Podczas gdy autoryzacja ma na celu zapewnienie klientowi dostępu do systemu, uwierzytelnianie sprawdza, jaki rodzaj dostępu ma klient MongoDB, po ich autoryzacji w systemie.

Istnieją różne mechanizmy uwierzytelniania, poniżej przedstawiono 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 do serwera w celu uwierzytelnienia na serwerze. Każdy certyfikat klienta odpowiada pojedynczemu MongoDB użytkownik. Zatem każdy użytkownik z MongoDB musi posiadać własny certyfikat w celu uwierzytelnienia w serwisie MongoDB serwer.

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

  1. Ważny certyfikat należy kupić od ważnego organu strony trzeciej i zainstalować go na komputerze MongoDB Serwer.
  2. Certyfikat klienta musi mieć następujące właściwości (Pojedynczy Urząd Certyfikacji (CA) musi wydawać certyfikaty zarówno dla klienta, jak i serwera. Certyfikaty klienta muszą zawierać następujące pola – keyUsage i extendedKeyUsage.
  3. Każdy użytkownik łączący się z serwerem MongDB musi posiadać osobny certyfikat.

Jak skonfigurować MongoDB z uwierzytelnianiem Kerberos

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

Krok 1) Konfigurowanie MongoDB z włączonym uwierzytelnianiem Kerberos Windows
Kerberos to mechanizm uwierzytelniania stosowany w dużych środowiskach klient-serwer.

Jest to bardzo bezpieczny mechanizm, w którym hasło jest dozwolone tylko wtedy, gdy jest zaszyfrowane. Dobrze, 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) Proces klienta mongo.exe i połączenie
Następnie uruchom proces klienta mongo.exe i połącz się z MongoDB serwer.

Krok 4) Dodaj użytkownika w MongoDB
Jest to w zasadzie główna nazwa Kerberos dla zewnętrznej bazy danych. Baza danych $external jest specjalną bazą 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.

Podsumowanie

  • Bardzo ważne jest wdrożenie zabezpieczeń w bazach danych, aby zapewnić bezpieczeństwo danych w bazie danych.
  • Użytkowników można tworzyć w bazie danych za pomocą polecenia createUser. Użytkownikom można przypisać określone role, aby nadać im określone uprawnienia w samej bazie danych.
  • Administratorów można dodać do wszystkich baz danych, tylko do określonych baz danych. Można to osiągnąć poprzez nadanie roli userAdmin lub userAdminAnyDatabase.
  • Zawsze twórz kopie zapasowe MongoDB środowisku tak, aby w przypadku jakiejkolwiek katastrofy dane były łatwe do odzyskania.
  • Zawsze monitoruj swoje MongoDB środowisko, aby byli bardziej proaktywni i dostrzegali problemy, zanim one wystąpią.
  • Istnieją różne mechanizmy uwierzytelniania zapewniające większe bezpieczeństwo baz danych. Jednym z przykładów jest użycie certyfikatów do uwierzytelniania użytkowników zamiast używania nazw użytkowników i haseł.