Пока мой порт mongo недоступен для внешнего мира и доступен только локально, могу ли я обойтись без защиты моей базы данных с помощью имени пользователя и пароля?
Да, многие люди так используют Mongo.
Аутентификация делает Однако есть одна полезная функция: это немного усложняет случайное выполнение чего-то разрушительного из оболочки, когда вы думаете, что подключены к другому месту. У нас, как правило, разные имена пользователей / пароли в базах данных разработки и производства, и вам нужно перепрыгнуть через определенный уровень, чтобы подключиться к производственной Mongo.
Да, можно, но я бы не стал этого делать.
Конечно, непосредственной угрозы нет, но правильная настройка разрешений добавляет еще один уровень безопасности.
Всегда существует вероятность того, что вы случайно откроете порт в будущем (например, выключите брандмауэр для отладки проблемы с подключением).
Кроме того, если другая служба будет скомпрометирована на том же сервере или сервере за вашим брандмауэром, то данные в MongoDB практически также будут скомпрометированы - или это может быть очень легко.
СУБД не несет ответственности за предотвращение несанкционированного доступа к базе данных. Правильные правила брандмауэра, VLAN и т. Д. Делают гораздо больше для безопасности, чем имя пользователя и пароль, которые в любом случае должны быть переданы на серверы приложений.
Почему бы не сделать и то, и другое? Глубокая защита - хорошая стратегия. Используйте облачные брандмауэры (например, группы безопасности EC2) или брандмауэры ОС, чтобы ограничить доступ к вашим экземплярам Mongo. Вы все еще можете включить аутентификацию, чтобы оспаривать, если когда-либо возникнут проблемы с настройкой вашего брандмауэра.