CloudTrail lo ve todo - Mecanismo de registro de llamadas API y práctica de investigación forense
Explicamos cómo CloudTrail registra las llamadas a la API de AWS, las diferencias entre eventos de administración y eventos de datos, el análisis SQL con CloudTrail Lake y las técnicas de investigación forense ante incidentes de seguridad.
¿Qué registra CloudTrail?
CloudTrail es un servicio que registra prácticamente todas las llamadas API ejecutadas dentro de una cuenta de AWS. Se registran las llamadas API desde la consola de administración de AWS, CLI, SDK y otros servicios de AWS, incluyendo el lanzamiento de instancias EC2, la creación de buckets S3, cambios en políticas IAM y el despliegue de funciones Lambda. Cada evento registra quién (userIdentity), cuándo (eventTime), desde dónde (sourceIPAddress), qué (eventName), sobre qué recurso (resources) y cuál fue el resultado (errorCode). Los eventos de CloudTrail se dividen en 2 tipos. Los eventos de administración (Management Events) son operaciones del plano de control como la creación, modificación y eliminación de recursos. Se registran de forma predeterminada y los últimos 90 días se pueden consultar gratuitamente desde la consola. Los eventos de datos (Data Events) son operaciones del plano de datos como lectura/escritura de objetos S3, invocaciones de funciones Lambda y operaciones de ítems en DynamoDB. Los eventos de datos generan un gran volumen, por lo que no se registran de forma predeterminada y deben habilitarse explícitamente.
Mecanismo de entrega de eventos de CloudTrail
Los eventos de CloudTrail se entregan normalmente dentro de 5 a 15 minutos después de ejecutarse la llamada API. Es importante tener en cuenta que no es en tiempo real. Hay 3 destinos de entrega de eventos. Primero, la consola de CloudTrail (historial de eventos). Los eventos de administración de los últimos 90 días se pueden consultar gratuitamente con filtrado y búsqueda. Segundo, un bucket S3. Al crear un trail, los eventos se entregan en formato JSON a un bucket S3. Los logs almacenados en S3 se pueden analizar ejecutando consultas SQL con Athena. Tercero, CloudTrail Lake (ya no acepta nuevos clientes desde el 31 de mayo de 2026). Introducido en 2022, CloudTrail Lake es un servicio administrado que almacena eventos en un almacén de datos dedicado y permite consultas SQL directas. Comparado con la combinación S3 + Athena, la configuración requiere menos esfuerzo. Los logs de CloudTrail cuentan con funcionalidad de detección de manipulación. Al habilitar la validación de integridad de archivos de log (Log File Integrity Validation), se registran los valores hash de cada archivo de log en archivos digest, permitiendo verificar criptográficamente que los logs no han sido manipulados.
Práctica de investigación forense - Rastreo de accesos no autorizados
Cuando ocurre un incidente de seguridad, CloudTrail es una de las principales fuentes de evidencia. Por ejemplo, mostramos el procedimiento de investigación al recibir una alerta de que "se han lanzado instancias EC2 desconocidas". Primero, busque eventos RunInstances en CloudTrail para identificar quién y cuándo lanzó la instancia. Del campo userIdentity se obtiene el nombre de usuario IAM, nombre del rol e ID de clave de acceso. Luego, busque en CloudTrail con ese ID de clave de acceso para identificar otras llamadas API realizadas con las mismas credenciales. Accesos a buckets S3, cambios en políticas IAM, modificaciones de grupos de seguridad: emerge el panorama completo de las acciones del atacante. Del campo sourceIPAddress se puede identificar la dirección IP del atacante. Sin embargo, si se usa VPN o Tor, la dirección IP por sí sola no permite identificar al atacante. El campo userAgent contiene información sobre la herramienta utilizada (AWS CLI, SDK, consola, etc.), proporcionando pistas para estimar el método de ataque.
Lo que CloudTrail no registra
CloudTrail es poderoso, pero no registra absolutamente todo. Conocer lo que no se registra es importante para el diseño de seguridad. Primero, las operaciones a nivel de SO. Si se conecta por SSH a una instancia EC2 y manipula archivos, no se registra en CloudTrail. Para auditoría a nivel de SO se necesita CloudWatch Agent o los logs de sesión de AWS Systems Manager Session Manager. Segundo, las operaciones de objetos S3 cuando los eventos de datos no están habilitados. Si se descargan archivos de un bucket S3 pero los eventos de datos están deshabilitados, no se registra. En los buckets que contienen datos sensibles, habilitar los eventos de datos permite registrar también estas operaciones. Tercero, algunas API de solo lectura. Las API de lectura como DescribeInstances se registran como eventos de administración, pero al ser llamadas en gran volumen, su visualización puede omitirse en la consola de CloudTrail. En los logs entregados a S3 se registran. Cuarto, la comunicación interna entre servicios de AWS. Cuando un servicio de AWS llama internamente a otro servicio, parte de esas llamadas no se registra en CloudTrail.
Optimización de costos de CloudTrail
Los eventos de administración de CloudTrail son gratuitos para el primer trail. A partir del segundo trail, se cobran 2.00 USD por cada 100,000 eventos (a fecha de octubre de 2026). Los eventos de datos cuestan 0.10 USD por cada 100,000 eventos. En entornos a gran escala, los eventos de datos de S3 pueden generar volúmenes enormes, resultando en cargos elevados por eventos de datos. Hay varias formas de optimizar costos. Primero, limitar el alcance de los eventos de datos. En lugar de registrar eventos de datos de todos los buckets S3, limítelos solo a buckets que contienen datos sensibles. Segundo, configurar apropiadamente el período de retención de CloudTrail Lake. Con los precios de retención de siete años, los 7 años de retención están incluidos en el costo de ingesta; con los precios de retención ampliable de un año, la retención más allá del primer año tiene un cargo aparte. Con los precios de retención ampliable de un año, limitar el período de retención a 1 o 3 años según los requisitos de cumplimiento permite contener los cargos de retención. Tercero, gestionar el período de retención de los logs entregados a S3 con reglas de ciclo de vida de S3. Configurar reglas para migrar a Glacier después de 90 días y eliminar después de 1 año puede reducir el costo de conservar los logs.
Referencias (recursos oficiales de AWS)
Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.
- AWS CloudTrail (página oficial)
- Amazon Detective (página oficial)
- AWS Security Hub (página oficial)
- Documentación de AWS (oficial)
Si esta página y la documentación oficial difieren, prevalece la documentación oficial.