无法使用MongoDB Compass连接到AWS Documentdb。没有传递sslInvalidHostName的选项

时间:2019-02-12 02:42:20

标签: amazon-web-services amazon-ec2 mongodb-compass aws-documentdb-mongoapi

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 shell进行连接:

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

实际上,我可以按照上述说明将shell放入document db,但无法使用MongoDB指南针连接到它。我们需要能够为我们的非开发人员团队做到这一点。

1 个答案:

答案 0 :(得分:5)

我仅使用MongoDB Compass(社区,版本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

还要确保您可以从EC2实例访问DocDB集群。 为此,请查看为您的DocDB群集指定的安全组设置。 既然您能够使用mongo shell进行访问,则应该拥有它。

然后在MongoDB Compass的连接屏幕上指定以下内容(您的凭据用作示例):

  • 主机名:sample-cluster.cluster-cu52jq5kfddg.us-east-1.docdb.amazonaws.com
  • 端口:27017
  • 身份验证:用户名/密码
  • 用户名:YourDocDBUsername
  • 密码:YourDocDBUserPassword
  • SSL:服务器验证
  • 证书颁发机构:(选择下载的rds-combined-ca-bundle.pem)
  • SSH隧道:使用身份文件
  • SSH主机名:ec2-34-229-221-164.compute-1.amazonaws.com
  • SSH隧道端口:22
  • SSH用户名:ubuntu
  • SSH身份文件:ec2Access.pem