MongoDB Сигурност, наблюдение и архивиране (Mongodump)

Едно от ключовите понятия в MongoDB е управлението на бази данни. Важни аспекти като сигурност, архивиране, достъп до бази данни са важни понятия, когато става въпрос за администриране на бази данни.

MongoDB Преглед на сигурността

MongoDB има способността да дефинира механизми за сигурност към базите данни. По подразбиране човек не би искал всеки да има отворен достъп до всяка база данни в MongoDB, оттук и изискването за наличие на някакъв защитен механизъм MongoDB е важно.

Следват най-добрите практики при внедряване на защита в бази данни

  1. Разрешаване на контрол на достъпа – Създайте потребители, така че всички приложения и потребители да бъдат принудени да имат някакъв вид механизъм за удостоверяване при достъп до бази данни на MongoDB.
  2. Конфигурирайте контрол на достъпа, базиран на роли – Понякога може да има логично групиране на разрешения, които може да са необходими, които могат да бъдат групирани в роли. След това потребителите могат да бъдат присвоени на тези роли.
  3. Опитайте да конфигурирате MongoDB да използвате някакъв вид протокол за криптиране като TLS или SSL. Тези протоколи могат да се използват за криптиране на трафика, който протича между клиента и mongo DB средата.
  4. Конфигуриране на одит – Администраторите обикновено трябва да знаят кой какво прави, което помага при анализирането на проблемите по-късно. Най-добрият начин е да активирате одита MongoDB.
  5. Стартирайте екземпляр на MongDB сървър с отделен потребителски идентификатор, който има достъп до необходимите ресурси в сървърната среда.

Процедури за архивиране на Mongodb – mongodump

Когато работите с MongDB, е важно винаги да се гарантира, че е налице процедура за архивиране, в случай че данните вътре MongoDB се повреди по някаква причина.

По-долу са наличните механизми за архивиране отвътре MongoDB

  1. Архивиране чрез копиране на базови файлове с данни – Това е може би най-лесният механизъм, всичко, което трябва да се направи, е да се копират файловете с данни, на които MongoDB се намира и го копирайте на друго място, което в идеалния случай трябва да бъде друг сървър.
  2. Архивирайте база данни с mongodump – Инструментът mongodump чете данни от a MongoDB база данни и създава BSON файлове с висока прецизност. Това, което трябва да се вземе под внимание е, че ако наборът от данни е голям по обем, тогава mongodump може да изисква много ресурси, така че за смекчаване на този проблем помощната програма трябва да се изпълнява на вторичен сървър.
  3. MongoDB Архивиране на Cloud Manager - MongoDB Cloud Manager непрекъснато архивира MongoDB набори реплики и разделени клъстери чрез четене на oplog данните от MongoDB среда. MongoDB Cloud Manager може да създаде моментно възстановяване чрез съхраняване на oplog данни, така че да може да създаде възстановяване по всяко време за конкретен набор от реплики или фрагментиран клъстер.

Мониторинг на Mongodb

Мониторингът е една от най-критичните административни дейности в MongoDB. Това е така, защото можете да бъдете по-проактивни, като наблюдавате средата за възможни проблеми, които могат да възникнат.

По-долу са някои от примерите за прилагане на мониторинг

  1. монгостат ще ви каже колко време операции с базата данни като вмъкване, заявка, актуализиране, изтриване и т.н. действително се случват на сървъра. Това ще даде добра представа колко натоварване поема сървърът и ще покаже дали имате нужда от допълнителни ресурси на сървъра или може би от допълнителни сървъри за разпределяне на натоварването.
  2. mongotop проследява и отчита текущата дейност по четене и запис на a MongoDB екземпляр и отчита тези статистики на базата на колекция.
  3. MongoDB предоставя уеб интерфейс, който излага диагностична и мониторингова информация в проста уеб страница. Човек може да прегледа URL адреса по-долу на вашия локален сървър, за да отвори помощната програма за уеб администриране http://localhost:28017
  4. Командата serverStatus или db.serverStatus() от обвивката връща преглед на състоянието на базата данни с подробности за използването на диска, използването на паметта, установените връзки към MongoDB среда и др.

MongoDB Съображения за индексиране и производителност

  1. Индексите са много важни във всяка база данни и могат да се използват за подобряване на ефективността на заявките за търсене в MongoDB. Ако непрекъснато извършвате търсене във вашия документ, тогава е по-добре да добавите индекси към полетата на документа, които се използват в критериите за търсене.
  2. Опитайте се винаги да ограничавате броя на върнатите резултати от заявката. Да предположим, че имате 2 имена на полета в документ, но искате да видите само 2 полета от документа. След това се уверете, че вашата заявка цели да покаже само 2 полета, които изисквате, а не всички полета.
  3. Ако искате да видите определени стойности на полета, използвайте само тези полета в заявката. Не правете заявки за всички полета в колекцията, ако не са задължителни.

Определен MongoDB с Kerberos удостоверяване

Докато упълномощаването разглежда осигуряването на достъп на клиента до системата, удостоверяването проверява какъв тип достъп има клиентът в MongoDB, след като бъдат оторизирани в системата.

Има различни механизми за удостоверяване, по-долу са само някои от тях.

MongoDB Удостоверяване с помощта на x.509 сертификати

Използвайте x.509 сертификати за удостоверяване на клиента – сертификатът е основно доверен подпис между клиента и MongoDB Server.

Така че вместо въвеждане на потребителско име и парола за свързване към сървъра, се предава сертификат между клиента и MongoDB сървър. Клиентът основно ще има клиентски сертификат, който ще бъде предаден на сървъра за удостоверяване в сървъра. Всеки клиентски сертификат отговаря на единичен MongoDB потребител. Така че всеки потребител от MongoDB трябва да имат собствен сертификат, за да бъдат удостоверени за MongoDB сървър.

За да се гарантира, че това работи, трябва да се следват следните стъпки;

  1. Валиден сертификат трябва да бъде закупен от валиден орган на трета страна и да бъде инсталиран на MongoDB Server.
  2. Сертификатът на клиента трябва да има следните свойства (Единствен сертифициращ орган (CA) трябва да издава сертификатите както за клиента, така и за сървъра. Сертификатите на клиента трябва да съдържат следните полета – keyUsage и extendedKeyUsage.
  3. Всеки потребител, който се свързва към MongDB сървъра, трябва да има отделен сертификат.

Как да конфигурирате MongoDB с Kerberos удостоверяване

По-долу са стъпките за конфигуриране MongoDB с включено Kerberos удостоверяване Windows:

Стъпка 1) Определен MongoDB с включено Kerberos удостоверяване Windows
Kerberos е механизъм за удостоверяване, използван в големи среди клиент-сървър.

Това е много сигурен механизъм, при който паролата е разрешена само ако е криптирана. добре, MongoDB има възможност за удостоверяване срещу съществуваща система, базирана на Kerberos.

Стъпка 2) сървърен процес mongod.exe
След това стартирайте процеса на сървъра mongod.exe.

Стъпка 3) mongo.exe клиент процес и се свържете
След това стартирайте клиентския процес mongo.exe и се свържете с MongoDB сървър.

Стъпка 4) Добавяне на потребител MongoDB
Което всъщност е основно име на Kerberos към $external базата данни. $external базата данни е специална база данни, която разказва MongoDB за удостоверяване на този потребител срещу система Kerberos вместо неговата собствена вътрешна система.

Определен MongoDB с Kerberos удостоверяване

use $external
db.createUser(
{
	user: "user1@example.NET",

	roles:[
	{
		role: "read" , db:"Marketing"}
		
	}
		  ]
}

Стъпка 5) Започнете да използвате командата
Стартирайте mongod.exe с поддръжка на Kerberos, като използвате следната команда

mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI

И тогава вече можете да се свържете с потребителя на Kerberos и Kerberos удостоверяване към базата данни.

Oбобщение

  • Много е важно да се приложи сигурност в базите данни, за да се гарантира, че данните в базата данни се пазят безопасно.
  • Потребителите могат да бъдат създадени в базата данни с командата createUser. Конкретни роли могат да бъдат присвоени на потребителите, за да им се дадат конкретни разрешения за самата база данни.
  • Могат да се добавят администратори за всички бази данни само за конкретни бази данни. Това се постига чрез даване на ролята userAdmin или userAdminAnyDatabase.
  • Винаги архивирайте вашите MongoDB среда, така че в случай на бедствие данните да бъдат лесно възстановими.
  • Винаги наблюдавайте своя MongoDB среда, за да бъдете по-проактивни и да видите проблемите, преди да възникнат.
  • Има различни механизми за удостоверяване за осигуряване на по-добра сигурност в базите данни. Един пример е използването на сертификати за удостоверяване на потребители вместо използване на потребителски имена и пароли.