incapaz de conectar-se à instância pública do postgresql rds

23

Criei uma instância básica do PostgreSQL RDS de teste em uma VPC que possui uma única sub-rede pública e que deve estar disponível para conexão pela Internet pública. Ele usa o grupo de segurança padrão, aberto para a porta 5432. Quando tento conectar, ele falha. Eu devo estar perdendo algo muito direto - mas estou bem perdido nisso.

Aqui estão as configurações do banco de dados, observe que está marcado como Publicly Accessible: Configurações RDS

Aqui estão as configurações do grupo de segurança, observe que está totalmente aberto (afirmado nas configurações do RDS acima pela dica "autorizada" verde ao lado do terminal): Configurações do grupo de segurança

Aqui está o comando que estou tentando usar para conectar:

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

E é esse o resultado que estou obtendo ao tentar conectar-me a partir de um MacBook Pro da Yosemite (observe que está sendo resolvido para um endereço IP 54. *):

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?

Não tenho nenhum tipo de firewall ativado e consigo conectar-me a instâncias públicas do PostgreSQL em outros provedores (por exemplo, Heroku).

Todas as dicas de solução de problemas seriam muito apreciadas, já que estou bastante perdido aqui.

Atualizar

Por comentário, aqui estão as regras de ACL de entrada para a VPC padrão: Configuração de rede ACL

Edward Q. Bridges
fonte
1
Você mexeu com os NetworkACLs? Eu procuraria lá uma possível configuração que poderia estar bloqueando o acesso à Internet.
Optichip
Obrigado pela resposta! As ACLs parecem não estar bloqueando nada, pois a primeira regra é permitir todas as portas de todas as fontes, por anexadas.
Edward Q. Bridges

Respostas:

27

O problema foi que a regra de entrada no grupo de segurança especificou um grupo de segurança como a origem. Alterá-lo para um CIDR que incluía meu endereço IP corrigiu o problema.

Edward Q. Bridges
fonte
6
Para quem não sabe como o CIDR funciona; Se o seu endereço IP é 91.61.76.202 (pode encontrar o seu usando myipaddress.com ), definir a sua fonte como 91.61.76.202/32
Tom G
Você gostaria de fazer uma captura de tela da aparência desta solução?
Smaccoun 2/06
Eu ficaria feliz em, mas não tenho mais essa instância online.
Edward Q. Bridges
11

Estava enfrentando um problema semelhante, e foi assim que resolvi:

Clique no grupo de segurança da instância do RDS e verifique as regras de entrada. Você pode ver algo assim:

insira a descrição da imagem aqui

É necessário definir o intervalo de IP para conter o seu IP ou simplesmente selecionar "Em qualquer lugar" no menu suspenso Origem, para torná-lo acessível a partir do host local ou de qualquer lugar:

insira a descrição da imagem aqui

Miguel Mota
fonte
Sim, isso funciona. Eu mantive a regra Personalizada que estava lá e adicionei uma nova regra que pegou meu endereço IP automaticamente.
MSC
1

Eu tive um problema semelhante ao me conectar ao postgres. Mesmo que eu tivesse acesso publicamente true, não consegui me conectar.

Adicionei uma regra de entrada de regra no grupo de segurança e agora está funcionando perfeitamente.

insira a descrição da imagem aqui

Abhash Kumar
fonte
0

Só queria adicionar minhas descobertas para poupar alguém algum tempo. Esta solução descrita acima funcionou em uma instância do dev ec2, mas após a migração para um novo servidor, ele parou de funcionar. Aconteceu que minha instância RDS e EC2 estavam na mesma VPC, portanto, a instância RDS não pôde ver o IP público que eu havia adicionado ao seu grupo de segurança. Para que isso funcione, você precisa adicionar ao grupo de segurança de instâncias do RDS, o ip privado da instância do EC2 que você pode encontrar em detalhes.

Muhammed Bilal Iqbal
fonte
-1

Depois de criar minha instância do Postgres, meu grupo de segurança padrão (rds-launch-wizard) listou apenas meu endereço IP, então tive que adicionar um Tipo de Todo o Tráfego e Origem de Qualquer Lugar antes de poder conectar-me. Não sou especialista em redes, mas é estranho não ter conseguido me conectar ao meu próprio endereço IP como regra de entrada.

jones-chris
fonte