MongoDB udostępnia szereg konstrukcji poprawiających bezpieczeństwo danych. Bezpieczeństwo Twoich danych w MongoDB jest najważniejsze – dlatego ważne jest, aby wykorzystać te konstrukcje, aby zmniejszyć powierzchnię. Oto 10 wskazówek, których możesz użyć, aby poprawić bezpieczeństwo swoich serwerów MongoDB lokalnie i w chmurze.
-
Włącz uwierzytelnianie
Nawet jeśli wdrożyłeś swoje serwery MongoDB w zaufanej sieci, włączenie uwierzytelniania jest dobrą praktyką w zakresie bezpieczeństwa. Zapewnia „dogłębną obronę”, jeśli Twoja sieć zostanie naruszona. Edytuj plik konfiguracyjny MongoDB, aby włączyć uwierzytelnianie:
auth = true
-
Nie udostępniaj swojej produkcyjnej bazy danych w Internecie
Ograniczenie fizycznego dostępu do bazy danych jest ważnym aspektem bezpieczeństwa. Jeśli nie jest to konieczne, nie udostępniaj swojej produkcyjnej bazy danych w Internecie. W przypadku jakiegokolwiek włamania, jeśli atakujący nie może fizycznie połączyć się z serwerem MongoDB, Twoje dane są o wiele bezpieczniejsze. Jeśli korzystasz z AWS, możesz umieścić swoje bazy danych w podsieci wirtualnej chmury prywatnej (VPC). Przeczytaj wpis na blogu Wdrażanie MongoDB w VPC, aby uzyskać więcej informacji.
-
Użyj zapór sieciowych
Użyj zapór, aby ograniczyć inne podmioty, które mogą łączyć się z serwerem MongoDB. Najlepszą praktyką jest zezwolenie tylko serwerom aplikacji na dostęp do bazy danych. Jeśli korzystasz z serwera AWS, użyj „Grup bezpieczeństwa”, aby ograniczyć dostęp. Jeśli jesteś hostowany u dostawcy, który nie obsługuje konstrukcji zapory, możesz łatwo skonfigurować go samodzielnie za pomocą „iptables”. Zapoznaj się z dokumentacją MongoDB, aby skonfigurować iptables dla swojego scenariusza.
-
Użyj plików kluczy, aby skonfigurować zestaw replik
Określ plik klucza współdzielonego, aby umożliwić komunikację między instancjami MongoDB w zestawie replik. Aby to włączyć, dodaj parametr keyfile do pliku konfiguracyjnego, jak opisano poniżej. Zawartość pliku musi być taka sama na wszystkich komputerach:
keyFile = /srv/mongodb/keyfile
-
Wyłącz interfejs stanu HTTP
MongoDB domyślnie udostępnia interfejs http działający na porcie 28017, który udostępnia stronę stanu „główna”. Ten interfejs nie jest zalecany do użytku produkcyjnego i najlepiej jest go wyłączyć. Użyj ustawienia konfiguracyjnego „nohttpinterface”, aby wyłączyć interfejs http:
nohttpinterface = true
-
Wyłącz interfejs REST
Interfejs MongoDB REST nie jest zalecany do produkcji. Nie obsługuje żadnego uwierzytelniania i jest domyślnie wyłączone. Jeśli włączyłeś ją za pomocą opcji konfiguracji „odpoczynek”, powinieneś ją wyłączyć dla systemów produkcyjnych.
rest = false
-
Skonfiguruj bind_ip
Jeśli twój system ma wiele interfejsów sieciowych, możesz użyć opcji „bind_ip”, aby ograniczyć serwer MongoDB do nasłuchiwania tylko na odpowiednich interfejsach. Domyślnie MongoDB połączy się ze wszystkimi interfejsami:
bind_ip = 10.10.0.25,10.10.0.26
-
Włącz SSL
Jeśli nie korzystasz z SSL, Twoje dane są przesyłane między klientem Mongo a serwerem Mongo w postaci niezaszyfrowanej i są podatne na podsłuchiwanie, manipulacje i ataki typu „człowiek w środku”. Jest to szczególnie ważne, jeśli łączysz się z serwerem MongoDB przez niezabezpieczone sieci, takie jak Internet.
-
Autoryzacja oparta na rolach
MongoDB obsługuje uwierzytelnianie oparte na rolach, aby zapewnić precyzyjną kontrolę nad działaniami, które może wykonać każdy użytkownik. Użyj konstrukcji opartych na rolach, aby ograniczyć dostęp, zamiast nadawać wszystkim użytkownikom uprawnienia administratora. Więcej informacji można znaleźć w dokumentacji ról.
-
Korporacyjne MongoDB i Kerberos
Enterprise MongoDB integruje się z Kerberos w celu uwierzytelniania. Więcej informacji można znaleźć w dokumentacji MongoDB. Systemy nazwy użytkownika/hasła są z natury niepewne – jeśli to możliwe, używaj uwierzytelniania opartego na krawężniku.
W ScaleGrid staramy się domyślnie wspierać konfiguracje zabezpieczeń zgodne z najlepszymi praktykami we wszystkich naszych wdrożeniach. Umożliwiamy Ci korzystanie z SSL, a także nie udostępnianie Twojej bazy danych w Internecie. Jeśli masz jakieś pytania, napisz do nas na adres [email protected].