Global outage event
If you're experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Comment utiliser un tunnel SSH pour me connecter à mon cluster Amazon DocumentDB depuis l'extérieur d'un Amazon VPC ?
Je souhaite accéder à un cluster Amazon DocumentDB (compatible avec MongoDB) déployé dans un Amazon Virtual Private Cloud (Amazon VPC). Je souhaite utiliser un tunnel SSH pour accéder au cluster depuis l'extérieur de l'Amazon VPC.
Brève description
Pour utiliser un tunnel SSH afin de transférer le trafic de votre machine locale vers le cluster Amazon DocumentDB, utilisez une instance Amazon Elastic Compute Cloud (Amazon EC2) comme hôte bastion ou de rebond. L'hôte bastion sert de proxy qui transfère le trafic de votre machine locale vers le cluster Amazon DocumentDB.
Résolution
La résolution suivante utilise une instance EC2 comme hôte bastion. L'hôte bastion utilise le client d'interface de ligne de commande (CLI) MongoDB pour se connecter au cluster Amazon DocumentDB depuis une machine locale via un tunnel SSH.
Prérequis :
- créez un cluster Amazon DocumentDB.
- Lancez une instance avec une adresse IP publique dans le même Amazon VPC que le cluster Amazon DocumentDB.
- Associez une paire de clés privées (fichier .pem) à l'instance que vous avez téléchargée sur votre machine locale.
- Associez un groupe de sécurité au cluster Amazon DocumentDB. Le groupe de sécurité autorise la communication depuis l'instance via le port configuré avec le cluster Amazon DocumentDB (par défaut 27017).
- Associez un groupe de sécurité à l'instance. Le groupe de sécurité permet la communication depuis votre machine locale via le port SSH (22).
- Installez le shell MongoDB ou un client GUI sur votre machine locale.
Vérifiez que le cluster Amazon DocumentDB est accessible depuis l'hôte bastion Amazon EC2
Utilisez la paire de clés privées pour vous connecter à l'hôte bastion depuis votre machine locale via SSH :
ssh -i path_to_pem_file instance-user-name@instance-public-dns-name
Remarque : remplacez path_to_pem_file par le chemin de votre fichier clé .pem. Remplacez instance-user-name par le nom d'utilisateur de votre instance. Remplacez instance-public-dns-name par le nom DNS public ou l'adresse IP de votre instance.
Pour en savoir plus, consultez la section Se connecter à votre instance Linux à l'aide d'un client SSH.
Pour authentifier votre cluster, téléchargez le certificat d'autorité de certification (CA) pour Amazon DocumentDB :
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
Utilisez le client MongoDB CLI pour vous connecter au cluster Amazon DocumentDB :
mongo --tls --host cluster-endpoint --tlsCAFile global-bundle.pem --username primary-username --password master-password
Remarque : remplacez cluster-endpoint par le point de terminaison du cluster DocumentDB. Remplacez primary-username par le nom d'utilisateur principal de la base de données. Remplacez primary-password par le mot de passe principal de la base de données.
Pour plus d'informations, consultez la section Se connecter à l'aide d'Amazon EC2.
Configurer le tunnel SSH
Après avoir vérifié la connexion au cluster à partir d'un hôte bastion, configurez le tunnel SSH.
Pour configurer un tunnel SSH entre votre machine locale et un hôte bastion, exécutez une commande similaire à l'exemple suivant :
ssh -i path_to_pem_file -L local-port:cluster-endpoint:remote-port instance-user-name@instance-public-dns-name -N -f
Remarque : remplacez path_to_pem_file par le chemin d'accès au fichier de clé privée de l’instance EC2. Remplacez local-port par le numéro de port que vous souhaitez utiliser sur votre machine locale. Remplacez cluster-endpoint par le point de terminaison du cluster. emplacez remote-port par le numéro de port de la base de données distante.
Dans l'exemple suivant, le tunnel SSH lie le port 27017 de la machine locale au cluster Amazon DocumentDB distant :
ssh -i "ec2Access.pem" -L 27017:sample-cluster.node.us-east-1.docdb.amazonaws.com:27017 ec2-user@ec2-zz-aaa-yyy-zzz.compute-1.amazonaws.com -N -f
Les options de ligne de commande suivantes sont utilisées dans l'exemple de commande précédent :
- i identity_file, utilise la paire de clés privées de l'instance (fichier .pem) pour l'authentification.
- L port:host:hostport, lie le port sur l'hôte local (client) pour transférer le trafic sur le port hôte de l'hôte distant.
- N, n'exécute pas de commande à distance. Cela n'est utile que lorsque vous transférez des ports.
- f, exécute le SSH afin qu'il s'exécute en arrière-plan.
Pour vérifier que le tunnel SSH s'exécute en arrière-plan, exécutez une commande similaire à l'exemple suivant.
Remarque : remplacez local-port par le numéro de port.
Linux et macOS :
lsof -P | grep -i "listen" | grep local-port
Windows :
netstat -abn | findstr "LISTEN" | findstr local-port
Remarque : vous devez être un administrateur pour exécuter la commande précédente sous Windows.
Pour vérifier que l'hôte local écoute sur le port local 27017, exécutez la commande suivante :
nc -zv 127.0.0.1 27017
Examinez la sortie. Si le tunnel SSH est correctement établi, une sortie similaire à l'exemple suivant s'affiche :
❯ lsof -P | grep -i "listen" | grep 27017ssh 52787 user 7u IPv4 0x1256bbb543454447 0t0 TCP localhost:27017 (LISTEN) ❯ netstat -abn | findstr "LISTEN" | findstr 27017TCP 127.0.0.1:27017 0.0.0.0:0 LISTENING ❯ nc -zv 127.0.0.1 27017Connection to 127.0.0.1 port 27017 [tcp/*] succeeded!
L'exemple précédent utilise le port 27017.
Se connecter au cluster Amazon DocumentDB depuis la machine locale
Utilisez le shell MongoDB ou un client GUI pour vous connecter au cluster Amazon DocumentDB depuis la machine locale.
Remarque : avant d'établir la connexion, téléchargez le certificat CA pour Amazon DocumentDB sur la machine locale.
Pour utiliser le shell MongoDB et vous connecter au cluster Amazon DocumentDB, exécutez la commande suivante :
mongo --tls --tlsAllowInvalidHostnames --tlsCAFile global-bundle.pem --username primary-username --password primary-password
Remarque : remplacez primary-username par le nom d'utilisateur de la base de données. Remplacez primary-password par le mot de passe de la base de données.
L'exemple de commande précédent ne spécifie pas explicitement les paramètres --host et --port. Lorsque vous ne spécifiez pas les paramètres --host et --port, MongoDB Shell essaie de se connecter à l'hôte local de votre machine sur le port local 2701. Le tunnel SSH transmet ensuite la connexion au point de terminaison du cluster Amazon DocumentDB.
Lorsque vous utilisez un port autre que 27017 sur votre machine locale, utilisez le paramètre --port pour spécifier explicitement le port personnalisé. Pour plus d'informations, consultez la page Se connecter à un déploiement sur un hôte distant sur le site Web de MongoDB.
Considérations importantes
Examinez les considérations suivantes :
- Certains clients GUI disposent d'une option de tunnel SSH, comme MongoDB Compass ou Studio 3T. Lorsque vous utilisez ces clients, vous n'avez pas besoin de créer et de gérer manuellement le tunnel SSH à l'aide de la CLI MongoDB. À la place, enregistrez la configuration du tunnel SSH dans les paramètres de connexion du client GUI. Pour plus d'informations, consultez la documentation de votre client GUI spécifique.
- Lorsque vous devez contourner la validation des noms d'hôte SSL/TLS, utilisez le paramètre --tlsAllowInvalidHostnames pour vous connecter via un tunnel SSH. Le nom d'hôte figurant dans la chaîne de connexion, mongodb://localhost:27017, ne correspond pas au nom d'hôte figurant dans le certificat de serveur de cluster Amazon DocumentDB. Si vous vous connectez directement au cluster via un point de terminaison de cluster Amazon DocumentDB, vous n'avez pas besoin d'utiliser le paramètre --tlsAllowInvalidHostnames.
- Pour les clients GUI tels que MongoDB Compass et Studio 3T, spécifiez l'option tlsAllowInvalidHostnames dans la chaîne de connexion, tlsAllowInvalidHostnames=true. Vous pouvez également activer l'option **Allow Invalid Hostnames** dans les paramètres de connexion de l'onglet SSL/TLS.
- Lorsque vous utilisez un tunnel SSH pour vous connecter, il est recommandé de vous connecter au point de terminaison du cluster. Si vous spécifiez replicaSet=rs0 dans votre chaîne de connexion, une erreur peut se produire. Lorsque vous utilisez MongoDB Compass pour le tunnel SSH, activez la connexion directe pour désactiver la connexion au jeu de réplicas. Pour plus d'informations, consultez la page Onglet Connexion générale sur le site Web de MongoDB.
Informations connexes
Connexion à un cluster Amazon DocumentDB depuis l'extérieur d'un Amazon VPC
Qu'est-ce que MongoDB Compass ? sur le site Web de MongoDB
- Sujets
- Database
- Balises
- Amazon DocumentDB
- Langue
- Français

Contenus pertinents
- demandé il y a un an
- demandé il y a 2 ans
- demandé il y a 3 ans
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 7 mois
AWS OFFICIELA mis à jour il y a 6 mois