Logs de flujo de VPC - Amazon Virtual Private Cloud

Logs de flujo de VPC

Los logs de flujo de VPC son una característica que permite capturar información acerca del tráfico IP que entra y sale de las interfaces de red en la VPC. Los datos del registro de flujo se pueden publicar en Amazon CloudWatch Logs o Amazon S3. Una vez creado un log de flujo, puede recuperarlo y ver sus datos en el destino elegido.

Los logs de flujo pueden ayudarle en una serie de tareas, tales como:

  • Diagnosticar reglas de grupo de seguridad muy restrictivas

  • Monitorizar el tráfico que llega a su instancia

  • Determinar la dirección del tráfico hacia y desde las interfaces de red

Los datos de registro de flujo se recopilan fuera de la ruta del tráfico de red y, por lo tanto, no afectan al rendimiento ni a la latencia de la red. Puede crear o eliminar registros de flujo sin ningún riesgo de impacto en el rendimiento de la red.

Conceptos básicos de logs de flujo

Puede crear un log de flujo para una VPC, una subred o una interfaz de red. Si crea un log de flujo para una subred o VPC, se supervisará cada interfaz de red de la VPC o la subred.

Los datos de logs de flujo de una interfaz de red monitoreada se registran como registros de logs de flujo, que son eventos de registro que constan de campos que describen el flujo de tráfico. Para obtener más información, consulte Registros de log de flujo.

Para crear un log de flujo, especifique:

  • El recurso para el que desea crear el log de flujo

  • El tipo de tráfico que capturar (tráfico aceptado, tráfico rechazado o todo el tráfico)

  • Los destinos a los que desea publicar los datos de log de flujo

En el ejemplo siguiente, se crea una entrada de registro (fl-aaa) que captura el tráfico aceptado para la interfaz de red para la instancia A1 y publica las entradas de registro de flujo en un bucket de Amazon S3. Se crea una segunda entrada de registro de flujo que captura todo el tráfico de la subred B y publica las entradas de registro de flujo en Amazon CloudWatch Logs. El log de flujo (fl-bbb) captura el tráfico de todas las interfaces de red de la subred B. No hay logs de flujo que capturen tráfico, por ejemplo, la interfaz de red de A2.


                Registros de flujo para una subred y una instancia

Tras haber creado un log de flujo, pueden transcurrir varios minutos hasta que se empiecen a recopilar datos y a publicarse en los destinos elegidos. Los logs de flujo no capturan los flujos de logs en tiempo real de las interfaces de red. Para obtener más información, consulte Crear un log de flujo.

Si lanza más instancias en la subred después de haber creado un registro de flujo para la subred o la VPC, se crea una nueva secuencia de registros (para CloudWatch Logs) o un objeto de archivo de registros (para Amazon S3) para cada nueva interfaz de red. Esto ocurre en cuanto se registre tráfico de red para esa interfaz de red.

Puede crear registros de flujo para interfaces de red creadas por otros servicios de AWS, por ejemplo:

  • Elastic Load Balancing

  • Amazon RDS

  • Amazon ElastiCache

  • Amazon Redshift

  • Amazon WorkSpaces

  • Gateways NAT

  • Gateways de tránsito

Con independencia del tipo de interfaz de red, debe utilizar la consola de Amazon EC2 o la API de Amazon EC2 para crear un registro de flujo para una interfaz de red.

Puede aplicar etiquetas a los registros de flujo. Cada etiqueta está formada por una clave y un valor opcional, ambos definidos por el usuario. Las etiquetas pueden ayudarle a organizar los registros de flujo, por ejemplo, por finalidad o propietario.

Si ya no necesita un log de flujo, puede eliminarlo. La eliminación de un registro de flujo desactiva el servicio del registro de flujo para el recurso y no se crean nuevas entradas de registros ni se publican en CloudWatch Logs o Amazon S3. La eliminación del registro de flujo no elimina ninguna entrada de registro de flujo existente ni secuencias de registros (para CloudWatch Logs) u objetos de archivos de registro (para Amazon S3) de una interfaz de red. Para eliminar una secuencia de registro existente, utilice la consola de CloudWatch Logs. Para eliminar objetos de archivos de registro, utilice la consola de Amazon S3. Tras haber eliminad un log de flujo, puede que se necesiten varios minutos para que se dejen de recopilar los datos. Para obtener más información, consulte Eliminar un log de flujo.

Registros de log de flujo

Un registro de log de flujo representa un flujo de red en su VPC. De forma predeterminada, cada registro captura un flujo de tráfico del protocolo de Internet (IP) de red (caracterizado por 5 tuplas para cada interfaz de red) que tiene lugar dentro de un intervalo de agregación, lo también se conoce como período de captura.

De forma predeterminada, el registro incluye valores para los distintos componentes del flujo de IP, incluido el origen, el destino y el protocolo.

Al crear un registro de flujo, puede utilizar el formato predeterminado para el registro del registro de flujo o puede especificar un formato personalizado.

Intervalo de agregación

El intervalo de agregación es el período de tiempo durante el que se captura un flujo determinado y se agrega a un registro de flujo. De forma predeterminada, el intervalo de agregación máximo es de 10 minutos. Cuando cree un registro de flujo, si lo desea, puede especificar un intervalo máximo de agregación de 1 minuto. Los registros de flujo con un intervalo de agregación máximo de 1 minuto producen un volumen mayor de registros que los que tienen un intervalo de agregación máximo de 10 minutos.

Cuando una interfaz de red está asociada a una instancia basada en Nitro, el intervalo de agregación siempre es igual o inferior a 1 minuto, independientemente del intervalo de agregación máximo especificado.

Una vez que los datos se han capturado durante el intervalo de agregación, se necesita más tiempo para procesarlos y publicarlos en CloudWatch Logs o Amazon S3. Este tiempo adicional puede rondar los 5 minutos para publicar en CloudWatch Logs y alrededor de 10 minutos para publicar en Amazon S3. El servicio de registros de flujo se entrega dentro de este tiempo adicional de la mejor manera posible. En algunos casos, es posible que los registros se retrasen más allá del tiempo adicional de 5 a 10 minutos mencionado anteriormente.

Formato predeterminado

De forma predeterminada, el formato de línea de log de un registro de logs de flujo es una cadena separada por espacios que tiene el siguiente conjunto de campos en el orden siguiente.

<version> <account-id> <interface-id> <srcaddr> <dstaddr> <srcport> <dstport> <protocol> <packets> <bytes> <start> <end> <action> <log-status>

Para obtener más información acerca de los campos, consulte Campos disponibles. El formato predeterminado solo captura un subconjunto de todos los campos disponibles para un registro de logs de flujo. Para capturar todos los campos disponibles o un subconjunto de campos distinto, especifique un formato personalizado. No puede personalizar o cambiar el formato predeterminado.

Formato personalizado

Opcionalmente puede especificar un formato personalizado para el registro de logs de flujo. Un formato personalizado es donde se especifica qué campos se devolverán en el log de flujo y el orden en que deben aparecer. De este modo, puede crear registros de flujo específicos con arreglo a sus necesidades y omitir los campos que no resulten relevantes en su caso. Un formato personalizado también puede ayudar a reducir la necesidad de procesos separados para extraer información específica de logs de flujo publicados. Puede especificar cualquier número de campos de log de flujo disponibles, pero debe especificar al menos uno.

Campos disponibles

La tabla siguiente describe todos los campos disponibles para un registro de logs de flujo. La columna Version (Versión) indica la versión de los registros de flujo de VPC en la que se introdujo el campo.

Campo Descripción Versión

version

La versión de los logs de flujo de VPC. Si utiliza el formato predeterminado, la versión es 2. Si utiliza un formato personalizado, la versión es la más alta entre los campos especificados. Por ejemplo, si solo especifica campos de la versión 2, la versión es 2. Si especifica una combinación de campos de las versiones 2, 3 y 4, la versión es 4.

2

account-id

El ID de la cuenta de AWS del propietario de la interfaz de red de origen en la que se registra el tráfico. Si un servicio de AWS crea la interfaz de red, por ejemplo, al crear un punto de enlace o balanceador de carga de red de la VPC, el registro puede mostrar unknown para este campo.

2

interface-id

El ID de la interfaz de red para la que se registra el tráfico.

2

srcaddr

La dirección de origen para tráfico entrante o la dirección IPv4 o IPv6 de la interfaz de red para tráfico saliente en la interfaz de red. La dirección IPv4 de la interfaz de red es siempre su dirección IPv4 privada. Véase también pkt-srcaddr.

2

dstaddr

La dirección de destino para tráfico saliente o la dirección IPv4 o IPv6 de la interfaz de red para tráfico entrante en la interfaz de red. La dirección IPv4 de la interfaz de red es siempre su dirección IPv4 privada. Véase también pkt-dstaddr.

2

srcport

El puerto de origen del tráfico.

2

dstport

El puerto de destino del tráfico.

2

protocol

El número de protocolo IANA del tráfico. Para obtener más información, consulte Assigned Internet Protocol Numbers.

2

packets

El número de paquetes transferidos durante el flujo.

2

bytes

El número de bytes transferidos durante el flujo.

2

start

Momento, en segundos Unix, en que se recibió el primer paquete del flujo dentro del intervalo de agregación. El tiempo transcurrido puede ser como máximo de 60 segundos una vez que el paquete se ha transmitido o recibido en la interfaz de red.

2

end

Momento, en segundos Unix, en que se recibió el último paquete del flujo dentro del intervalo de agregación. El tiempo transcurrido puede ser como máximo de 60 segundos una vez que el paquete se ha transmitido o recibido en la interfaz de red.

2

action

La acción asociada al tráfico:

  • ACCEPT: los grupos de seguridad o las ACL de red permitieron el tráfico registrado.

  • REJECT: los grupos de seguridad o las ACL de red no han permitido el tráfico registrado.

2

log-status

El estado de registro del log de flujo:

  • OK: los datos se registran normalmente en los destinos elegidos.

  • NODATA: no hubo tráfico de red que tuviera como origen o destino la interfaz de red durante el intervalo de agregación.

  • SKIPDATA: algunos registros de flujo se omitieron durante el intervalo de agregación. Esto puede deberse a una restricción de capacidad interna, o a un error interno.

2

vpc-id

El ID de la VPC que contiene la interfaz de red para la que se registra el tráfico.

3

subnet-id

El ID de la subred que contiene la interfaz de red para la que se registra el tráfico.

3

instance-id

El ID de la instancia que está asociado a la interfaz de red para la que se registra el tráfico, si la instancia es de su propiedad. Devuelve un símbolo "-" para una interfaz de red administrada por el solicitante; por ejemplo, la interfaz de red para una gateway NAT.

3

tcp-flags

El valor de máscara de bits de las siguientes marcas TCP:

  • SYN: 2

  • SYN-ACK: 18

  • FIN: 1

  • RST: 4

ACK se notifica solo cuando va acompañado de SYN.

Se puede aplicar OR a las marcas TCP durante el intervalo de agregación. Para conexiones breves, las marcas se pueden establecer en la misma línea en el registro de logs de flujo, por ejemplo 19 para SYN-ACK y FIN y 3 para SYN y FIN. Para ver un ejemplo, consulte Secuencia de marca TCP.

3

type

El tipo de tráfico: IPv4, IPv6 o EFA. Para obtener más información sobre Elastic Fabric Adapter (EFA), consulte Elastic Fabric Adapter.

3

pkt-srcaddr

La dirección IP de origen (original) del nivel de paquete del tráfico. Utilice este campo con el campo srcaddr para distinguir entre la dirección IP de una capa intermedia a través de la que fluye el tráfico y la dirección IP de origen original del tráfico. Por ejemplo, cuando el tráfico fluye a través de una interfaz de red para una gateway NAT o si la dirección IP de un pod de Amazon EKS es distinta de la dirección IP de la interfaz de red del nodo de instancia en el que se ejecuta el pod (para permitir la comunicación dentro de una VPC).

3

pkt-dstaddr

La dirección IP de destino (original) del nivel de paquete para el tráfico. Utilice este campo con el campo dstaddr para distinguir entre la dirección IP de una capa intermedia a través de la que fluye el tráfico y la dirección IP de destino final del tráfico. Por ejemplo, cuando el tráfico fluye a través de una interfaz de red para una gateway NAT o si la dirección IP de un pod de Amazon EKS es distinta de la dirección IP de la interfaz de red del nodo de instancia en el que se ejecuta el pod (para permitir la comunicación dentro de una VPC).

3

region

La región que contiene la interfaz de red para la que se registra el tráfico.

4

az-id

El ID de la zona de disponibilidad que contiene la interfaz de red para la que se registra el tráfico. Si el tráfico procede de una ubicación secundaria, el registro muestra un símbolo '-' en este campo.

4

sublocation-type

El tipo de ubicación secundaria que se devuelve en el campo sublocation-id:

Si el tráfico no procede de una ubicación secundaria, el registro muestra un símbolo '-' en este campo.

4

sublocation-id

El ID de la ubicación secundaria que contiene la interfaz de red para la que se registra el tráfico. Si el tráfico no procede de una ubicación secundaria, el registro muestra un símbolo '-' en este campo.

4

nota

Si un campo no es aplicable para un registro específico, el registro mostrará un símbolo '-' para esa entrada.

Limitaciones de los logs de flujo

Para utilizar los logs de flujo, debe conocer las siguientes limitaciones:

  • No se pueden habilitar logs de flujo para interfaces de red que se encuentren en la plataforma EC2-Classic. Esto incluye las instancias de EC2-Classic vinculadas a una VPC a través de ClassicLink.

  • No se pueden habilitar los logs de flujo para VPC interconectadas con su VPC a menos que la VPC del mismo nivel se encuentre en su cuenta.

  • Después de haber creado un log de flujo, no puede cambiar su configuración o el formato del registro de logs de flujo. Por ejemplo, no puede asociar un rol de IAM diferente con el registro de flujo ni agregar o quitar campos en la entrada de registro de flujo. En su lugar, puede eliminar el log de flujo y crear uno nuevo con la configuración necesaria.

  • Si su interfaz de red tiene varias direcciones IPv4 y el tráfico se envía a una dirección IPv4 privada secundaria, el log de flujo mostrará la dirección IPv4 privada principal en el campo dstaddr. Para capturar la dirección IP de destino original, cree un log de flujo con el campo pkt-dstaddr.

  • Si el tráfico se envía a una interfaz de red y el destino no es ninguna de las direcciones IP de la interfaz de red, el log de flujo muestra la dirección IPv4 privada principal en el campo dstaddr. Para capturar la dirección IP de destino original, cree un log de flujo con el campo pkt-dstaddr.

  • Si el tráfico se envía a una interfaz de red y el origen no es ninguna de las direcciones IP de la interfaz de red, el log de flujo muestra la dirección IPv4 privada principal en el campo srcaddr. Para capturar la dirección IP de origen original, cree un log de flujo con el campo pkt-srcaddr.

  • Si el tráfico se envía a una interfaz de red o desde una interfaz de red, los campos srcaddr y dstaddr en el log de flujo muestran siempre la dirección IPv4 privada principal, con independencia del origen o destino del paquete. Para capturar el origen o destino del paquete, cree un log de flujo con los campos pkt-srcaddr y pkt-dstaddr.

  • Cuando la interfaz de red está asociada a una instancia basada en Nitro, el intervalo de agregación siempre es igual o menor a 1 minuto, independientemente del intervalo máximo de agregación especificado.

Los logs de flujo no capturan todo el tráfico IP. Los siguientes tipos de tráfico no se registran:

  • Tráfico generado por instancias al contactar con el servidor DNS de Amazon. Si utiliza su propio servidor DNS, sí se registrará el tráfico a ese servidor DNS.

  • Tráfico generado por una instancia de Windows para la activación de licencia de Windows para Amazon.

  • Tráfico entrante y saliente de 169.254.169.254 para metadatos de instancias.

  • Tráfico entrante y saliente de 169.254.169.123 para el servicio Amazon Time Sync.

  • Tráfico DHCP.

  • Tráfico a la dirección IP reservada para el router VPC predeterminado. Para obtener más información, consulte Tamaño de VPC y subred.

  • El tráfico entre una interfaz de red de punto de enlace y una interfaz de red de balanceador de carga de red. Para obtener más información, consulte Servicios de punto de enlace de la VPC (AWS PrivateLink).

Precios de registros de flujo

Los costos por incorporación y archivo de datos para los registros a la venta se aplican cuando se publican registros de flujo en CloudWatch Logs o en Amazon S3. Para obtener más información y ejemplos, consulte Precios de Amazon CloudWatch.

Para realizar un seguimiento de los cargos de publicación de los registros de flujo en los buckets de Amazon S3, puede aplicar etiquetas de asignación de costos a las suscripciones de registros de flujo. Para realizar un seguimiento de los cargos de publicación de los registros de flujo en CloudWatch Logs, puede aplicar etiquetas de asignación de costos al grupo de registros de CloudWatch de destino. A partir de entonces, el informe de asignación de costos de AWS incluirá el uso y los costos agregados por estas etiquetas. Puede aplicar etiquetas que representen categorías de negocio (por ejemplo, centros de costos, nombres de aplicación o propietarios) para organizar los costos. Para obtener más información, consulte Uso de etiquetas de asignación de costos en la Guía del usuario de administración de costos y facturación de AWS.