В първата част на блога „Преглед на MongoDB Atlas“ разгледахме как да започнем с MongoDB Atlas, първоначалната настройка и миграция на съществуващ MongoDB клъстер към MongoDB Atlas. В тази част ще продължим да изследваме няколко елемента за управление, необходими за всяка производствена система на MongoDB, като сигурност и непрекъснатост на бизнеса.
Сигурност на базата данни в MongoDB Atlas
Сигурността винаги е на първо място. Въпреки че е важно за всички бази данни, за MongoDB има специално значение. В средата на 2017 г. интернет беше пълен с новини относно атаки на ransomware, които бяха специално насочени към уязвимости в системите MongoDB. Хакери отвличаха екземпляри на MongoDB и искаха откуп в замяна на връщането на съхранените данни. Имаше предупреждения. Преди тези атаки на ransomware блогъри и експерти писаха за това колко производствени инстанции са били установени като уязвими. Това предизвика оживена дискусия около сигурността на MongoDB за дълго време след това.
Сега сме в 2019 г. и MongoDB става все по-популярен. Новата основна версия (4.0) беше пусната наскоро и видяхме повишена стабилност в MongoDB Atlas. Но какво е направено за повишаване на сигурността на NoSQL бази данни в облака.
Рансомуерът и постоянната преса трябва да са оказали влияние върху MongoDB, тъй като можем ясно да видим, че сигурността сега е в центъра на екосистемата на MongoDB. MongoDB Atlas не е изключение, тъй като сега се предлага с вградени контроли за сигурност за нуждите от обработка на производствени данни и много функции за корпоративна сигурност от кутията. Подходът по подразбиране (който причини уязвимостта) от по-старата версия е изчезнал и базата данни вече е защитена по подразбиране (мрежа, оторизация на crud и т.н.). Той също така идва с функции, които бихте очаквали да имате в модерна производствена среда (одит, временен потребителски достъп и т.н.).
Но това не спира дотук. Тъй като Atlas е онлайн решение, вече можете да използвате интеграции с трети страни като LDAP удостоверяване или модерни MongoDB интернет услуги като MongoDB диаграми. MongoDB Atlas е изграден върху Amazon WebServices (AWS), Microsoft Azure и Google Cloud Platform (GCP), които също предлагат собствени мерки за висока сигурност. Тази страхотна комбинация гарантира, че стандартите за сигурност на MongoDB Atlas са това, което бихме очаквали. Нека да разгледаме набързо някои от тези ключови функции.
MongoDB Atlas &Network Security
MongoDB Atlas изгражда клъстери върху съществуващата ви облачна инфраструктура. Когато човек избере AWS, клиентските данни се съхраняват в системите MongoDB Atlas. Тези системи са специализирани, AWS EC2 виртуални сървъри с един наемател, които са създадени единствено за клиент на Atlas. Центровете за данни на Amazon AWS са съвместими с няколко стандарта за физическа сигурност и информационна сигурност, но тъй като се нуждаем от отворена мрежа, това може да предизвика опасения.
Специализираните клъстери на MongoDB Atlas се разполагат във виртуален частен облак (VPC) със специални защитни стени. Достъпът трябва да бъде предоставен чрез IP бял списък или чрез VPC Peering. По подразбиране целият достъп е деактивиран.
MongoDB изисква следните мрежови портове за Atlas...
- 27016 за фрагменти
- 27015 за BI конектора
- 27017 за сървър
- Ако LDAP е активиран, MongoDB изисква LDAP мрежа 636 от страна на клиента, отворена за 0.0.0.0 (цял интернет) трафик.
Мрежовите портове не могат да се променят и TLS не може да бъде деактивиран. Достъпът може също да бъде изолиран чрез IP бял списък.
Освен това можете да изберете достъп до MongoDB Atlas чрез хостове на Bastion. Хостовете на Bastion са конфигурирани да изискват SSH ключове (не пароли). Те също така изискват многофакторно удостоверяване и потребителите трябва допълнително да бъдат одобрени от висшето ръководство за бекенд достъп.
Управление на достъп, базирано на роли в MongoDB Atlas
Можете да конфигурирате разширени, базирани на роли правила за достъп, за да контролирате кои потребители (и екипи) имат достъп, манипулират и/или изтриват данни във вашите бази данни. По подразбиране няма създадени потребители, така че ще бъдете подканени да създадете такъв.
MongoDB Atlas позволява на администраторите да дефинират разрешения за потребител или приложение, както и какви данни могат да бъдат достъпни при запитване на MongoDB. MongoDB Atlas предоставя възможност за предоставяне на потребители с роли, специфични за даден проект или база данни, което прави възможно да се реализира разделение на задълженията между различни субекти, които осъществяват достъп и управляват данните. Процесът е прост и напълно интерактивен.
За да създадете нов потребител, отидете на раздела Сигурност от лявата страна и изберете между потребители на MongoDB и роли на MongoDB.
Роли в MongoDB
Криптиране на база данни от край до край в MongoDB Atlas
Всички предавани данни на MongoDB Atlas са криптирани с помощта на сигурност на транспортния слой (TLS). Имате гъвкавостта да конфигурирате минималната версия на протокола TLS. Шифроването за данни в покой е автоматизирано с помощта на криптирани обеми за съхранение.
Можете също да интегрирате съществуващите си практики и процеси за сигурност с MongoDB Atlas, за да осигурите допълнителен контрол върху това как защитавате вашата среда.
За самия MongoDB Atlas Cluster, удостоверяването се активира автоматично по подразбиране чрез SCRAM, за да се гарантира сигурна система от кутията.
С управлението на ключовете за криптиране можете да донесете свои собствени ключове за криптиране към вашите специални клъстери за допълнителен слой криптиране на файловете на базата данни, включително резервни моментни снимки.
Одит в MongoDB Atlas
Подробният одит на база данни отговаря на подробни въпроси относно системната активност за внедряване с множество потребители, като проследява всички команди спрямо базата данни. Одитът в MongoDB е наличен само в MongoDB Enterprise. Можете да пишете събития за одит в конзолата, в системния журнал, в JSON файл или в BSON файл. Вие конфигурирате опцията за одит с помощта на квалификатора –auditDestination. Например, за да изпратите одитни събития като JSON събития към системния журнал, използвайте...
mongod --dbpath data/db --auditDestination syslog
MongoDB поддържа централизирана система за управление на журнали за събиране, съхранение и анализ на регистрационни данни за производствени среди. Тази информация може да се използва за наблюдение на здравето, отстраняване на неизправности и за целите на сигурността. Сигналите се конфигурират в системата, за да се уведомят SRE за всякакви оперативни проблеми.
Интеграция на MongoDB Atlas LDAP
Удостоверяването и упълномощаването на потребителя срещу MongoDB Atlas клъстери могат да се управляват чрез LDAP сървър на клиента през TLS. Единична LDAP конфигурация се прилага за всички клъстери на база данни в рамките на проект на Atlas. LDAP сървърите се използват за опростяване на контрола на достъп и за по-подробно управление на разрешенията.
За клиенти, работещи на своя LDAP сървър във виртуален частен облак (VPC) на AWS, се препоръчва пирингова връзка между тази среда и VPC, съдържащ техните бази данни Atlas.
Непрекъсваемост на бизнеса и възстановяване след бедствие на MongoDB
MongoDB Atlas създава и конфигурира специализирани клъстери в инфраструктура, предоставена от AWS, Azure и/или Google GCP. Наличността на данни зависи от процесите за планове за непрекъснатост на бизнеса (BCP) и за възстановяване при бедствия (DR) на доставчика на инфраструктура. Доставчиците на инфраструктурни услуги на MongoDB Atlas притежават редица сертификати и одитни доклади за тези контроли.
Архивиране на бази данни в MongoDB Atlas
MongoDB Atlas архивира данни, обикновено само секунди след операционна система. MongoDB Atlas осигурява непрекъснато архивиране на набори от реплики, последователни моментни снимки в целия клъстер на разчленени клъстери и възстановяване в момента. Тази напълно управлявана услуга за архивиране използва Amazon S3 в региона, най-близо до разполагането на базата данни на клиента.
Архивните данни са защитени чрез криптиране от страна на сървъра. Amazon S3 криптира архивираните данни на ниво обект, докато ги записва на дискове в своите центрове за данни и ги декриптира вместо вас, когато ги възстановите. Всички ключове се управляват изцяло от AWS.
Клъстерите Atlas, внедрени в Amazon Web Services и Microsoft Azure, могат да се възползват от моментните снимки на доставчика на облак, които използват възможностите на основния доставчик на моментни снимки, които са в основата на този доставчик. Архивите се съхраняват в същия облачен регион като съответния клъстер. За клъстери с няколко региона, моментните снимки се съхраняват в предпочитания регион на клъстера.
Atlas предлага следните методи за архивиране на вашите данни...
Непрекъснато архивиране на база данни
Непрекъснатото архивиране се предлага в клъстери M10+ и версии, по-ниски от версия на сървъра 4.2. Това е стар метод за извършване на архивиране на MongoDB. Atlas използва инкрементални моментни снимки за непрекъснато архивиране на вашите данни. Непрекъснатите архивни снимки обикновено са само няколко секунди зад операционната система. Atlas самостоятелно осигурява архивиране в даден момент на набори от реплики и последователни, в целия клъстер моментни снимки на разчленени клъстери, за които използва S3.
Моментни снимки с пълно копие
Atlas използва собствените възможности за моментни снимки на вашия доставчик на облак, за да поддържа моментни снимки с пълно копие и локализирано съхранение на моментни снимки.
MongoDB Atlas Data Lake
Използването на Atlas Data Lake за поглъщане на вашите S3 данни в Atlas клъстери ви позволява бързо да заявявате данни, съхранявани във вашите AWS S3 кофи, като използвате Mongo Shell, MongoDB Compass и всеки драйвер MongoDB.
Когато създадете Data Lake, вие ще предоставите на Atlas достъп само за четене до S3 buckets във вашия AWS акаунт и ще създадете файл за конфигурация на данни, който съпоставя данни от вашите S3 кофи във вашите бази данни и колекции на MongoDB. Atlas поддържа използването на всеки M10+ клъстер, включително глобални клъстери, за свързване към езерата на данни в същото.
Към момента на писане на този блог се поддържат следните формати.
- Авро
- Паркет
- JSON
- JSON/Gzipped
- BSON
- CSV (изисква заглавен ред)
- TSV (изисква заглавен ред)
Заключение
Това е всичко засега, надявам се, че сте харесали моя преглед от две части на MongoDB Atlas. Не забравяйте, че ClusterControl също така осигурява управление от край до край на MongoDB клъстери и е страхотна, по-евтина алтернатива на MongoDB Atlas, която също може да бъде разгърната в облака.