W zeszłym tygodniu jeden z moich klientów poprosił o zalecenia dotyczące architektury, aby bezpiecznie wdrażać produkcyjne instancje MongoDB na Amazon EC2 AWS. To skłoniło mnie do zastanowienia się nad tematem i ten wpis na blogu jest wynikiem. Zbyt wiele firm udostępnia swoje produkcyjne bazy danych MongoDB w Internecie, gdy istnieją lepsze opcje. Zasada nr 1 bezpieczeństwa polega na ograniczeniu fizycznego dostępu do serwerów baz danych. Nawet jeśli twoje dane uwierzytelniające zostaną naruszone, znacznie zmniejsza to wpływ, gdy atakujący nie może uzyskać dostępu do twoich serwerów.
Zanim zagłębimy się w szczegóły, cofnijmy się trochę i przypomnijmy, jak pracownicy IT używali do wdrażania baz danych w świecie sprzed Amazon AWS. Pamiętam kilka różnych konfiguracji:
1. Konfiguracja podwójnej zapory DMZ (strefa zdemilitaryzowana)
W tej konfiguracji serwery warstwy przedniej i warstwy środkowej są wdrażane w strefie DMZ, a serwery baz danych znajdują się za drugą zaporą ogniową. Przednia zapora umożliwia połączenia na portach sieciowych, a tylna zapora zezwala tylko na połączenia na portach bazy danych.
2. VLAN — mniej popularny niż podwójna zapora DMZ
Serwery bazy danych i serwery frontonu znajdują się w osobnych sieciach VLAN. W połączeniu między dwoma sieciami VLAN dozwolone są tylko porty bazy danych.
Technicznie od tego czasu niewiele się zmieniło. Jednak techniki są teraz inne. Nie mówisz już o strefach DMZ i firewallach, ale mówisz o VPC i grupach bezpieczeństwa. Jeśli jesteś większym przedsiębiorstwem z personelem IT, zdecydowanie zainteresowałbym się Amazon VPC. Daje ci dużą kontrolę nad siecią warstwy 3 i możesz umieścić swoje bazy danych w prywatnej podsieci i nie udostępniać ich w Internecie. To jednak znacznie dłuższy temat na inny wpis na blogu. Jeśli masz już skonfigurowane VPC i chcesz skonfigurować MongoDB w VPC, oto mój post na blogu, który przeprowadzi Cię przez kolejne kroki – Wdrażanie MongoDB na Amazon VPC.
W pozostałej części tego postu skoncentruję się na EC2-classic.
3 kroki do skonfigurowania strefy DMZ z podwójną zaporą sieciową w AWS
1. Utwórz grupę zabezpieczeń dla serwerów MongoDB
Grupa zabezpieczeń może obejmować cały region — więc nawet jeśli masz zestaw replik, możesz rozmieścić replikę w strefach dostępności w regionie i nadal mieć ją w tej samej grupie zabezpieczeń . Utwórz grupę zabezpieczeń dla serwerów MongoDB i dodaj wszystkie swoje serwery Mongo tylko do tej grupy zabezpieczeń.
2. Utwórz grupę zabezpieczeń dla serwerów średniego/pierwszego poziomu
Utwórz dodatkową grupę bezpieczeństwa dla serwerów MongoDB średniej i/lub przedniej warstwy.
3. Skonfiguruj dostęp do grupy zabezpieczeń MongoDB
Skonfiguruj grupę zabezpieczeń MongoDB, aby zezwalać na dostęp do serwerów warstwy przedniej tylko na portach MongoDB. Skonfiguruj grupę zabezpieczeń frontonu tak, aby otwierała porty internetowe na internet.
Skonfiguruj DMZ z podwójną zaporą sieciową w AWS za pośrednictwem ScaleGrid
1. Utwórz grupę bezpieczeństwa w AWS
Zaloguj się do konsoli Amazon i utwórz grupę zabezpieczeń dla serwerów średniego/frontowego poziomu. Nazwijmy grupę bezpieczeństwa „AppServerSG”. Skonfiguruj tę grupę zabezpieczeń, aby w razie potrzeby otworzyć port http/https. Umieść serwery średniej i pierwszej warstwy w tej grupie bezpieczeństwa.
2. Utwórz profil ScaleGrid AWS Cloud
Zaloguj się do konsoli ScaleGrid i kliknij kartę Pula maszyn. Utwórz własną niestandardową pulę maszyn, aby móc wdrażać instancje mongo i zarządzać nimi na własnym koncie AWS. W zakładce Pula maszyn kliknij przycisk Utwórz. Wprowadź klucz i tajny klucz Amazon API i naciśnij Dalej:
3. Wybierz swój region AWS dla MongoDB
Wybierz region AWS do wdrożenia MongoDB:
4. Skonfiguruj swoją politykę dostępu
To jest główny krok w konfiguracji zabezpieczeń. Wybierz opcję, aby zezwolić tylko komputerom z określonej grupy zabezpieczeń na dostęp do Twoich serwerów MongoDB. Następnie wybierz grupy zabezpieczeń, do których chcesz przyznać dostęp. Wprowadź nazwę puli maszynowej, a następnie kliknij Dalej:
5. Utwórz swój klaster MongoDB
Powrót do strony wdrożeń MongoDB w konsoli głównej. Kliknij „Utwórz”, aby utworzyć nowy klaster MongoDB. W wyborze puli maszynowej wybierz właśnie utworzoną pulę maszynową i utwórz klaster.
To tylko jedna z technik zabezpieczania wdrożenia MongoDB w AWS. Jeśli masz jakieś inne sugestie, skorzystaj z sekcji komentarzy, aby przekazać swoją opinię. Aby uzyskać bardziej szczegółowe zasady bezpieczeństwa, zapoznaj się z zasadami bezpieczeństwa 10gen. Jak zawsze, jeśli masz jakieś pytania, napisz do nas na adres [email protected].