J'ai un bastion réseau accessible au public example.compute-1.amazonaws.com
et une instance de base de données postgres privée àpostgres.example.us-east-1.rds.amazonaws.com:5432
Je peux entrer dans le bastion en utilisant
$ ssh -i key.pem [email protected]
Puis une fois dans le bastion je crée un tunnel ssh avec:
$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 [email protected]
Je peux ensuite vérifier que le tunnel fonctionne en se connectant à la base de données depuis le bastion en utilisant localhost:
$ psql -p 5432 -h localhost -U postgres
Cependant, je ne peux pas me connecter à la base de données à distance (sans être dans le bastion).
$ psql -p 5432 -h example.compute-1.amazonaws.com -U postgres
psql: could not connect to server: Connection refused
Is the server running on host "example.compute-1.amazonaws.com" () and accepting
TCP/IP connections on port 5432?
J'ai configuré le groupe de sécurité du bastion pour accepter le trafic entrant sur le port 5432.
Suis-je en ssh -L
train d' utiliser correctement? Dois-je l'utiliser en dehors du bastion? Tout conseil serait très apprécié.
la source
Cela a fonctionné pour moi. Assurez-vous que le client psql est installé localement.
Lors de la création de votre instance db sur aws, assurez-vous de définir les éléments suivants:
J'ai également dû créer un groupe de sécurité pour le VPC dans lequel se trouvait la base de données. Après sa création, assurez-vous que votre instance db l'utilise pour son groupe de sécurité. Le groupe de sécurité a les règles suivantes:
la source