MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Przegląd Atlasu MongoDB:część druga

W pierwszej części bloga „Przegląd atlasu MongoDB” przyjrzeliśmy się rozpoczynaniu pracy z atlasem MongoDB, wstępnej konfiguracji i migracji istniejącego klastra MongoDB do atlasu MongoDB. W tej części będziemy nadal badać kilka elementów zarządzania wymaganych dla każdego systemu produkcyjnego MongoDB, takich jak bezpieczeństwo i ciągłość biznesowa.

Bezpieczeństwo bazy danych w MongoDB Atlas

Bezpieczeństwo zawsze jest najważniejsze. Chociaż jest to ważne dla wszystkich baz danych, dla MongoDB ma szczególne znaczenie. W połowie 2017 r. w Internecie pojawiły się informacje dotyczące ataków ransomware, których celem były konkretnie luki w systemach MongoDB. Hakerzy przejmowali instancje MongoDB i żądali okupu w zamian za zwrot przechowywanych danych. Były ostrzeżenia. Przed tymi atakami ransomware blogerzy i eksperci pisali o tym, ile instancji produkcyjnych zostało uznanych za podatne na ataki. To wywołało ożywioną dyskusję na temat bezpieczeństwa MongoDB przez długi czas.

Jesteśmy teraz w 2019 roku, a MongoDB staje się jeszcze bardziej popularny. Nowa główna wersja (4.0) została niedawno wydana i zauważyliśmy zwiększoną stabilność w MongoDB Atlas. Ale co zrobiono, aby zwiększyć bezpieczeństwo baz danych NoSQL w chmurze.

Oprogramowanie ransomware i ciągła prasa musiały mieć wpływ na MongoDB, ponieważ wyraźnie widzimy, że bezpieczeństwo znajduje się teraz w centrum ekosystemu MongoDB. MongoDB Atlas bez wyjątku ma teraz wbudowane mechanizmy kontroli bezpieczeństwa na potrzeby przetwarzania danych produkcyjnych i wiele funkcji bezpieczeństwa dla przedsiębiorstw. Domyślne podejście (które spowodowało lukę) ze starszej wersji zniknęło, a baza danych jest teraz domyślnie zabezpieczona (sieć, autoryzacje crud itp.). Zawiera również funkcje, których można oczekiwać w nowoczesnym środowisku produkcyjnym (audyt, tymczasowy dostęp użytkowników itp.).

Ale to nie koniec. Ponieważ Atlas jest rozwiązaniem online, możesz teraz korzystać z integracji z innymi firmami, takich jak uwierzytelnianie LDAP lub nowoczesne usługi internetowe MongoDB, takie jak wykresy MongoDB. MongoDB Atlas jest zbudowany na Amazon WebServices (AWS), Microsoft Azure i Google Cloud Platform (GCP), które również oferują własne zabezpieczenia o wysokim poziomie bezpieczeństwa. To świetne połączenie zapewnia, że ​​standardy bezpieczeństwa MongoDB Atlas są takie, jakich oczekiwalibyśmy. Rzućmy okiem na niektóre z tych kluczowych funkcji.

MongoDB Atlas i bezpieczeństwo sieci

MongoDB Atlas tworzy klastry na bazie istniejącej infrastruktury chmury. Wybierając AWS, dane klienta są przechowywane w systemach MongoDB Atlas. Systemy te to dedykowane serwery wirtualne AWS EC2 dla jednego dzierżawcy, które są tworzone wyłącznie dla Klienta Atlas. Centra danych Amazon AWS są zgodne z kilkoma standardami bezpieczeństwa fizycznego i bezpieczeństwa informacji, ale ponieważ potrzebujemy otwartej sieci, może to budzić obawy.

Dedykowane klastry MongoDB Atlas są wdrażane w wirtualnej chmurze prywatnej (VPC) z dedykowanymi zaporami. Dostęp musi być przyznany przez białą listę adresów IP lub przez VPC peering. Domyślnie cały dostęp jest wyłączony.

MongoDB wymaga następujących portów sieciowych dla Atlasu...

  • 27016 dla odłamków
  • 27015 dla złącza BI
  • 27017 dla serwera
  • Jeśli włączony jest LDAP, MongoDB wymaga sieci LDAP 636 po stronie klienta otwartej na ruch 0.0.0.0 (cały Internet).

Nie można zmienić portów sieciowych i nie można wyłączyć TLS. Dostęp można również odizolować za pomocą białej listy adresów IP.

Dodatkowo możesz wybrać dostęp do MongoDB Atlas za pośrednictwem hostów Bastion. Hosty bastionu są skonfigurowane tak, aby wymagały kluczy SSH (nie haseł). Wymagają również uwierzytelniania wieloskładnikowego, a użytkownicy muszą dodatkowo zostać zatwierdzeni przez kierownictwo wyższego szczebla w celu uzyskania dostępu do zaplecza.

Zarządzanie dostępem w oparciu o role w Atlasie MongoDB

Możesz skonfigurować zaawansowane, oparte na rolach reguły dostępu, aby kontrolować, którzy użytkownicy (i zespoły) mogą uzyskiwać dostęp, manipulować i/lub usuwać dane w Twoich bazach danych. Domyślnie nie ma utworzonych użytkowników, więc zostaniesz poproszony o ich utworzenie.

MongoDB Atlas pozwala administratorom definiować uprawnienia dla użytkownika lub aplikacji, a także do jakich danych można uzyskać dostęp podczas wykonywania zapytań do MongoDB. MongoDB Atlas zapewnia możliwość przydzielania użytkownikom ról specyficznych dla projektu lub bazy danych, co pozwala na realizację rozdziału obowiązków pomiędzy różnymi podmiotami uzyskującymi dostęp do danych i zarządzającymi nimi. Proces jest prosty i w pełni interaktywny.

Aby utworzyć nowego użytkownika, przejdź do zakładki Bezpieczeństwo po lewej stronie i wybierz między użytkownikami MongoDB a rolami MongoDB.

Role MongoDB

Kompletne szyfrowanie bazy danych w Atlasie MongoDB

Wszystkie przesyłane dane MongoDB Atlas są szyfrowane przy użyciu protokołu Transport Layer Security (TLS). Masz swobodę konfigurowania minimalnej wersji protokołu TLS. Szyfrowanie danych w spoczynku jest zautomatyzowane przy użyciu zaszyfrowanych woluminów pamięci masowej.

Możesz również zintegrować swoje istniejące praktyki i procesy bezpieczeństwa z MongoDB Atlas, aby zapewnić dodatkową kontrolę nad sposobem zabezpieczania środowiska.

Dla samego MongoDB Atlas Cluster uwierzytelnianie jest domyślnie włączane automatycznie przez SCRAM, aby zapewnić bezpieczny system po wyjęciu z pudełka.

Dzięki zarządzaniu kluczami szyfrowania możesz wprowadzić własne klucze szyfrowania do dedykowanych klastrów, aby uzyskać dodatkową warstwę szyfrowania plików bazy danych, w tym migawek kopii zapasowych.

Audyt w MongoDB Atlas

Szczegółowe audyty baz danych odpowiadają na szczegółowe pytania dotyczące aktywności systemu w przypadku wdrożeń z wieloma użytkownikami, śledząc wszystkie polecenia w bazie danych. Inspekcja w MongoDB jest dostępna tylko w MongoDB Enterprise. Zdarzenia inspekcji można zapisywać w konsoli, w dzienniku systemowym, w pliku JSON lub w pliku BSON. Opcję audytu konfiguruje się za pomocą kwalifikatora –auditDestination. Na przykład, aby wysłać zdarzenia audytu jako zdarzenia JSON do dziennika systemowego...

mongod --dbpath data/db --auditDestination syslog

MongoDB utrzymuje scentralizowany system zarządzania logami w celu gromadzenia, przechowywania i analizy danych z logów w środowiskach produkcyjnych. Te informacje mogą służyć do monitorowania kondycji, rozwiązywania problemów i do celów bezpieczeństwa. Alerty są konfigurowane w systemie w celu powiadamiania SRE o wszelkich problemach operacyjnych.

Integracja MongoDB Atlas LDAP

Uwierzytelnianiem i autoryzacją użytkowników w klastrach MongoDB Atlas można zarządzać za pośrednictwem serwera LDAP (Lightweight Directory Access Protocol) klienta przez TLS. Pojedyncza konfiguracja LDAP dotyczy wszystkich klastrów baz danych w ramach projektu Atlas. Serwery LDAP służą do uproszczenia kontroli dostępu i bardziej szczegółowego zarządzania uprawnieniami.

Dla klientów korzystających z serwera LDAP w wirtualnej prywatnej chmurze AWS (VPC) zalecane jest połączenie równorzędne między tym środowiskiem a VPC zawierającym ich bazy danych Atlas.

Ciągłość biznesowa MongoDB i odzyskiwanie po awarii

MongoDB Atlas tworzy i konfiguruje dedykowane klastry w infrastrukturze dostarczanej przez AWS, Azure i/lub Google GCP. Dostępność danych jest uzależniona od procesów planów ciągłości działania (BCP) i odzyskiwania po awarii (DR) usług dostawcy infrastruktury. Dostawcy usług infrastrukturalnych MongoDB Atlas posiadają szereg certyfikatów i raportów z audytów dotyczących tych kontroli.

Kopie zapasowe bazy danych w Atlasie MongoDB

MongoDB Atlas tworzy kopie zapasowe danych, zwykle tylko kilka sekund za systemem operacyjnym. MongoDB Atlas zapewnia ciągłe tworzenie kopii zapasowych zestawów replik, spójne migawki klastrów podzielonych na fragmenty w całym klastrze oraz odzyskiwanie do określonego momentu. Ta w pełni zarządzana usługa tworzenia kopii zapasowych wykorzystuje Amazon S3 w regionie najbliższym wdrożenia bazy danych klienta.

Dane kopii zapasowej są chronione przy użyciu szyfrowania po stronie serwera. Amazon S3 szyfruje kopie zapasowe danych na poziomie obiektu, zapisując je na dyskach w swoich centrach danych i odszyfrowując je podczas przywracania. Wszystkie klucze są w pełni zarządzane przez AWS.

Klastry Atlas wdrożone w Amazon Web Services i Microsoft Azure mogą korzystać z migawek dostawców chmury, które wykorzystują natywne możliwości migawek bazowego dostawcy chmury. Kopie zapasowe są przechowywane w tym samym regionie chmury, co odpowiedni klaster. W przypadku klastrów obejmujących wiele regionów migawki są przechowywane w preferowanym regionie klastra.

Atlas oferuje następujące metody tworzenia kopii zapasowych danych...

Ciągłe kopie zapasowe bazy danych

Ciągłe kopie zapasowe są dostępne w klastrach M10+ i wersjach niższych niż wersja serwera 4.2. Jest to stara metoda wykonywania kopii zapasowych MongoDB. Atlas używa przyrostowych migawek do ciągłego tworzenia kopii zapasowych danych. Migawki ciągłych kopii zapasowych są zwykle o kilka sekund za systemem operacyjnym. Atlas samodzielnie zapewnia tworzenie kopii zapasowych zestawów replik w określonym czasie oraz spójne, obejmujące cały klaster migawki klastrów podzielonych na fragmenty, do czego używa S3.

Pełna kopia migawek

Atlas wykorzystuje natywne możliwości tworzenia migawek Twojego dostawcy chmury, aby obsługiwać migawki z pełną kopią i zlokalizowane przechowywanie migawek.

MongoDB Atlas Data Lake

Korzystanie z Atlas Data Lake do pozyskiwania danych S3 do klastrów Atlas umożliwia szybkie wyszukiwanie danych przechowywanych w zasobnikach AWS S3 za pomocą Mongo Shell, MongoDB Compass i dowolnego sterownika MongoDB.

Gdy utworzysz Data Lake, przyznasz Atlasowi dostęp tylko do odczytu do zasobników S3 na Twoim koncie AWS i utworzysz plik konfiguracji danych, który mapuje dane z zasobników S3 na Twoje bazy danych i kolekcje MongoDB. Atlas obsługuje używanie dowolnego klastra M10+, w tym klastrów globalnych, do łączenia się z Data Lakes w tym samym czasie.

W chwili pisania tego bloga obsługiwane są następujące formaty.

  • Avro
  • Parkiet
  • JSON
  • JSON/Gzip
  • BSON
  • CSV (wymaga wiersza nagłówka)
  • TSV (wymaga wiersza nagłówka)

Wnioski

To wszystko na razie, mam nadzieję, że podobał Ci się mój dwuczęściowy przegląd Atlasu MongoDB. Pamiętaj, że ClusterControl zapewnia również kompleksowe zarządzanie klastrami MongoDB i jest świetną, tańszą alternatywą dla MongoDB Atlas, którą można również wdrożyć w chmurze.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $tydzień

  2. MongooseError — Przekroczono limit czasu buforowania operacji `users.findOne()` po 10000 ms

  3. Jak zmienić typ pola?

  4. $project:Czy można uzyskać dostęp do właściwości wyniku wyrażenia tylko w jednym etapie?

  5. MongoDB - Utwórz związek