Невозможно подключиться к 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>
Похоже, часть, которую я пропустил, была
прямое соединение = истина