Configuración de Postgres RDS con VPC y seguridad
Clase 16 de 30 • Curso de Ciberseguridad para Desarrollo Web
Contenido del curso
Funciona en mi local
Introducción a DevSecOps
Seguridad en la arquitectura
- 11

Arquitectura AWS para métricas de Git
02:24 min - 12

Configuración de AWS CLI para Terraform
09:34 min - 13

Terraform IAM: roles y policies automáticos
17:44 min - 14

Modificando main.tf para enlazar módulos IAM en Terraform
06:02 min - 15

Bucket S3 para Lambdas con Terraform
16:44 min - 16

Configuración de Postgres RDS con VPC y seguridad
Viendo ahora - 17

Configurando VPC para AWS Lambda con Terraform
12:29 min - 18

Cómo configurar API Gateway para Lambdas
05:42 min
Evitando vulnerabilidades en el código
- 19

Configuración completa de Auth0 para tokens
07:14 min - 20

Authorizer Lambda con Auth0 y JWT
16:56 min - 21

Conecta Go a Postgres usando AWS Secrets
13:35 min - 22

Conexión segura de Lambdas a Secrets con VPC
11:27 min - 23

Validación de webhooks desde GitHub con user-agent
12:08 min - 24

Cómo validar integridad de webhooks con HMAC
14:32 min
Controles de seguridad sobre datos
Monitoring y alertas
CORS y cierre
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.