MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Съвети за дистанционно управление на MongoDB

Работата от разстояние поради пандемията Covid-19 означава увеличаване на значението на изолираните инфраструктури; по-конкретно такива, които могат да бъдат достъпни само чрез вътрешна мрежа, но по начин, по който упълномощени хора от външния свят могат да имат достъп до системата по всяко време и навсякъде.

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

Защита на MongoDB

Преди да осъществите отдалечен достъп до базата данни MongoDB, трябва да извършите „втвърдяване“ на средата. Задайте следното от страна на инфраструктурата:

Активиране на удостоверяването на MongoDB 

Тази функция е задължителна за активиране, независимо дали искаме да получим достъп до базата данни MongoDB от вътрешната мрежа или от външна мрежа. Преди да активирате упълномощаването, първо трябва да създадете потребител с администратор в MongoDB. Можете да изпълните командата по-долу, за да създадете потребител на администратор във вашия един от сървърите на mongoDB:

$ mongo

> use admin

> db.createUser(

      {

          user: "admin",

          pwd: "youdontknowmyp4ssw0rd",

          roles: [ "root" ]

      }

  );

Командата по-горе ще създаде нов потребител, наречен администратор, с root привилегии. Можете да активирате функцията MongoDB Auth, като отворите файла /etc/mongod.conf и след това добавите следния ред:

  security:

   authorization: 'enabled'

Не забравяйте да рестартирате услугата си mongoDB, за да приложите промените. Горната команда ще ограничи достъпа до базата данни, само този, който има идентификационни данни за достъп, който отговаря на условията за влизане.

Настройка на роли и привилегии

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

Уверете се, че имате списък с потребители, които трябва да имат достъп до базата данни и разбирате нуждите и отговорностите на всеки отделен човек. Създайте роли и задайте привилегиите на тези създадени роли. След това можете да присвоите на своя потребител роля въз основа на отговорностите.

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

Конфигуриране на SSL/TLS връзка

MongoDB поддържа SSL/TLS връзки за защита на данни при пренос. За да приложите това, трябва да генерирате свой собствен SSL ключ, можете да го генерирате с помощта на openssl. За да активирате поддръжката на SSL / TLS, можете да редактирате файла /etc/mongod.conf и да добавите следния параметър:

  net:

      tls:

         mode: requireTLS

         certificateKeyFile: /etc/mongo/ssl/mongodb.pem

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

За производствена употреба трябва да използвате валидни сертификати, генерирани и подписани от един сертифициращ орган. Вие или вашата организация можете да генерирате и поддържате сертификати като независим сертифициращ орган или да използвате сертификати, генерирани от доставчици на TLS/SSL трети страни. Предотвратете използването на самоподписан сертификат, освен ако не е надеждна мрежа.

Ограничаване на порта на базата данни

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

Осигуряване на MongoDB връзката

Отдалечената връзка чрез публичен интернет представлява риск от предаване на данни от локални потребители към сървъра на базата данни и обратно. Атакуващите могат да прекъснат взаимовръзката, която в този случай е известна като MITM (Min-in-The-Middle) атака. Защитата на връзката е много необходима, когато управляваме/администрираме базата данни от разстояние, някои неща, които можем да приложим, за да защитим нашия достъп до базата данни, са както следва:

Достъп до частна мрежа

VPN (виртуална частна мрежа) е едно от основните неща, когато искаме да получим защитен достъп до нашата инфраструктура отвън. VPN е частна мрежа, която използва обществени мрежи за достъп до отдалечените сайтове. Настройката на VPN изисква хардуер, който трябва да бъде подготвен от страна на частната мрежа, освен това клиентът се нуждае и от VPN софтуер, който поддържа достъп до частната мрежа.

Освен използването на VPN, друг начин за достъп до MongoDB сървъра е чрез пренасочване на портове на база данни чрез SSH или по-известен като SSH тунелиране.

Използвайте SSL / TLS от клиента към сървъра на базата данни

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

Активиране на наблюдението на базата данни

От съществено значение е да се даде възможност на услугата за наблюдение да разбере текущото състояние на базите данни. Сървърът за наблюдение може да бъде инсталиран под обществен домейн, който има активиран SSL / TLS, така че автоматичният достъп до браузъра може да използва HTTPs.

Заключение

Наистина е забавно да работите от вкъщи, можете да общувате с децата си и в същото време да наблюдавате своята база данни. Трябва да следвате указанията по-горе, за да сте сигурни, че няма да бъдете атакувани или откраднати данни при отдалечен достъп до вашата база данни.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb $where заявката винаги е вярна с nodejs

  2. Множество препратки към схеми в един масив от схеми - mongoose

  3. Как да активирате регистриране за Mongoose и драйвера MongoDB Node.JS

  4. MongoDB dropIndex()

  5. Качвайте и извличайте файлове с помощта на MongoDB и Spring Boot