public postgresql rds örneğine bağlanılamıyor


23

Temel bir test PostgreSQL RDS örneği, tek bir ortak alt ağa sahip olan ve genel internet üzerinden bağlanmak için mevcut olması gereken bir VPC'de oluşturdum. Bağlantı noktası 5432'ye açık olan varsayılan güvenlik grubunu kullanır. Bağlanmaya çalıştığımda başarısız oluyor. Çok basit bir şeyi özlüyor olmalıyım - ama bu konuda oldukça kayıbım.

İşte veritabanı ayarları, aşağıdaki gibi işaretlendiğine dikkat edin Publicly Accessible: RDS Ayarları

İşte güvenlik grubu ayarları, geniş açık olduğuna dikkat edin (yukarıdaki RDS ayarlarında, bitiş noktasının yanındaki yeşil "yetkili" ipucu ile onaylandı): Güvenlik Grubu ayarları

İşte bağlanmak için kullanmaya çalıştığım komut:

psql --host=myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com \
     --port=5432 
     --username=masteruser 
     --password 
     --dbname=testdb

Ve bu bir Yosemite MacBook Pro'dan bağlanmaya çalışırken elde ettiğim sonuçtur (not, 54'e dönüyor. * İp adresi):

psql: could not connect to server: Operation timed out
    Is the server running on host "myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com" (54.xxx.xxx.xxx) and accepting
    TCP/IP connections on port 5432?

Herhangi bir güvenlik duvarını etkinleştirmedim ve diğer sağlayıcılardaki (örneğin Heroku) genel PostgreSQL örneklerine bağlanabiliyorum.

Herhangi bir sorun giderme ipucu çok takdir edilecektir, çünkü burada kaybediyorum.

Güncelleştirme

Yorum başına, Varsayılan VPC için gelen ACL kuralları: Ağ ACL yapılandırması


1
NetworkACL'leri karıştırdınız mı? Orada internet erişimini engelleyebilecek olası bir ayar arardım.
Optichip

Yanıt için teşekkürler! ACL'lerin hiçbir şeyi engellemediği görülüyor, çünkü ilk kural tüm bağlantı noktalarının ekli başına tüm kaynaklardan izin vermesi.
Edward Q.

Yanıtlar:


27

Sorun, Güvenlik Grubundaki gelen kuralın kaynak olarak bir güvenlik grubu belirtmesiydi. IP adresimi içeren bir CIDR'ye değiştirmek sorunu çözdü.


6
CIDR'nin nasıl çalıştığını bilmeyenler için; IP adresiniz 91.61.76.202 ise (sizinkileri myipaddress.com kullanarak bulabilirsiniz ), kaynağınızı 91.61.76.202/32 olarak ayarlayın
Tom G

Bu çözümün nasıl göründüğünün ekran görüntüsünü almaya ister misiniz?
smaccoun

Memnun olurum ama artık bu vakayı çevrimiçi yapamıyorum.
Edward Q. Köprüler

11

Benzer bir sorunla karşı karşıyaydım ve bu şekilde çözdüm:

RDS örneği için güvenlik grubuna tıklayın ve gelen kuralları kontrol edin. Bunun gibi bir şey görebilirsiniz:

görüntü tanımını buraya girin

IP aralığınızı içerecek şekilde IP aralığını ayarlamanız veya Kaynak açılır listesinden "Herhangi Bir Yer" i seçmeniz gerekir;

görüntü tanımını buraya girin


Evet bu işe yarıyor. Orada bulunan Özel kuralını tuttum ve IP adresimi otomatik olarak alan yeni bir kural ekledim.
MSC

1

Postgres'lere bağlanırken de benzer bir sorun yaşadım. Genel olarak erişim erişimim doğru olsa da, bağlantı kuramadım.

Güvenlik grubuna bir kural gelen kuralı ekledim ve şimdi gayet iyi çalışıyor.

görüntü tanımını buraya girin


0

Birilerini zaman kazanmak için bulgularımı eklemek istedim. Yukarıda açıklanan bu çözüm bir dev ec2 örneği üzerinde çalıştı ancak yeni bir sunucuya geçtikten sonra çalışmayı durdurdu. Hem RDS örneğimin hem de EC2 örneğimin aynı VPC’de olduğu, böylece RDS örneğinin güvenlik grubuna eklediğim ortak IP’yi göremediği ortaya çıktı. Bu çalışmayı elde etmek için, EC2 örneğinin özel ipi olan RDS örnekleri güvenlik grubuna, ayrıntılı olarak bulabileceğiniz özel eklemeniz gerekir.


-1

Postgres örneğimi oluşturduktan sonra, varsayılan güvenlik grubum (rds-launch-wizard) IP adresimi yalnızca listeledi, bu yüzden bağlanabilmem için önce bir tür Tüm Trafik Türü ve Herhangi Bir Yer Kaynağını eklemek zorunda kaldım. Ağ iletişimi uzmanı değilim, ancak gelen bir kural olarak kendi IP adresime bağlanamıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.