MongoDB предоставя редица конструкции за подобряване на сигурността на вашите данни. Сигурността на вашите данни в MongoDB е от първостепенно значение – затова е важно да използвате тези конструкции, за да намалите повърхността си. Ето 10 съвета, които можете да използвате, за да подобрите сигурността на вашите MongoDB сървъри на място и в облака.
-
Активиране на удостоверяването
Дори ако сте разположили вашите MongoDB сървъри в надеждна мрежа, добра практика за сигурност е да активирате удостоверяване. Той ви осигурява „задълбочена защита“, ако мрежата ви е компрометирана. Редактирайте вашия конфигурационен файл на MongoDB, за да активирате auth:
auth = true
-
Не излагайте производствената си база данни в интернет
Ограничаването на физическия достъп до вашата база данни е важен аспект на сигурността. Ако не е необходимо, не излагайте своята производствена база данни в интернет. В случай на компромис, ако нападателят не може физически да се свърже с вашия MongoDB сървър, вашите данни са много по-сигурни. Ако използвате AWS, можете да поставите базите си във виртуална частна облак (VPC) подмрежа. Прочетете публикацията в блога Разгръщане на MongoDB във VPC за повече информация.
-
Използвайте защитни стени
Използвайте защитни стени, за да ограничите кои други обекти могат да се свързват с вашия MongoDB сървър. Най-добрата практика е да разрешите на сървърите на приложения само достъп до базата данни. Ако сте хоствани в AWS, използвайте „Групи за сигурност“, за да ограничите достъпа. Ако сте хостван на доставчик, който не поддържа конструкции на защитна стена, можете лесно да го конфигурирате сами, като използвате „iptables“. Вижте документацията на MongoDB, за да конфигурирате iptables за вашия сценарий.
-
Използвайте ключови файлове, за да настроите набора от реплики
Посочете споделен ключов файл, за да активирате комуникацията между вашите екземпляри на MongoDB в набор от реплика. За да активирате това, добавете параметъра keyfile към конфигурационния файл, както е посочено по-долу. Съдържанието на файла трябва да е еднакво на всички машини:
keyFile = /srv/mongodb/keyfile
-
Деактивирайте интерфейса за състоянието на HTTP
MongoDB по подразбиране предоставя http интерфейс, работещ на порт 28017, който предоставя „начална“ страница за състояние. Този интерфейс не се препоръчва за производствена употреба и е най-добре да бъде деактивиран. Използвайте конфигурационната настройка „nohttpinterface“, за да деактивирате http интерфейса:
nohttpinterface = true
-
Деактивирайте REST интерфейса
Интерфейсът MongoDB REST не се препоръчва за производство. Той не поддържа никакво удостоверяване и е изключен по подразбиране. Ако сте го включили чрез опцията за конфигурация „почивка“, трябва да го изключите за производствени системи.
rest = false
-
Конфигуриране на bind_ip
Ако вашата система има множество мрежови интерфейси, можете да използвате опцията „bind_ip“, за да ограничите вашия MongoDB сървър да слуша само на съответните интерфейси. По подразбиране MongoDB ще се свързва с всички интерфейси:
bind_ip = 10.10.0.25,10.10.0.26
-
Активиране на SSL
Ако не използвате SSL, вашите данни пътуват между вашия Mongo клиент и Mongo сървър некриптирани и са податливи на подслушване, подправяне и атаки „човек в средата“. Това е особено важно, ако се свързвате с вашия MongoDB сървър през незащитени мрежи като интернет.
-
Упълномощаване, базирано на роли
MongoDB поддържа удостоверяване, базирано на роли, за да ви даде фин контрол върху действията, които могат да бъдат извършени от всеки потребител. Използвайте базирани на роли конструкции, за да ограничите достъпа, вместо да правите всичките си потребители администратори. Вижте документацията за ролите за повече подробности.
-
Enterprise MongoDB и Kerberos
Enterprise MongoDB се интегрира с Kerberos за удостоверяване. Вижте документацията на MongoDB за повече подробности. Системите с потребителско име/парола са по своята същност несигурни – използвайте удостоверяване, базирано на бордюри, ако е възможно.
В ScaleGrid се стремим да поддържаме най-добрите практики за конфигурации за сигурност по подразбиране за всички наши внедрявания. Ние ви позволяваме да използвате SSL и също така да не излагате вашата база данни в интернет. Ако имате въпроси, моля, изпратете ни имейл на [email protected].