Saltar al contenido

¿Cómo uso los campos de etiquetas y de próximo salto (next-hop) de VPC Flow Logs para identificar cargas de trabajo y rastrear rutas de tráfico?

6 minutos de lectura
Nivel de contenido: Avanzado
0

El 10 de junio de 2026, Amazon VPC Flow Logs introdujo dos nuevas categorías de metadatos: etiquetas de recursos EC2 y metadatos de la interfaz de próximo salto (next-hop). Estos campos incorporan la identidad de la carga de trabajo y la información de la ruta del tráfico directamente en los registros de flow logs, eliminando la necesidad de correlacionar manualmente los logs con fuentes de metadatos separadas.

Enter image description here

Descripción breve

La versión 11 de VPC Flow Logs agrega dos categorías de campos:

Campos de etiquetas de recursos EC2: Incorporan los valores de etiquetas de instancias, interfaces de red y grupos de Auto Scaling directamente en cada registro de flujo.

${instance-tag}       Valor de la 1ª etiqueta de la instancia
${instance-tag-2}     Valor de la 2ª etiqueta de la instancia
${interface-tag}      Valor de la 1ª etiqueta de la interfaz de red
${interface-tag-2}    Valor de la 2ª etiqueta de la interfaz de red
${asg-tag}            Valor de la 1ª etiqueta del grupo de auto-scaling
${asg-tag-2}          Valor de la 2ª etiqueta del grupo de auto-scaling

Campos de metadatos de próximo salto (Next-Hop): Muestran qué recurso intermedio (NAT Gateway, VPC Endpoint, NLB, TGW) gestionó cada flujo.

${next-hop-interface-id}     ID de ENI del próximo salto
${next-hop-subnet-id}        Subred del próximo salto
${next-hop-az-id}            Zona de Disponibilidad del próximo salto
${next-hop-vpc-id}           VPC del próximo salto
${next-hop-interface-type}   nat_gateway | network_load_balancer | regional_nat_gateway | transit_gateway | vpc_endpoint

Resolución

Paso 1: Crear un flow log con los nuevos campos

Los campos de etiquetas requieren un parámetro TagFieldSpecifications que asigna cada posición de campo de etiqueta a una clave de etiqueta específica. El siguiente ejemplo usa boto3; también puedes crear el flow log desde la consola de VPC.

import boto3

ec2 = boto3.client('ec2', region_name='us-east-1')

response = ec2.create_flow_logs(
    ResourceIds=['vpc-0a1b2c3d4e5f67890'],
    ResourceType='VPC',
    TrafficType='ALL',
    LogDestinationType='cloud-watch-logs',
    LogGroupName='/vpc/flow-logs',
    DeliverLogsPermissionArn='arn:aws:iam::ACCOUNT_ID:role/VPCFlowLogsRole',
    LogFormat='${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status} ${instance-tag} ${instance-tag-2} ${interface-tag} ${next-hop-interface-id} ${next-hop-interface-type} ${next-hop-az-id}',
    TagFieldSpecifications=[
        {
            'ResourceType': 'instance',
            'TagKeys': ['Name', 'Environment']
        },
        {
            'ResourceType': 'network-interface',
            'TagKeys': ['Name']
        }
    ]
)

Nota: Los campos de etiquetas requieren los permisos ec2:DescribeTags e iam:CreateServiceLinkedRole. Se crean automáticamente un Rol Vinculado al Servicio (Service Linked Role) y Reglas Gestionadas de EventBridge.

Paso 2: Leer los registros del flow log

Una vez que el flow log está activo y el tráfico fluye, los registros aparecen en CloudWatch Logs. Los siguientes ejemplos muestran cómo se ven los nuevos campos para distintos tipos de tráfico:

# Salida a internet vía NAT Gateway:
11 338797193989 eni-0cd6c73986ed7a21c 10.50.2.131 8.8.8.8 0 0 1 3 252 1784235370 1784235383 ACCEPT OK flowlogs%2Dtest%2Dinstance production flowlogs%2Dtest%2Deni eni-0071b16f98b585221 nat_gateway use1-az6

# Salida a VPC Endpoint:
11 338797193989 eni-0cd6c73986ed7a21c 10.50.2.131 10.50.2.102 56160 443 6 82 103814 1784235370 1784235383 ACCEPT OK flowlogs%2Dtest%2Dinstance production flowlogs%2Dtest%2Deni eni-03c36206818484c86 vpc_endpoint use1-az6

# Entrada desde VPC Endpoint — el próximo salto muestra la ENI que envía:
11 338797193989 eni-0cd6c73986ed7a21c 10.50.2.102 10.50.2.131 443 56160 6 80 4160 1784235370 1784235383 ACCEPT OK flowlogs%2Dtest%2Dinstance production flowlogs%2Dtest%2Deni eni-03c36206818484c86 vpc_endpoint use1-az6

# Entrada desde internet — el próximo salto es '-' (IGW no tiene ENI):
11 338797193989 eni-0cd6c73986ed7a21c 8.8.8.8 10.50.2.131 0 0 1 3 252 1784235370 1784235383 ACCEPT OK flowlogs%2Dtest%2Dinstance production flowlogs%2Dtest%2Deni - - -

Orden de los campos: version account-id interface-id srcaddr dstaddr srcport dstport protocol packets bytes start end action log-status instance-tag instance-tag-2 interface-tag next-hop-interface-id next-hop-interface-type next-hop-az-id

Paso 3: Interpretar el comportamiento del próximo salto

Tipo de tráficonext-hop-interface-typeSignificado
Salida a internetnat_gatewayEl tráfico sale por el NAT GW
Salida a VPC Endpointvpc_endpointEl tráfico va al endpoint de SSM/S3/etc.
Entrada desde VPC Endpointvpc_endpointMuestra la ENI que envió el tráfico
Entrada desde internet-IGW no tiene ENI — campo no disponible

Importante:

  • Los valores de las etiquetas están codificados en porcentaje UTF-8 (los guiones se convierten en %2D: flowlogs-test-instanceflowlogs%2Dtest%2Dinstance).
  • Las etiquetas pueden mostrar - durante la primera hora tras crear la suscripción.
  • El próximo salto muestra - cuando el último salto no tiene ENI (IGW) o para tráfico de entrada desde algunos servicios (TGW, NLB).

Limitaciones

Campos de etiquetas de recursos EC2:

  • Máximo 2 claves de etiqueta por tipo de recurso.
  • Las etiquetas no se calculan para recursos que pertenecen a otra cuenta (subredes compartidas).
  • Se crean automáticamente un Rol Vinculado al Servicio y Reglas Gestionadas de EventBridge; no los elimines manualmente.
  • Las etiquetas de ASG requieren al menos un rastro (trail) de CloudTrail habilitado.
  • Las etiquetas pueden faltar durante la primera hora tras la creación.

Campos de próximo salto:

  • No disponibles cuando el próximo salto no tiene ENI (p. ej., IGW).
  • No disponibles para tráfico entre regiones.
  • No disponibles para tráfico de entrada desde algunos servicios (TGW, NLB).
  • No se calculan si la ENI del próximo salto pertenece a otra cuenta (excepto next-hop-az-id).
  • Para middle-boxes, muestra la ENI del middle-box, no el destino final.

Conclusión

Con el soporte de etiquetas de recursos EC2, puedes incorporar los valores de etiquetas de tus interfaces de red, instancias EC2 y grupos de auto scaling. Esto elimina la necesidad de unir los datos de flow logs con metadatos de etiquetas por separado para correlacionar los registros con cargas de trabajo específicas. Con el soporte de metadatos de próximo salto, puedes capturar detalles sobre la interfaz de red del próximo salto para cada flujo, incluidos su ID de interfaz, subred, Zona de Disponibilidad, VPC y tipo de interfaz. Estos campos te ayudan a entender cómo el tráfico atraviesa recursos de red como NAT Gateways, Network Load Balancers y Transit Gateways sin requerir la correlación manual de múltiples fuentes de datos.


Información relacionada

[1] Amazon VPC Flow Logs introduces additional metadata (What's New)

[2] VPC Flow Log records — Available fields

[3] Publishing flow logs to CloudWatch Logs

[4] VPC Flow Logs limitations

[5] How do I set up VPC flow logs?

[6] How do I troubleshoot VPC flow logs?

AWS
INGENIERO DE SOPORTE

publicado hace 24 días43 visualizaciones