Mam bastion sieciowy, który jest publicznie dostępny example.compute-1.amazonaws.com
i prywatną instancję bazy danych postgres wpostgres.example.us-east-1.rds.amazonaws.com:5432
Mogę użyć ssh do bastionu
$ ssh -i key.pem [email protected]
Potem, gdy jestem w bastionie, tworzę tunel ssh z:
$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 [email protected]
Następnie mogę sprawdzić, czy tunel działa, łącząc się z bazą danych z bastionu za pomocą localhost:
$ psql -p 5432 -h localhost -U postgres
Nie mogę jednak połączyć się z bazą danych zdalnie (bez bastionu).
$ 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?
Skonfigurowałem grupę zabezpieczeń bastionu, aby akceptowała ruch przychodzący na porcie 5432.
Czy używam ssh -L
poprawnie? Czy powinienem używać go poza bastionem? Wszelkie porady będą mile widziane.
źródło
To zadziałało dla mnie. Upewnij się, że masz klienta psql zainstalowanego lokalnie.
Tworząc instancję db w aws, pamiętaj, aby zdefiniować następujące elementy:
Musiałem także utworzyć grupę zabezpieczeń dla VPC, w której znajdowała się baza danych. Po utworzeniu upewnij się, że instancja db używa tego dla swojej grupy zabezpieczeń. Grupa bezpieczeństwa ma następujące zasady:
źródło