Introducción
En entornos cloud donde los VPC Endpoints son el canal principal para acceder a servicios de AWS (S3, DynamoDB, SageMaker, etc.), los equipos de seguridad enfrentan un desafío crítico: cómo registrar solo los eventos relevantes sin saturar CloudTrail con ruido. Hasta ahora, CloudTrail generaba registros para todos los eventos de red que pasaban por un VPC Endpoint, incluyendo llamadas exitosas de usuarios y servicios de confianza. Esto no solo incrementaba los costos de almacenamiento —que pueden escalar rápidamente en entornos con alto tráfico—, sino que también dificultaba la detección de eventos sospechosos en medio de miles de entradas irrelevantes.
La novedad que AWS presentó en julio de 2026 cambia este paradigma: CloudTrail ahora permite filtrar eventos de red por identidad IAM usando selectores avanzados en el campo UserIdentity. Esto significa que, por ejemplo, podés configurar CloudTrail para registrar solo los eventos VpceAccessDenied de identidades que no pertenezcan a una lista blanca de IAM Roles o usuarios. La implementación es sencilla y está disponible en todas las regiones donde CloudTrail soporta eventos de red, ya sea desde la consola, CLI o SDKs.
Qué ocurrió
AWS introdujo un nuevo tipo de selector en CloudTrail llamado UserIdentity Filtering para eventos de red (Network Activity Events). Este selector permite definir condiciones basadas en:
- IAM User ARN: Para filtrar por usuarios específicos.
- IAM Role ARN: Para excluir roles de confianza.
- Tipo de identidad: Por ejemplo, distinguir entre un usuario humano (
IAMUser) y un servicio (AssumedRole).
La funcionalidad se integra con los selectores existentes de CloudTrail, como eventName (ej: VpceAccessDenied) o vpcEndpointId, pero ahora con la capacidad de combinarlos con UserIdentity. Por ejemplo:
{
"ReadWriteType": "All",
"NetworkActivityFilters": [
{
"Field": "eventName",
"Equals": ["VpceAccessDenied"]
},
{
"Field": "UserIdentity.Arn",
"NotEquals": [
"arn:aws:iam::123456789012:role/TrustedRole",
"arn:aws:iam::123456789012:user/DevAdmin"
]
}
]
}Este JSON configura CloudTrail para registrar solo los eventos de denegación de acceso a VPC Endpoints donde el usuario no sea ni TrustedRole ni DevAdmin. El resultado es una reducción significativa de logs innecesarios y una mayor claridad en los eventos críticos.
Impacto para DevOps / Infraestructura / Cloud / Seguridad
Para equipos de DevOps e Infraestructura
- Reducción de costos: Según AWS, los clientes que implementan estrategias de data perimeter pueden reducir hasta un 40% los costos de almacenamiento en CloudTrail al filtrar eventos de identidades confiables. Esto es especialmente relevante en entornos con alta actividad en VPC Endpoints, como plataformas de datos con SageMaker o S3 accesible desde VPCs.
- Simplificación de pipelines de logging: Los equipos ya no necesitan procesar y almacenar eventos irrelevantes en herramientas como Splunk, Datadog o AWS OpenSearch, lo que acelera los pipelines de observabilidad.
- Menor latencia en alertas: Al reducir el volumen de logs, los sistemas de detección (ej: GuardDuty, SIEM) procesan eventos críticos más rápido, mejorando el time-to-detect para amenazas.
Para equipos de Seguridad
- Enfoque en amenazas reales: Las estrategias de perimeter security ahora pueden enfocarse en eventos de denegación (
VpceAccessDenied) o intentos de acceso no autorizado desde identidades externas, sin el ruido de tráfico legítimo. - Detección de exfiltración de datos: Los VPC Endpoints son un vector común para exfiltración de datos (ej: un atacante intentando acceder a S3 desde un VPC no autorizado). Esta funcionalidad permite priorizar esos eventos sin llenar los logs de ruido.
- Cumplimiento normativo: Facilita la implementación de controles como los de NIST 800-53 o CIS AWS Foundations, donde se exige registrar solo eventos relevantes para auditorías específicas.
Para equipos de Cloud
- Desacoplamiento de servicios: Los equipos pueden ahora implementar políticas de logging granulares sin depender de servicios externos (ej: herramientas de terceros para filtrar logs).
- Integración con AWS Organizations: La configuración es consistente en todas las cuentas de una organización, lo que simplifica la implementación de políticas globales.
Detalles técnicos
Componentes afectados
- CloudTrail: Versión mínima requerida:
v1.0.47(lanzada el 15/07/2026). Los eventos de red (Network Activity Events) deben estar habilitados previamente. - IAM: Los selectores
UserIdentitysolo funcionan con identidades IAM válidas (no soporta federated users ni AWS Organizations SCPs directamente). - VPC Endpoints: Solo aplica a endpoints de tipo Interface (no a Gateway o GatewayLoadBalancer). Los eventos registrados incluyen:
VpceAccessDenied: Cuando un usuario/rol intenta acceder a un servicio no permitido.– VpceCreateEndpoint: Creación de un nuevo VPC Endpoint.
– VpceDeleteEndpoint: Eliminación de un VPC Endpoint.
Vectores de ataque mitigados
- Acceso no autorizado a buckets S3: Un atacante con credenciales comprometidas intenta acceder a un bucket no listado, generando un
VpceAccessDenied. Con el filtro, solo este evento se registra. - Movimiento lateral: Un rol de EC2 mal configurado intenta acceder a DynamoDB desde un VPC no autorizado. El evento se registra solo si el rol no está en la lista blanca.
Comandos para validar la configuración
- Verificar si el evento de red está habilitado:
aws cloudtrail get-event-selectors --trail-name MyTrail
Debe incluir un selector con "ReadWriteType": "All" y "IncludeManagementEvents": false.
- Configurar el filtro UserIdentity:
aws cloudtrail put-event-selectors \
--trail-name MyTrail \
--event-selectors '[
{
"ReadWriteType": "All",
"NetworkActivityFilters": [
{
"Field": "eventName",
"Equals": ["VpceAccessDenied"]
},
{
"Field": "UserIdentity.Arn",
"NotEquals": [
"arn:aws:iam::123456789012:role/SecureRole"
]
}
]
}
]'
- Validar logs en CloudWatch Logs:
aws logs filter-log-events \
--log-group-name /aws/cloudtrail/MyTrail \
--filter-pattern '{ $.eventName = "VpceAccessDenied" && $.userIdentity.arn != "arn:aws:iam::123456789012:role/SecureRole" }'
Limitaciones conocidas
- No soporta wildcards: Los ARN deben especificarse completos (ej:
arn:aws:iam::*:role/*no funciona). - No aplica retroactivamente: Solo eventos posteriores a la configuración del filtro se registran.
- Costos indirectos: Aunque reduce costos de almacenamiento, los eventos filtrados aún generan CloudTrail Lake queries si se usan herramientas como AWS Lake Formation.
Qué deberían hacer los administradores y equipos técnicos
Paso 1: Auditar eventos de red actuales
- Listar todos los VPC Endpoints en la región:
aws ec2 describe-vpc-endpoints --query "VpcEndpoints[*].VpcEndpointId"
- Verificar logs actuales para identificar volumen y tipo de eventos:
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=VpceAccessDenied \
--max-items 1000
Anotá la cantidad de eventos por usuario/rol.
Paso 2: Diseñar la estrategia de filtrado
- Para equipos de seguridad: Crear una lista blanca de IAM Roles/Users de confianza (ej: roles de CI/CD, servicios internos).
- Para DevOps: Priorizar eventos como:
VpceAccessDenied para identidades externas.– VpceCreateEndpoint/VpceDeleteEndpoint para cambios no autorizados.
Paso 3: Implementar el filtro
- Actualizar CloudTrail:
# Ejemplo para registrar solo eventos de denegación de identidades no confiables
aws cloudtrail put-event-selectors \
--trail-name SecurityTrail \
--event-selectors '[
{
"ReadWriteType": "All",
"NetworkActivityFilters": [
{
"Field": "eventName",
"Equals": ["VpceAccessDenied"]
},
{
"Field": "UserIdentity.Arn",
"NotEquals": [
"arn:aws:iam::111111111111:role/DevRole",
"arn:aws:iam::111111111111:role/CDCRole"
]
}
]
}
]'
- Validar con un evento de prueba:
– Verificar que el evento VpceAccessDenied aparezca en CloudTrail.
Paso 4: Monitorear y ajustar
- Revisar logs filtrados en CloudTrail Lake o CloudWatch después de 24 horas.
- Ajustar la lista blanca si se detectan falsos positivos (ej: roles que deberían estar excluidos).
- Automatizar con AWS Config:
# Ejemplo de regla AWS Config para alertar si un rol no listado intenta acceder
Resources:
- Type: AWS::IAM::Role
Configuration:
Name: UnauthorizedRoleAccess
Rules:
- Name: vpc-endpoint-access-denied
Source:
Owner: AWS
SourceIdentifier: CLOUDTRAIL_NETWORK_ACTIVITY_FILTER
InputParameters:
EventName: VpceAccessDenied
UserIdentityNotIn: ["arn:aws:iam::111111111111:role/TrustedRole"]
Conclusión
La capacidad de filtrar eventos de red en CloudTrail por identidad IAM es un avance clave para equipos que implementan estrategias de data perimeter en AWS. Al reducir el ruido y los costos asociados, los equipos de seguridad pueden enfocarse en lo que realmente importa: detectar accesos no autorizados y exfiltraciones de datos sin el overhead de procesar miles de logs irrelevantes.
Esta funcionalidad refuerza el principio de least privilege en la capa de red y complementa otras herramientas como AWS IAM Access Analyzer o GuardDuty. La implementación es sencilla y escalable, lo que la hace ideal para entornos multi-cuenta en AWS Organizations. El paso crítico ahora es diseñar políticas de filtrado que equilibren seguridad y operatividad, evitando falsos negativos (eventos críticos no registrados) o falsos positivos (demasiados eventos irrelevantes).
