Проблема с доступом к Mongodb на Amazon EC2

у меня есть еще вопрос к вам. У меня есть экземпляр Amazon EC2 с установленным mondodb. Он отлично работает, за исключением одного - я не могу получить к нему доступ (подключиться) извне (с моего ПК). Думаю проблема с Security Groups. Это своего рода брандмауэр по умолчанию. Кто-нибудь знает, как настроить экземпляр EC2 для доступа к mongodb? Заранее спасибо.


person clumpter    schedule 22.01.2011    source источник


Ответы (3)


Вам необходимо добавить исключение группы безопасности для порта 27017, если вы используете конфигурацию по умолчанию для доступа к ней извне. Для настройки группы безопасности см. документацию amazon EC2. И если вы используете другой порт в Mongo, соответствующим образом измените порт группы безопасности.

--Сай

person Sai Venkat    schedule 22.01.2011
comment
Я знаю, что я должен сделать что-то подобное, но я не могу понять, что именно. - person clumpter; 22.01.2011
comment
Убедитесь, что вы закомментировали bind_ip из mongodb.conf - person Rakesh Sankar; 14.10.2011
comment
а затем не забудьте перезапустить службу mongod - person Oscar Robinson; 02.10.2014
comment
Этот принятый ответ и комментарий о «bind_ip» неадекватно относятся к безопасности, поскольку этот метод может легко привести к вымогательству mongoDB нового пользователя, если они не будут осторожны. Если вы пойдете по этому пути, откройте порт экземпляра в группе безопасности только для IP-адреса вашего компьютера и установите пароли для монго, но лучше ответ с большим количеством голосов, который похож на информацию здесь - person Mint; 30.03.2018

Хорошо подумайте, прежде чем делать это. Если вы открываете порты, убедитесь, что вы ограничили IP-номера, которые могут получить к ним доступ, иначе любой сможет получить доступ к вашей базе данных. Вы можете включить аутентификацию в MongoDB, но это не особо безопасно, просто имя пользователя и пароль. Вы не должны открывать свою базу данных для Интернета, это не очень хорошая идея.

Лучший способ, чем открывать порты в брандмауэре EC2, — это открыть туннель SSH и перенаправить порт, это гарантирует, что только вы можете получить доступ к базе данных и только тогда, когда туннель SSH активен.

Откройте новый терминал и выполните эту команду (заменив пользователя и хост на пользователя, которого вы используете при SSH-подключении к вашему серверу, и имя сервера):

ssh user@host -N -L 27017:127.0.0.1:27017

Команда переадресует порт 27017 на вашем компьютере на тот же порт на сервере. Чтобы подключиться к экземпляру MongoDB, просто запустите mongo в терминале (если это не сработает, попробуйте mongo --host 127.0.0.1 или даже mongo --host 127.0.0.1 --port 27017).

Если вы запускаете MongoDB на своем локальном компьютере, вам придется изменить первый порт, так как локальный сервер уже использует его. В этом случае вместо этого запустите эту команду:

ssh user@host -N -L 27018:127.0.0.1:27017

а затем соединиться с

mongo --port 27018

(возможно добавление --host 127.0.0.1, если это не работает).

Когда вы закончите работу с базой данных, выйдите из mongo и нажмите ctrl-C в терминале с командой SSH.

person Theo    schedule 22.01.2011
comment
Эпический. Магия порта Форвардз. - person arxpoetica; 11.04.2013

Ваш экземпляр EC2 случайно не является сервером Windows? Если это так, в дополнение к группам безопасности EC2 вам также необходимо настроить брандмауэр Windows, чтобы разрешить входящее соединение.

Перейдите в «Администрирование», «Брандмауэр Windows в режиме повышенной безопасности» и настройте новое правило, разрешающее входящие подключения через порт 27017 (порт mongo по умолчанию) или любой другой порт, который вы выбрали.

person Brad Gagne    schedule 15.03.2011
comment
Спасибо приятель! У меня была эта проблема с моим экземпляром Windows EC2. Теперь я мог получить к нему доступ! - person Jobsamuel; 30.08.2014