no se puede conectar a la instancia pública de postgresql rds

23

Creé una instancia básica de prueba de PostgreSQL RDS en una VPC que tiene una única subred pública y que debería estar disponible para conectarse a través de Internet pública. Utiliza el grupo de seguridad predeterminado, que está abierto para el puerto 5432. Cuando intento conectar, falla. Debo estar perdiendo algo muy sencillo, pero estoy bastante perdido en esto.

Aquí están las configuraciones de la base de datos, tenga en cuenta que está marcado como Publicly Accessible: Configuraciones RDS

Aquí están las configuraciones del grupo de seguridad, tenga en cuenta que está abierto de par en par (afirmado en la configuración de RDS anterior por la pista verde "autorizada" al lado del punto final): Configuración del grupo de seguridad

Aquí está el comando que estoy tratando de usar para conectarme:

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

Y este es el resultado que obtengo cuando intento conectarme desde un MacBook Pro de Yosemite (nota, se está resolviendo en una dirección 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?

No tengo ningún tipo de firewall habilitado, y puedo conectarme a instancias públicas de PostgreSQL en otros proveedores (por ejemplo, Heroku).

Cualquier sugerencia de solución de problemas sería muy apreciada, ya que estoy bastante perdido aquí.

Actualizar

Por comentario, estas son las reglas de entrada de ACL para la VPC predeterminada: Configuración de red ACL

Edward Q. Bridges
fuente
1
¿Por casualidad te metiste con las NetworkACL? Buscaría una posible configuración que podría estar bloqueando el acceso a Internet.
Optichip
¡Gracias por la respuesta! Las ACL parecen no estar bloqueando nada, ya que la primera regla es permitir todos los puertos de todas las fuentes, por adjunto.
Edward Q. Bridges

Respuestas:

27

El problema era que la regla de entrada en el Grupo de seguridad especificaba un grupo de seguridad como fuente. Cambiarlo a un CIDR que incluyera mi dirección IP solucionó el problema.

Edward Q. Bridges
fuente
66
Para cualquiera que no sepa cómo funciona CIDR; si su dirección IP es 91.61.76.202 (puede encontrar la suya usando myipaddress.com ), configure su fuente como 91.61.76.202/32
Tom G,
¿Estaría dispuesto a tomar una captura de pantalla de cómo se ve esta solución?
smaccoun
Me encantaría, pero ya no tengo esta instancia en línea.
Edward Q. Bridges
11

Estaba enfrentando un problema similar, y así es como lo resolví:

Haga clic en el grupo de seguridad para la instancia de RDS y verifique las reglas de entrada. Puede ver algo como esto:

ingrese la descripción de la imagen aquí

Debe configurar el rango de IP para que contenga su IP o simplemente seleccione "Anywhere" en el menú desplegable Source, para que sea accesible desde localhost o desde cualquier lugar:

ingrese la descripción de la imagen aquí

Miguel Mota
fuente
Si esto funciona. Mantuve la regla personalizada que estaba allí y agregué una nueva regla que recogió mi dirección IP automáticamente.
MSC
1

Tuve un problema similar al conectarme a postgres. Aunque tuve acceso público verdadero, no pude conectarme.

Agregué una regla de entrada en el grupo de seguridad y ahora funciona perfectamente bien.

ingrese la descripción de la imagen aquí

Abhash Kumar
fuente
0

Solo quería agregar mis hallazgos para ahorrarle tiempo a alguien. Esta solución descrita anteriormente funcionó en una instancia dev ec2, pero después de migrar a un nuevo servidor dejó de funcionar. Resultó que tanto mi instancia RDS como la instancia EC2 estaban en la misma VPC, por lo que la instancia RDS no pudo ver la IP pública que había agregado a su grupo de seguridad. Para que esto funcione, debe agregar al grupo de seguridad de instancias de RDS, la ip privada de la instancia de EC2 que puede encontrar en detalles.

Muhammed Bilal Iqbal
fuente
-1

Después de crear mi instancia de Postgres, mi grupo de seguridad predeterminado (rds-launch-wizard) solo enumeró mi dirección IP, por lo que tuve que agregar un tipo de todo el tráfico y la fuente de cualquier lugar antes de poder conectarme. No soy un experto en redes, pero es extraño que no pueda conectarme con mi propia dirección IP como regla de entrada.

jones-chris
fuente