У меня есть сетевой бастион, который общедоступен в example.compute-1.amazonaws.com
и частный экземпляр базы данных Postgres вpostgres.example.us-east-1.rds.amazonaws.com:5432
Я могу SSH в бастион, используя
$ ssh -i key.pem ec2-user@example.compute-1.amazonaws.com
Затем, когда я нахожусь в бастионе, я создаю ssh-туннель с:
$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 ec2-user@example.compute-1.amazonaws.com
Затем я могу убедиться, что туннель работает, подключившись к базе данных из бастиона с помощью localhost:
$ psql -p 5432 -h localhost -U postgres
Однако я не могу подключиться к базе данных удаленно (не находясь в бастионе).
$ 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?
Я настроил группу безопасности бастиона для приема входящего трафика через порт 5432.
Я ssh -L
правильно использую ? Должен ли я использовать его за пределами бастиона? Любые советы будут высоко ценится.
источник
Это сработало для меня. Убедитесь, что у вас установлен клиент psql локально.
При создании вашего экземпляра базы данных в aws, убедитесь, что вы определили следующее:
Мне также пришлось создать группу безопасности для VPC, в которой была расположена база данных. После создания убедитесь, что ваш экземпляр базы данных использует это для своей группы безопасности. Группа безопасности имеет следующие правила:
источник