MongoDB Безпека, моніторинг і резервне копіювання (Mongodump)
⚡ Розумний підсумок
MongoDB Безпека, моніторинг та резервне копіювання – це основні концепції адміністрування баз даних, які забезпечують безпеку, доступність та можливість відновлення даних. Цей ресурс охоплює найкращі практики безпеки, резервні копії Mongodump, інструменти моніторингу, поради щодо індексування, механізми автентифікації, сертифікати x.509 та налаштування. MongoDB з автентифікацією Kerberos.

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

