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.
Come posso utilizzare un tunnel SSH per connettermi al mio cluster Amazon DocumentDB dall'esterno di Amazon VPC?
Desidero accedere a un cluster Amazon DocumentDB (con compatibilità MongoDB) distribuito in un Amazon Virtual Private Cloud (Amazon VPC). Desidero utilizzare un tunnel SSH per accedere al cluster dall'esterno di Amazon VPC.
Breve descrizione
Per utilizzare un tunnel SSH per inoltrare il traffico dal computer locale al cluster Amazon DocumentDB, utilizza un'istanza Amazon Elastic Compute Cloud (Amazon EC2) come bastion host o jump host. Il bastion host funge da proxy che inoltra il traffico dal computer locale al cluster Amazon DocumentDB.
Risoluzione
La seguente risoluzione utilizza un'istanza EC2 come host bastion. L'host bastion utilizza il client dell'interfaccia a riga di comando (CLI) MongoDB per connettersi al cluster Amazon DocumentDB da un computer locale tramite un tunnel SSH.
Prerequisiti:
- Crea un cluster Amazon DocumentDB.
- Avvia un'istanza con un indirizzo IP pubblico nello stesso Amazon VPC del cluster Amazon DocumentDB.
- Associa una coppia di chiavi private (file .pem) all'istanza che hai scaricato sul computer locale.
- Associa un gruppo di sicurezza al cluster Amazon DocumentDB. Il gruppo di sicurezza consente la comunicazione dall'istanza tramite la porta configurata con il cluster Amazon DocumentDB (impostazione predefinita 27017).
- Associa un gruppo di sicurezza all'istanza. Il gruppo di sicurezza consente la comunicazione dal computer locale tramite la porta SSH (22).
- Installa la shell MongoDB o un client GUI sul computer locale.
Verifica che il cluster Amazon DocumentDB sia accessibile dall'host bastion di Amazon EC2
Utilizza la coppia di chiavi private per connetterti al bastion host dal computer locale tramite SSH:
ssh -i path_to_pem_file instance-user-name@instance-public-dns-name
Nota: sostituisci path_to_pem_file con il percorso del tuo file chiave .pem. Sostituisci instance-user-name con il nome utente della tua istanza. Sostituisci instance-public-dns-name con il nome DNS pubblico o l'indirizzo IP della tua istanza.
Per ulteriori informazioni, consulta Connessione all'istanza Linux tramite un client SSH.
Per autenticare il cluster, scarica il certificato dell'autorità di certificazione (CA) per Amazon DocumentDB:
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
Utilizza il client della CLI di MongoDB per connetterti al cluster Amazon DocumentDB:
mongo --tls --host cluster-endpoint --tlsCAFile global-bundle.pem --username primary-username --password master-password
Nota: sostituisci cluster-endpoint con l'endpoint del tuo cluster DocumentDB. Sostituisci primary-username con il nome utente primario del tuo database. Sostituisci primary-password con la password principale del tuo database.
Per ulteriori informazioni, consulta Connessione tramite Amazon EC2.
Configura il tunnel SSH
Dopo aver verificato la connessione al cluster da un host bastion, configura il tunnel SSH.
Per configurare un tunnel SSH dal computer locale a un host bastion, esegui un comando simile a questo esempio:
ssh -i path_to_pem_file -L local-port:cluster-endpoint:remote-port instance-user-name@instance-public-dns-name -N -f
Nota: sostituisci path_to_pem_file con il percorso del file della chiave privata della tua istanza EC2. Sostituisci local-port con il numero di porta che desideri utilizzare sul computer locale. Sostituisci cluster-endpoint con l'endpoint del tuo cluster di database. Sostituisci remote-port con il numero di porta del tuo database remoto.
Nel seguente esempio, il tunnel SSH collega la porta 27017 del computer locale al cluster Amazon DocumentDB remoto:
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
Nell'esempio di comando precedente sono utilizzate le seguenti opzioni della riga di comando:
- i identity_file, utilizza la coppia di chiavi private per l'istanza (file .pem) per l'autenticazione.
- L port:host:hostport, associa la porta dell'host locale (client) per inoltrare il traffico sulla porta host dell'host remoto.
- N, non esegue un comando remoto. Questa opzione è utile solo quando si inoltrano le porte.
- f, esegue SSH in background.
Per verificare che il tunnel SSH venga eseguito in background, esegui un comando simile a questo esempio.
Nota: sostituisci local-port con il tuo numero di porta.
Linux e macOS:
lsof -P | grep -i "listen" | grep local-port
Windows:
netstat -abn | findstr "LISTEN" | findstr local-port
Nota: devi essere un utente amministratore per eseguire il comando precedente in Windows.
Per verificare che l'host locale sia in ascolto sulla porta locale 27017, esegui questo comando:
nc -zv 127.0.0.1 27017
Esamina l'output. Se il tunnel SSH viene stabilito correttamente, vedi un output simile al seguente esempio:
❯ 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'esempio precedente utilizza la porta 27017.
Connettiti al cluster Amazon DocumentDB dal computer locale
Utilizza MongoDB Shell o un client GUI per connetterti al cluster Amazon DocumentDB dal computer locale.
Nota: prima di avviare la connessione, scarica il certificato CA per Amazon DocumentDB sul computer locale.
Per connetterti al cluster Amazon DocumentDB utilizzando la shell MongoDB, esegui questo comando:
mongo --tls --tlsAllowInvalidHostnames --tlsCAFile global-bundle.pem --username primary-username --password primary-password
Nota: sostituisci primary-username con il nome utente del tuo database. Sostituisci primary-password con la password del tuo database.
L'esempio di comando precedente non specifica esplicitamente i parametri --host e --port. Quando non specifichi i parametri --host e --port, la shell MongoDB tenta di connettersi all'host locale del computer sulla porta locale 2701. Il tunnel SSH inoltra quindi la connessione all'endpoint del cluster Amazon DocumentDB.
Quando utilizzi una porta diversa da 27017 sul computer locale, utilizza il parametro --port per specificare esplicitamente la porta personalizzata. Per ulteriori informazioni, consulta Connect to a deployment on a remote host (Connessione a una distribuzione su un host remoto) sul sito web MongoDB.
Considerazioni importanti
Tieni presenti i seguenti elementi:
- Alcuni client GUI hanno un'opzione di tunnel SSH, come MongoDB Compass o Studio 3T. Quando utilizzi questi client, non serve creare e gestire manualmente il tunnel SSH con la CLI di MongoDB. Salva invece la configurazione del tunnel SSH nelle impostazioni di connessione del client GUI. Per ulteriori informazioni, consulta la documentazione del client GUI specifico.
- Quando devi bypassare la convalida del nome host SSL/TLS, utilizza il parametro --tlsAllowInvalidHostnames per connetterti tramite un tunnel SSH. Il nome host nella stringa di connessione, mongodb://localhost:27017, non corrisponde al nome host contenuto nel certificato del server del cluster Amazon DocumentDB. Se ti connetti direttamente al cluster con un endpoint del cluster Amazon DocumentDB, non serve utilizzare il parametro --tlsAllowInvalidHostnames.
- Per i client GUI come MongoDB Compass e Studio 3T, specifica l'opzione tlsAllowInvalidHostnames nella stringa di connessione, tlsAllowInvalidHostnames=true. Oppure attiva l'opzione **Allow Invalid Hostnames** nelle impostazioni di connessione nella scheda SSL/TLS.
- Quando utilizzi un tunnel SSH per connetterti, è consigliabile scegliere l'endpoint del cluster. Se specifichi replicaSet=rs0 nella stringa di connessione, potrebbe verificarsi un errore. Quando utilizzi MongoDB Compass per il tunnel SSH, attiva Direct Connection per disattivare la connessione del set di repliche. Per ulteriori informazioni, consulta General connection tab (Scheda Connessione generale) sul sito web MongoDB.
Informazioni correlate
Connessione a un cluster Amazon DocumentDB dall'esterno di un Amazon VPC
What is MongoDB Compass? (Cos'è MongoDB Compass?) sul sito web MongoDB
- Argomenti
- Database
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata 7 mesi fa
AWS UFFICIALEAggiornata 6 mesi fa