Créditos: Este artículo está basado en las experiencias de Maciej Pocwierz, quien compartió su historia en un post de blog detallando cómo terminó con una factura exorbitante de AWS debido a un bucket S3 vacío.
Antecedentes
Maciej estaba trabajando en una prueba de concepto (PoC) de un sistema de indexación de documentos para un cliente. Creó un único bucket S3 en la región eu-west-1
y subió algunos archivos allí para realizar pruebas. Dos días después, al revisar su factura de AWS, se encontró con un cargo de más de $1,300, ¡con casi 100,000,000 solicitudes PUT a S3 ejecutadas en un solo día!
Al habilitar los registros de AWS CloudTrail, observó que miles de solicitudes de escritura provenían de múltiples cuentas de terceros. Después de investigar, descubrió que una popular herramienta de código abierto tenía una configuración predeterminada para almacenar sus copias de seguridad en un bucket S3, utilizando el mismo nombre que Maciej había elegido para su bucket.
El problema y las lecciones aprendidas
AWS cobra por solicitudes no autorizadas (errores 4xx) a S3: Esto significa que si alguien intenta acceder a tu bucket S3 sin tener los permisos adecuados, aún así se te cobrará por esas solicitudes fallidas.
Las solicitudes S3 sin región específica se redirigen a
us-east-1
: Si no especificas la región AWS al realizar solicitudes a S3, estas se redirigen aus-east-1
por defecto, lo que genera cargos adicionales por la redirección.Usar nombres de bucket cortos y comunes aumenta el riesgo: Maciej encontró que al abrir brevemente su bucket para escritura pública, en menos de 30 segundos recibió más de 10GB de datos. Esto demuestra que los nombres de bucket cortos y comunes son vulnerables a fugas de datos debido a configuraciones incorrectas de terceros.
Lecciones y recomendaciones
- Agrega sufijos aleatorios a los nombres de tus buckets S3 para reducir la probabilidad de colisiones con herramientas mal configuradas.
- Especifica siempre la región AWS al realizar solicitudes a S3 para evitar cargos por redirección.
- Monitorea de cerca tu factura de AWS y habilita las alertas de facturación para detectar cargos inesperados.
- Reporta problemas de seguridad a los proveedores de herramientas y servicios afectados para que puedan abordar las configuraciones predeterminadas inseguras.
Esperamos que esta historia de Maciej Pocwierz te concientice sobre los riesgos potenciales en AWS S3 y te ayude a evitar facturas inesperadas y problemas de seguridad similares.