Tengo un bastión de red al que se puede acceder públicamente example.compute-1.amazonaws.com
y una instancia de base de datos privada de postgres enpostgres.example.us-east-1.rds.amazonaws.com:5432
Puedo entrar al bastión usando
$ ssh -i key.pem [email protected]
Luego, una vez que estoy en el bastión, creo un túnel ssh con:
$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 [email protected]
Luego puedo verificar que el túnel funciona al conectarme a la base de datos desde el bastión usando localhost:
$ psql -p 5432 -h localhost -U postgres
Sin embargo, no puedo conectarme a la base de datos de forma remota (sin estar en el bastión).
$ 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?
He configurado el grupo de seguridad del bastión para aceptar el tráfico entrante en el puerto 5432.
¿Estoy usando ssh -L
correctamente? ¿Debo usarlo fuera del bastión? Cualquier consejo sería muy apreciado.
fuente
Esto funcionó para mí. Asegúrese de tener el cliente psql instalado localmente.
Al crear su instancia de db en aws, asegúrese de definir lo siguiente:
También tuve que crear un grupo de seguridad para la VPC en la que se encontraba la base de datos. Después de crearla, asegúrese de que su instancia de db la utilice para su grupo de seguridad. El grupo de seguridad tiene las siguientes reglas:
fuente