MongoDB Безпека, моніторинг і резервне копіювання (Mongodump)
Одне з ключових понять в MongoDB це управління базами даних. Такі важливі аспекти, як безпека, резервне копіювання, доступ до баз даних, є важливими поняттями, коли йдеться про адміністрування баз даних.
MongoDB Огляд безпеки
MongoDB має можливість визначати механізми безпеки для баз даних. За замовчуванням не хочеться, щоб кожен мав відкритий доступ до кожної бази даних MongoDB, отже, вимога щодо наявності певного механізму безпеки MongoDB це важливо.
Нижче наведено найкращі методи впровадження безпеки в базах даних
- Увімкнути контроль доступу – створіть користувачів, щоб усі програми та користувачі мали певний механізм автентифікації під час доступу до баз даних на MongoDB.
- Налаштуйте керування доступом на основі ролей. Інколи може знадобитися логічне групування дозволів, які можуть бути об’єднані в ролі. Потім користувачам можна призначати ці ролі.
- Спробуйте налаштувати MongoDB використовувати якийсь протокол шифрування, наприклад TLS або SSL. Ці протоколи можна використовувати для шифрування трафіку, який проходить між клієнтом і середовищем Mongo DB.
- Налаштувати аудит – зазвичай адміністраторам потрібно знати, хто що робить, що допомагає аналізувати проблеми пізніше. Найкращий спосіб — увімкнути аудит MongoDB.
- Запустіть екземпляр сервера MongDB з окремим ідентифікатором користувача, який має доступ до необхідних ресурсів у середовищі сервера.
Процедури резервного копіювання Mongodb – mongodump
Під час роботи з MongDB важливо завжди забезпечувати наявність процедури резервного копіювання на випадок, якщо дані всередині MongoDB пошкоджується з будь-якої причини.
Нижче наведено механізми резервного копіювання, доступні зсередини MongoDB
- Резервне копіювання базових файлів даних – Це, мабуть, найпростіший механізм, все, що потрібно зробити, це скопіювати файли даних, на які MongoDB знаходиться та скопіюйте його в інше місце, яке в ідеалі має бути іншим сервером.
- Резервне копіювання бази даних за допомогою mongodump – Інструмент mongodump читає дані з a MongoDB базу даних і створює файли BSON високої точності. Що потрібно взяти до уваги, так це те, що якщо набір даних великий за обсягом, то mongodump може бути дуже ресурсомістким, тому, щоб пом’якшити цю проблему, утиліту слід запускати на додатковому сервері.
- MongoDB Резервне копіювання Cloud Manager - MongoDB Cloud Manager постійно створює резервні копії MongoDB набори реплік і сегментовані кластери, зчитуючи дані oplog з MongoDB довкілля. MongoDB Cloud Manager може створити відновлення на певний момент часу, зберігаючи дані oplog, щоб у будь-який момент часу можна було створити відновлення для певного набору реплік або сегментованого кластера.
Моніторинг Mongodb
Моніторинг є однією з найважливіших адміністративних дій у MongoDB. Це пояснюється тим, що ви можете бути більш проактивними, відстежуючи середовище на предмет можливих проблем, які можуть виникнути.
Нижче наведено деякі приклади впровадження моніторингу
- монгостат покаже вам, скільки часу операції бази даних, такі як вставка, запит, оновлення, видалення тощо, фактично відбуваються на сервері. Це дасть гарне уявлення про те, яке навантаження обробляє сервер, і вкаже, чи потрібні вам додаткові ресурси на сервері чи, можливо, додаткові сервери для розподілу навантаження.
- монготоп відстежує та повідомляє поточну активність читання та запису a MongoDB екземпляр, і звітує про цю статистику на основі колекції.
- MongoDB забезпечує веб-інтерфейс, який надає інформацію про діагностику та моніторинг на простій веб-сторінці. Щоб відкрити утиліту веб-адміністрування, можна перейти за вказаною нижче URL-адресою на локальному сервері
http://localhost:28017
- Команда serverStatus або db.serverStatus() з оболонки повертає огляд стану бази даних із детальною інформацією про використання диска, використання пам’яті, встановлені з’єднання з MongoDB середовище тощо
MongoDB Індексування та міркування щодо продуктивності
- Індекси дуже важливі в будь-якій базі даних і можуть використовуватися для підвищення ефективності пошукових запитів MongoDB. Якщо ви постійно виконуєте пошук у своєму документі, краще додати індекси до полів документа, які використовуються в критеріях пошуку.
- Намагайтеся завжди обмежувати кількість отриманих результатів запиту. Припустімо, у вас є 2 назви полів у документі, але ви просто хочете бачити 2 поля з документа. Потім переконайтеся, що ваш запит націлений лише на відображення 2 необхідних полів, а не всіх полів.
- Якщо ви хочете переглянути певні значення полів, використовуйте лише ці поля в запиті. Не запитуйте всі поля в колекції, якщо вони не потрібні.
Конфігурувати MongoDB з автентифікацією Kerberos
Хоча авторизація спрямована на забезпечення доступу клієнта до системи, автентифікація перевіряє, який тип доступу клієнт має в MongoDBпісля авторизації в системі.
Існують різні механізми автентифікації, нижче наведені лише деякі з них.
MongoDB Автентифікація за допомогою сертифікатів x.509
Використовуйте сертифікати x.509 для автентифікації клієнта. Сертифікат – це в основному надійний підпис між клієнтом і MongoDB Сервер.
Тому замість введення імені користувача та пароля для підключення до сервера між клієнтом і сервером передається сертифікат MongoDB Сервер. Клієнт, як правило, матиме сертифікат клієнта, який буде передано на сервер для автентифікації на сервері. Кожен сертифікат клієнта відповідає одному MongoDB користувача. Тож кожен користувач із MongoDB повинен мати власний сертифікат для автентифікації в MongoDB сервера.
Щоб переконатися, що це працює, необхідно виконати наступні кроки;
- Дійсний сертифікат потрібно придбати в дійсного третього органу та встановити його на MongoDB Сервер.
- Сертифікат клієнта повинен мати такі властивості (Один центр сертифікації (CA) повинен видавати сертифікати як для клієнта, так і для сервера. Сертифікати клієнта повинні містити такі поля – keyUsage та extendedKeyUsage.
- Кожен користувач, який підключається до сервера 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 замість його власної внутрішньої системи.
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.
Підсумки
- Дуже важливо запровадити безпеку в базах даних, щоб забезпечити безпеку даних у базі даних.
- Користувачів можна створити в базі даних за допомогою команди createUser. Користувачам можна призначити певні ролі, щоб надати їм певні дозволи на саму базу даних.
- Адміністраторів можна додавати для всіх баз даних лише для певних баз даних. Це досягається наданням ролі userAdmin або userAdminAnyDatabase.
- Завжди створюйте резервні копії MongoDB середовище, щоб у разі будь-якої катастрофи дані можна було легко відновити.
- Завжди стежте за своїм MongoDB середовище, щоб бути більш проактивним і бачити проблеми, перш ніж вони виникнуть.
- Існують різні механізми автентифікації для забезпечення кращої безпеки в базах даних. Одним із прикладів є використання сертифікатів для автентифікації користувачів замість використання імен користувачів і паролів.