Невозможно подключиться к AWS Documentdb с помощью MongoDB Compass. Нет возможности передать sslInvalidHostName

AWS DocumentDB - относительно новый сервис, на который мы пытаемся перейти. Для подключения извне VPC необходимо создать туннель к существующему экземпляру.

Например:

ssh -i "ec2Access.pem" -L 27017:sample-cluster.cluster-cu52jq5kfddg.us-east-1.docdb.amazonaws.com:27017 [email protected] -N

А затем вы можете подключиться из оболочки mongo с помощью:

mongo --sslAllowInvalidHostnames --ssl --sslCAFile rds-combined-ca-bundle.pem --username <yourUsername> --password <yourPassword> 

Вы можете увидеть эту информацию по адресу: https://docs.aws.amazon.com/documentdb/latest/developerguide/connect-from-outside-a-vpc.html

Я действительно могу получить оболочку в db документа, следуя приведенным выше инструкциям, но не могу подключиться к ней с помощью компаса MongoDB. Нам нужно иметь возможность сделать это для нашей команды, не являющейся разработчиками.


person Bhavik Shah    schedule 12.02.2019    source источник
comment
Какие варианты SSL вы используете для Compass? Возможно, вам удастся подключиться, выбрав параметр SSL-соединение без подтверждения (незащищенное). ПРИМЕЧАНИЕ. DocumentDB эмулирует API MongoDB, но в настоящее время не поддерживает все команды, которые, как ожидается, будут доступны для указанной версии сервера 3.6. Это может привести к некоторым неожиданным ошибкам с Compass или другими клиентами, ожидающими сервера MongoDB (особенно с функции агрегирования).   -  person Stennie    schedule 12.02.2019
comment
@Stennie Использование следующих настроек после создания туннеля. Имя хоста: localhost Порт: 27017 Auth с пользователем / pw SSL - Непроверенный туннель: Использовать файл идентификации SSH Имя хоста: IP-адрес экземпляра ec2 Порт SSH: 27017 (также пробовал 22) Имя пользователя: ubuntu Файл идентификации: rds -comdated-ca-bundle. pem   -  person Bhavik Shah    schedule 12.02.2019
comment
Я сделал это после создания туннеля. Также пробовали несколько вариантов, пытались не открывать туннель и использовать проверку сервера, но ничего не работает. Я думаю, вы правы в том, что DocumentDB, вероятно, еще не поддерживает это   -  person Bhavik Shah    schedule 12.02.2019
comment
Я просто использовал обходной путь, запустив mongodb-compass в экземпляре Ubuntu EC2 и запустив его с XQuartz. xquartz.org Это в основном xwindows для Mac. После того, как mongodb-compass установлен на вашем экземпляре ec2 и xquartz установлен на вашем компьютере, вы можете запустить ssh -X ubuntu@ec2-instance mongodb-compass   -  person Bhavik Shah    schedule 16.02.2019


Ответы (1)


Я сделал это, используя только MongoDB Compass (Community, v. 1.16.4), без создания туннеля с помощью внешних инструментов.

Сначала загрузите сертификат AWS по адресу: https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem. Я получил эту ссылку от: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html

Также убедитесь, что у вас есть доступ к вашему кластеру DocDB из экземпляра EC2. Для этого изучите настройки групп безопасности, указанные для вашего кластера DocDB. Учитывая, что вы можете получить доступ с помощью оболочки mongo, она у вас должна быть.

Затем на экране подключения в MongoDB Compass укажите следующее (ваши учетные данные используются в качестве примера):

  • Имя хоста: sample-cluster.cluster-cu52jq5kfddg.us-east-1.docdb.amazonaws.com
  • Порт: 27017
  • Аутентификация: имя пользователя / пароль
  • Имя пользователя: YourDocDBUsername
  • Пароль: YourDocDBUserPassword
  • SSL: проверка сервера
  • Центр сертификации: (выберите загруженный файл rds -comdated-ca-bundle.pem)
  • SSH-туннель: использовать идентификационный файл
  • Имя хоста SSH: ec2-34-229-221-164.compute-1.amazonaws.com
  • Порт туннеля SSH: 22
  • Имя пользователя SSH: ubuntu
  • Файл идентификации SSH: ec2Access.pem
person OutOfNPE    schedule 25.02.2019
comment
Что вы имеете в виду, говоря о добавлении rds -comdated-ca-bundle.pem в качестве центра сертификации вашей системы? - person Bhavik Shah; 28.02.2019
comment
@BhavikShah Я обновил инструкции, связанные с CA. Теперь вам просто нужно скачать его и выбрать при настройке подключения. - person OutOfNPE; 01.03.2019
comment
Ответ года прямо здесь! Спасибо. Для пояснения SSH Hostname - это экземпляр EC2, который находится в том же регионе, что и кластер. - person nikk wong; 16.05.2019
comment
@nikkwong, это хороший момент, чтобы упомянуть. Чтобы быть более точным, экземпляр должен находиться в том же VPC, что и экземпляр DocDB. - person OutOfNPE; 12.12.2019
comment
Привет, @OutOfNPE. Я выполнил все ваши инструкции, но почему-то все еще не могу подключиться с помощью компаса mongo. Я получаю сообщение об ошибке Error creating SSH Tunnel: Timed out while waiting for forwardOut - person Paul Ryan Lucero; 13.04.2020
comment
Привет, @PaulRyanLucero. Можете ли вы подключиться к своему кластеру DocDB из экземпляра EC2, например, с помощью оболочки mongo? Здесь вы можете найти некоторые рекомендации docs.aws.amazon. com / documentdb / latest / developerguide / Если нет, то я бы сказал, что, скорее всего, проблема в настройках вашей группы безопасности DocDB. - person OutOfNPE; 13.05.2020
comment
Я использую свой id_rsa, но не могу получить сертификат местного эмитента - person Teebu; 07.05.2021
comment
У меня возникла проблема с подключением, а также упомянул @PaulRyanLucero. Я обнаружил, что у меня работает Robo 3T (другой графический интерфейс). Следуйте этим инструкциям, и вы сможете подключиться к экземпляру через SSH-туннель из подключенного экземпляра EC2 (убедитесь, что ваша группа безопасности для db документа обновлена, чтобы включить ваш экземпляр EC2). Следует отметить, что если вы используете Mac ... может быть, даже другую ОС, вы можете изменить разрешение для файлов pem на 400. Источник: docs.aws.amazon.com/documentdb/latest/developerguide/ - person Tyler Rafferty; 03.06.2021