AWS S3 es la pieza básica de almacenamiento de la nube. Pero mal configurado, los datos críticos quedan expuestos a todo internet. Hemos oído muchas veces titulares del tipo «se ha encontrado un bucket de S3 abierto». En este artículo nos centramos en cómo garantizar la seguridad.
01. Cerrado por defecto
Desde 2018, AWS crea los nuevos buckets cerrados al acceso público por defecto. El ajuste «Block Public Access» debe estar activado tanto a nivel de bucket como de cuenta.
02. IAM y política de bucket
El acceso se controla en dos capas:
- Política IAM: permisos por usuario o rol
- Política de bucket: las reglas propias del bucket
Cuando ambas entran en conflicto, prevalece la más restrictiva.
03. Cifrado
Para los datos en reposo: SSE-S3, SSE-KMS o SSE-C. El más habitual es SSE-KMS: cifrado con las claves KMS de AWS. La rotación de claves puede configurarse de forma automática.
04. Versionado y Object Lock
Versionado: los archivos borrados no se eliminan de verdad, se conservan las versiones anteriores. Object Lock: el modo «WORM» (write once, read many) que impide el borrado durante un periodo determinado.
05. Registros de acceso y GuardDuty
El registro de los accesos a S3 debe estar activo. GuardDuty detecta patrones de acceso anómalos y avisa (por ejemplo, la descarga de 10.000 archivos a las tres de la madrugada).