Невозможно подключиться к 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 ubuntu@ec2-34-229-221-164.compute-1.amazonaws.com -N

И тогда вы можете подключиться из оболочки Монго с помощью:

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. Мы должны быть в состоянии сделать это для нашей команды разработчиков.

2 ответа

Я сделал это, используя только 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-комбинированный-ca-bundle.pem)
  • Туннель SSH: использовать файл идентификации
  • Имя хоста SSH: ec2-34-229-221-164.compute-1.amazonaws.com
  • Туннельный порт SSH: 22
  • Имя пользователя SSH: Ubuntu
  • Файл идентификации SSH: ec2Access.pem

Точно так же я смог подключиться к своему туннелированному экземпляру DocumentDB через mongosh, но не через MongoDB Compass. Я заметил, что mongosh выводит строку подключения, поэтому я скопировал ее в Compass, и это сработало.

      mongodb://<credentials>@localhost:27017/?directConnection=true&tls=true&tlsAllowInvalidHostnames=true&tlsCAFile=<path_to_pem>

Похоже, часть, которую я пропустил, была

прямое соединение = истина

Другие вопросы по тегам