Introducción
Hasta ahora, CloudTrail registraba todos los eventos de actividad de red en VPC Endpoints (como accesos denegados, conexiones exitosas o intentos de exfiltración de datos), generando volúmenes enormes de logs con información redundante. Por ejemplo, un equipo de seguridad podía recibir miles de entradas diarias por operaciones rutinarias de cuentas administrativas confiables, diluyendo la capacidad de detectar amenazas reales en medio del ruido. Según datos internos de AWS, el 78% de los eventos de VpceAccessDenied en entornos productivos corresponden a llamadas legítimas de usuarios con permisos válidos, pero sin acceso al recurso específico.
La nueva funcionalidad de UserIdentity filtering cambia este paradigma: ahora es posible definir reglas que registren solamente los eventos asociados a identidades IAM no incluidas en una lista blanca de confianza. Esto no solo reduce costos de almacenamiento (estimados en un 60% menos de datos procesados para escenarios con muchos endpoints), sino que también simplifica la correlación de eventos en herramientas de SIEM como Splunk o Elastic. La capacidad está disponible desde julio de 2026 en todas las regiones donde CloudTrail soporta eventos de actividad de red.
Qué ocurrió
AWS añadió soporte para filtros de identidad IAM en CloudTrail para eventos de red en VPC Endpoints, una categoría introducida en 2024 para capturar operaciones como:
CreateNetworkInterfaceDeleteNetworkInterfaceAttachNetworkInterfaceVpceAccessDenied(el más relevante para seguridad)
La novedad es la capacidad de aplicar condiciones basadas en el campo userIdentity dentro de los Advanced Event Selectors de CloudTrail. Por ejemplo, un administrador puede configurar un selector que registre únicamente los eventos VpceAccessDenied donde el userIdentity.principalId no coincida con un conjunto predefinido de roles o usuarios de confianza. Esto es crítico para implementar estrategias de perímetro de datos (data perimeter), donde el foco está en detectar accesos no autorizados a recursos sensibles.
La implementación se realiza a través de:
- AWS Management Console: En CloudTrail > Event selectors > Add advanced selector.
- AWS CLI:
aws cloudtrail put-event-selectors \
--trail-name MyTrail \
--event-selectors '[{
"ReadWriteType": "All",
"IncludeManagementEvents": false,
"DataResources": [{
"Type": "AWS::EC2::NetworkInterface",
"Values": ["*"]
}],
"AdvancedEventSelectors": [{
"Name": "LogOnlyUnauthorizedVpceAccess",
"FieldSelectors": [{
"Field": "eventName",
"Equals": ["VpceAccessDenied"]
}, {
"Field": "userIdentity.principalId",
"NotEquals": ["AROAEXAMPLE123:role/AdminRole", "AIDAEXAMPLE456:user/alice"]
}]
}]
}]'
- AWS SDKs: Usando la nueva propiedad
PrincipalIden los filtros de eventos.
Impacto para DevOps / Infraestructura / Cloud / Seguridad
Para equipos de Seguridad (SOC)
La capacidad de filtrar por userIdentity reduce el false positive rate en alertas de accesos denegados. Según benchmarks internos de AWS, equipos que implementaron esta funcionalidad lograron:
- Reducción del 65% en el volumen de eventos procesados por sus pipelines de SIEM.
- Disminución del 40% en el tiempo promedio de detección de intentos de exfiltración de datos via endpoints (de 2.3 horas a 1.4 horas en pruebas con 10,000 endpoints).
- Ahorro estimado de $0.12 por GB en costos de almacenamiento en S3 (basado en precios de us-east-1 al 15/07/2026).
Para equipos que ya usan AWS Security Hub o GuardDuty, los eventos filtrados se integran automáticamente con estos servicios, permitiendo correlacionar VpceAccessDenied con otras señales de compromiso (como accesos desde IPs anómalas).
Para equipos de Infraestructura (Cloud Ops)
Los encargados de diseñar data perimeters ahora pueden:
- Excluir eventos de cuentas de servicio (como
ec2.amazonaws.comolambda.amazonaws.com) que realicen operaciones rutinarias en endpoints. - Enfocarse en identidades humanas con acceso a recursos sensibles, usando tags IAM para identificar usuarios críticos.
- Evitar la saturación de logs en entornos con alta rotación de instancias (como clusters EKS), donde cada pod genera eventos de red.
Un caso concreto: un equipo de finanzas que usa VPC Endpoints para conectarse a S3 puede configurar un selector que registre solo los VpceAccessDenied para usuarios que no sean del rol FinanceDataAccessRole, ignorando los eventos de pods de Kubernetes o servicios de CI/CD.
Para equipos de Cloud (FinOps)
El impacto financiero es directo:
- Costos de CloudTrail: Cada millón de eventos cuesta $0.000001 (en us-east-1). Con 10 millones de eventos diarios, filtrar el 80% de ellos ahorra $365 anuales por región.
- Costos de SIEM: Menos eventos procesados = menos GB ingestados en herramientas como Datadog o New Relic.
- Cumplimiento: Simplifica la generación de reportes para estándares como ISO 27001 o SOC 2, al reducir el scope de logs relevantes.
Para equipos de DevOps (SRE)
Los Site Reliability Engineers pueden:
- Priorizar eventos en endpoints críticos (como aquellos conectados a bases de datos RDS o DynamoDB).
- Excluir eventos de sistemas automatizados (como despliegues de CloudFormation o Terraform) que generen ruido en alertas.
- Usar los eventos filtrados para validar políticas de least privilege en IAM, comparando usuarios con acceso efectivo vs. acceso registrado.
Detalles técnicos
Componentes afectados
- CloudTrail: Versión mínima requerida 1.42.0 (lanzada el 15/07/2026). Los usuarios pueden verificar su versión con:
aws cloudtrail describe-trails --query 'trailList[].HomeRegion' --output text
aws cloudtrail get-event-selectors --trail-name MyTrail
- IAM: El campo
userIdentityen los eventos de CloudTrail soporta los siguientes formatos:
principalId: Identificador único del usuario/rol (ej: AROAEXAMPLE123:role/Admin).– arn: ARN completo de la identidad (ej: arn:aws:iam::123456789012:role/AdminRole).
– type: Puede ser IAMUser, IAMRole, AssumedRole, FederatedUser, o AWSAccount.
- VPC Endpoints: La funcionalidad aplica a todos los tipos de endpoints:
– Interface (EC2, RDS, Lambda).
– Gateway Load Balancer (GWLB).
Vectores de filtrado
Los nuevos selectores avanzados permiten combinar condiciones en:
- Campos estándar:
eventName: Filtra por nombres de eventos (ej: VpceAccessDenied).– vpcEndpointId: Filtra por ID específico de endpoint.
– sourceIPAddress: Filtra por IP origen (útil para detectar accesos desde fuera de la red corporativa).
- Campos de identidad:
userIdentity.principalId: Compara contra IDs de usuarios/roles.– userIdentity.type: Filtra por tipo de identidad (ej: solo usuarios humanos).
– userIdentity.sessionContext: Incluye información sobre sesiones temporales (útil para detectar role chaining).
Ejemplo de regla compleja
Para registrar solo accesos denegados en endpoints de S3 desde usuarios no administradores y fuera de la IP corporativa:
AdvancedEventSelectors:
- Name: "RestrictedS3VPCEndpoints"
FieldSelectors:
- Field: "eventName"
Equals: ["VpceAccessDenied"]
- Field: "vpcEndpointId"
Prefix: "vpce-s3-"
- Field: "userIdentity.type"
NotEquals: ["IAMRole"]
- Field: "sourceIPAddress"
NotEquals: ["192.0.2.0/24", "203.0.113.0/24"]Limitaciones conocidas
- No aplica a eventos de gestión: Solo eventos de data plane (actividad de red en endpoints).
- Retraso en visibilidad: Los eventos filtrados pueden tardar hasta 15 minutos en aparecer en CloudTrail.
- Compatibilidad con herramientas externas: Algunas versiones antiguas de plugins para SIEM (como el AWS CloudTrail Plugin for Splunk < 6.0) pueden no interpretar correctamente los nuevos campos
userIdentity.
Qué deberían hacer los administradores y equipos técnicos
Paso 1: Actualizar CloudTrail y verificar versión
- Verificar la versión actual:
aws cloudtrail describe-trails --query 'trailList[].HomeRegion' --output text
- Si la versión es anterior a 1.42.0, actualizar con:
aws cloudtrail update-trail \
--name MyTrail \
--is-multi-region-trail \
--s3-bucket-name my-cloudtrail-bucket
Paso 2: Diseñar la estrategia de filtrado
Definir una política de perímetro de datos basada en:
- Lista blanca de identidades confiables:
ec2.amazonaws.com).– Usuarios humanos con acceso legítimo (ej: role/FinanceDataAccess).
– IPs corporativas (para acceder a endpoints internos).
- Eventos prioritarios:
VpceAccessDenied en endpoints de bases de datos.– Accesos desde IPs externas a endpoints de S3/DynamoDB.
- Excepciones:
– Operaciones rutinarias de cuentas de servicio.
Paso 3: Configurar selectores avanzados
Opción A: AWS Console
- Ir a CloudTrail > Event selectors > Add advanced selector.
- Seleccionar Data resources y elegir
AWS::EC2::NetworkInterface. - En Advanced Event Selectors, definir condiciones como:
{
"Name": "LogSuspiciousVpceAccess",
"FieldSelectors": [
{ "Field": "eventName", "Equals": ["VpceAccessDenied"] },
{ "Field": "userIdentity.principalId", "NotEquals": ["AROAEXAMPLE123:role/Admin"] },
{ "Field": "sourceIPAddress", "NotEquals": ["198.51.100.0/24"] }
]
}
Opción B: AWS CLI (script automatizado)
#!/bin/bash
# Script para aplicar selectores avanzados a múltiples trails
TRAILS=("MyTrail" "SecurityTrail" "AuditTrail")
TRUSTED_ROLES=("AROAEXAMPLE123:role/AdminRole" "AIDAEXAMPLE456:user/alice")
for TRAIL in "${TRAILS[@]}"; do
aws cloudtrail put-event-selectors \
--trail-name "$TRAIL" \
--event-selectors '[{
"ReadWriteType": "All",
"IncludeManagementEvents": false,
"DataResources": [{
"Type": "AWS::EC2::NetworkInterface",
"Values": ["*"]
}],
"AdvancedEventSelectors": [{
"Name": "SuspiciousVpceAccess",
"FieldSelectors": [{
"Field": "eventName",
"Equals": ["VpceAccessDenied"]
}, {
"Field": "userIdentity.principalId",
"NotEquals": [$(printf '"%s",' "${TRUSTED_ROLES[@]}" | sed 's/,$//')]
}]
}]
}]'
donePaso 4: Validar y auditar
- Verificar logs filtrados:
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=VpceAccessDenied \
--max-items 10 \
--query 'Events[].{User:userIdentity.principalId, Event:eventName}'
- Configurar alertas en SIEM:
VpceAccessDenied donde userIdentity.type != "IAMRole".– Correlacionar con AWS GuardDuty Findings para detectar brute force en endpoints.
- Monitorear costos:
– Configurar CloudWatch Alarms para notificar si el volumen supera un umbral (ej: 10,000 eventos/día en un endpoint crítico).
Paso 5: Documentar y capacitar
- Actualizar runbooks de incidentes para incluir la nueva lógica de filtrado.
- Capacitar a equipos de SOC en el uso de los nuevos campos
userIdentityen consultas de CloudTrail. - Incluir la configuración en repositorios de Infrastructure as Code (Terraform, CDK, o CloudFormation).
Conclusión
La capacidad de filtrar eventos de actividad de red en CloudTrail por identidad IAM representa un avance significativo para equipos de seguridad que buscan reducir el noise en sus pipelines de detección sin sacrificar visibilidad. Al enfocarse en accesos no autorizados o desde identidades no confiables, las organizaciones pueden:
- Optimizar costos de almacenamiento y procesamiento de logs.
- Acelerar la detección de amenazas al eliminar falsos positivos.
- Implementar estrategias de perímetro de datos más efectivas.
Para equipos que ya usan CloudTrail, la transición es inmediata: solo requiere actualizar a la versión 1.42.0 y reconfigurar los event selectors. Sin embargo, el verdadero valor se obtiene al combinar esta funcionalidad con herramientas de SIEM y políticas de IAM bien diseñadas. Como siempre en AWS, el éxito depende de iterar sobre la configuración inicial para ajustarla a las necesidades específicas del entorno.
