Configuración de Postgres RDS con VPC y seguridad

Clase 16 de 30Curso de Ciberseguridad para Desarrollo Web

Resumen

Configura una base de datos Postgres en AWS RDS con seguridad real: aislamiento en VPC, cifrado SSL, credenciales seguras y reglas de acceso precisas. Aquí verás los pasos clave para crear la instancia, restringir el tráfico al puerto 5432 y conectarte con pgAdmin usando AWS Secrets Manager.

¿Cómo aislar la base de datos en una VPC segura?

Aislar recursos en una VPC evita exposición innecesaria a internet. La VPC por defecto de AWS incluye subnets, tabla de enrutamiento, conexiones de red y una lista de control de acceso. Al ubicar RDS dentro de esta red, los recursos quedan aislados del resto de la red pública.

¿Qué rol cumplen Security Groups y listas de control de acceso?

  • Crea un Security Group dedicado a la base de datos. Nombre sugerido: Database sec group.
  • Añade una regla de entrada para Postgres que limite el puerto 5432.
  • Define el Source como tu IP con CIDR /32. Solo esa IP exacta tendrá acceso.
  • Evita 0.0.0.0/0. AWS alerta con un warning porque expone la base de datos a todo público.
  • Mantén reglas de salida por defecto si no necesitas restricciones adicionales.

¿Cómo obtener tu IP pública y limitar el acceso?

  • En Windows ejecuta:
ipconfig
  • En Mac y Linux ejecuta:
curl ifconfig.me
  • Copia la IP y configúrala como Source con máscara /32. Así controlas el acceso de manera estricta.

¿Cómo crear una instancia RDS Postgres en el free tier?

Elige Standard Create para más control. Selecciona el motor Postgres y permanece en el free trial para evitar costos, deshabilitando opciones como multi-AZ. Define un identificador para la instancia y un usuario principal (ejemplo: Platzi).

¿Qué configurar en conectividad y cifrado?

  • Instancia: tipo db.t3.micro (free tier), almacenamiento por defecto.
  • Conectividad: usa la VPC default y su grupo de subnets. Marca “publicly accessible” si necesitas conectar desde tu equipo.
  • Seguridad: asocia el Security Group creado y quita el default para que apliquen solo tus reglas.
  • Cifrado en tránsito: RDS expone un certificado para SSL y cifrar el tráfico.
  • Opcionales: desactiva Performance Insights si buscas mantenerte en el nivel gratuito.

¿Qué credenciales usar sin exponer secretos?

  • Activa manejo de credenciales por AWS Secrets Manager.
  • Usuario y contraseña quedan en un secreto cifrado con la clave de AWS.
  • Beneficio: las lambdas podrán leer credenciales sin exponerlas en texto plano.
  • Base de datos inicial: define el nombre (ejemplo: Postgres).
  • Ajustes operativos: puedes desactivar backups y maintenance para simplificar en entornos de prueba.

¿Cómo conectarte con pgAdmin y validar con una tabla Commits?

Con la instancia activa, copia el endpoint de RDS. En pgAdmin, usa Register Server, pon un nombre (ejemplo: platziCourse) y completa: - Host: el endpoint de RDS. - Puerto: 5432 (por defecto en Postgres). - Database: Postgres (la inicial definida). - Usuario: el que configuraste (ejemplo: Platzi). - Contraseña: obténla desde Secrets con “retrieve secret value”.

¿Qué pasos seguir para crear la tabla y comprobar la conexión?

  • Abre la Query Tool en el schema público.
  • Crea la tabla “Commits” con columnas como id, repo name, commit id y commit messages, según tu estructura de datos.
  • Ejecuta el comando de creación. Refresca “Tables” y verifica que “Commits” exista.
  • Realiza una consulta de verificación (por ejemplo, seleccionar todo) para confirmar acceso correcto.
  • Nota: puedes generar el SQL a partir de la estructura de Golang con herramientas como Gemini o ChatGPT, evitando escribir SQL manualmente.

¿Qué buenas prácticas refuerzan la seguridad y el aislamiento?

  • Mantener RDS en VPC y controlar entrada con Security Groups.
  • Usar CIDR /32 para permitir solo tu IP.
  • Habilitar SSL para cifrar el tráfico.
  • Guardar credenciales en Secrets Manager.
  • Exponer públicamente solo si es estrictamente necesario y siempre con reglas restrictivas.

¿Quieres que profundicemos en conectar tus lambdas a la VPC con Terraform o en opciones como RDS Proxy y ElastiCache? Deja tus preguntas en los comentarios.

      Configuración de Postgres RDS con VPC y seguridad