Amazon Virtual Private Cloud
Guía del usuario

Publicación de logs de flujo en Amazon S3

Los registros de flujo pueden publicar datos de registros de flujo en Amazon S3.

Cuando se publica en Amazon S3, los datos de registro de flujo se publican en un bucket de Amazon S3 existente que especifique. Los registros de logs de flujo de todas las interfaces de red monitoreadas se publican en una serie de objetos de archivos log que se almacenan en el bucket. Si el log de flujo captura datos de una VPC, se publican los registros de logs de flujo de todas las interfaces de red de la VPC seleccionada. Para obtener más información, consulte Registros de logs de flujo.

Para crear un bucket de Amazon S3 para usarlo con los registros de flujo, consulte la sección Crear un bucket en la Guía de introducción a Amazon Simple Storage Service.

Archivos log de flujo

Los logs de flujo recopilan registros de logs de flujo, los consolidan en archivos log y, a continuación, se publican los archivos de log en el bucket de Amazon S3 a intervalos de cinco minutos. Cada archivo log contiene registros de logs de flujo del tráfico IP registrado en los cinco minutos anteriores.

El tamaño de archivo máximo de un archivo log es de 75 MB. Si el archivo log alcanza el límite de tamaño de archivo en el periodo de cinco minutos, el log de flujo deja de añadir registros de logs de flujo a este archivo, publica el archivo en el bucket de Amazon S3 y después crea un nuevo archivo log.

Los archivos log se guardan en el bucket de Amazon S3 especificado con una estructura de carpetas que viene determinada por el ID del log de flujo, la región y la fecha en que se crearon. La estructura de carpetas del bucket usa el siguiente formato:

bucket_ARN/optional_folder/AWSLogs/aws_account_id/vpcflowlogs/region/year/month/day/log_file_name.log.gz

Asimismo, el nombre del archivo log viene determinado por el ID del log de flujo, la región y la fecha y hora en que se creó. Los nombres de archivo utilizan el formato siguiente:

aws_account_id_vpcflowlogs_region_flow_log_id_timestamp_hash.log.gz

nota

La marca temporal utiliza el formato YYYYMMDDTHHmmZ.

El ejemplo siguiente muestra una estructura de carpetas y el nombre de archivo de un archivo log para un log de flujo creado por la cuenta 123456789012de AWS, para un recurso de la región us-east-1, el June 20, 2018 a las 16:20 UTC, que incluye los registros del log de flujo desde las 16:15:00 las 16:19:59:

arn:aws:s3:::my-flow-log-bucket/AWSLogs/123456789012/vpcflowlogs/us-east-1/2018/06/20/123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz

Funciones de IAM para publicar registros de flujo en Amazon S3

Una entidad principal de IAM, como un usuario de IAM, debe tener permisos suficientes para publicar registros de flujo en el bucket de Amazon S3. La política de IAM debe incluir los permisos siguientes:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*" } ] }

Permisos del bucket de Amazon S3 para logs de flujo

De forma predeterminada, los buckets de Amazon S3 y los objetos que contienen son privados. Solo el propietario del bucket puede tener acceso al bucket y a los objetos almacenados en él. Sin embargo, el propietario del bucket puede conceder permisos de acceso a otros recursos y usuarios escribiendo una política de acceso.

Si el usuario que va a crear el log de flujo es el propietario del bucket, se asocia automáticamente la siguiente política al bucket para conceder al log de flujo permiso para publicar logs en él.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*", "Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}} }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::bucket_name" } ] }

Si el usuario que va a crear el log de flujo no es el propietario del bucket o no tiene los permisos GetBucketPolicy y PutBucketPolicy para el bucket, se produce un error al crear el log de flujo. En este caso, el propietario del bucket debe añadir manualmente la política anterior al bucket y especificar el ID de cuenta de AWS del creador del log de flujo. Para obtener más información, consulte ¿Cómo agrego una política de bucket en S3? en la Guía del usuario de la consola de Amazon Simple Storage Service. Si el bucket recibe logs de flujo de varias cuentas, añada un entrada del elemento Resource a la instrucción AWSLogDeliveryWrite de la política para cada cuenta. Por ejemplo, la siguiente política de bucket permite a las cuentas de AWS 123123123123 y 456456456456 publicar logs de flujo en una carpeta denominada flow-logs en un bucket llamado log-bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::log-bucket/flow-logs/AWSLogs/123123123123/*", "arn:aws:s3:::log-bucket/flow-logs/AWSLogs/456456456456/*" ], "Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}} }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::log-bucket" } ] }

nota

Le recomendamos que conceda los permisos AWSLogDeliveryAclCheck y AWSLogDeliveryWrite a la entidad principal del servicio de entrega de logs, en lugar de a los distintos ARN de la cuenta de AWS.

Política de claves CMK necesarias para usar con buckets de SSE-KMS

Si habilitó el cifrado en el servidor para su bucket de Amazon S3 utilizando claves administradas por AWS KMS (SSE-KMS) con una clave maestra de cliente (CMK) administrada por el cliente, debe agregar lo siguiente a la política de claves de su CMK de modo que los registros de flujo puedan escribir archivos de registro en el bucket.

{ "Sid": "Allow VPC Flow Logs to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": "kms:GenerateDataKey*", "Resource": "*" }

Permisos de archivos log de Amazon S3

Además de las políticas de bucket necesarias, Amazon S3 utiliza listas de control de acceso (ACL) para administrar el acceso a los archivos log creados por un log de flujo. De forma predeterminada, el propietario del bucket tiene los permisos FULL_CONTROL en cada archivo log. El propietario de la entrega de logs, si es diferente del propietario del bucket, no tiene permisos. La cuenta de entrega de logs tiene los permisos READ y WRITE. Para obtener más información, consulte Información general de las Access Control Lists (ACL, Listas de control de acceso) en la Guía para desarrolladores de Amazon Simple Storage Service.

Creación de un registro de flujo que se publica en Amazon S3

Después de haber creado y configurado su bucket de Amazon S3, puede crear registros de flujo para sus VPC, subredes o interfaces de red.

Para crear un log de flujo para una interfaz de red

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Network Interfaces.

  3. Seleccione una o varias interfaces de red y elija Actions (Acciones), Create flow log (Crear registro de flujo).

  4. En Filter (Filtro), especifique el tipo de datos de tráfico IP que desea registrar. Elija All (Todo) para registrar el tráfico aceptado y rechazado, Rejected (Rechazado) para registrar únicamente el tráfico rechazado o Accepted (Aceptado) para registrar solo el tráfico aceptado.

  5. En Destination (Destino), elija Send to an Amazon S3 bucket (Enviar a un bucket de Amazon S3).

  6. En S3 bucket ARN (ARN de bucket de S3), especifique el nombre de recurso de Amazon (ARN) de un bucket de Amazon S3 existente. Puede incluir una subcarpeta en el ARN de bucket. El bucket no puede utilizar AWSLogs como nombre de subcarpeta, ya que se trata de un término reservado.

    Por ejemplo, para especificar una subcarpeta llamada my-logs de un bucket denominado my-bucket, utilice el siguiente ARN:

    arn:aws:s3:::my-bucket/my-logs/

    Si posee el bucket, crearemos automáticamente una política de recursos y la asociaremos al bucket. Para obtener más información, consulte Permisos del bucket de Amazon S3 para logs de flujo.

  7. Seleccione Create.

Para crear un log de flujo para una VPC o subred

  1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.

  2. En el panel de navegación, elija Your VPCs (Sus VPC) o Subnets (Subredes).

  3. Seleccione una o varias VPC o subredes y, a continuación, elija Actions (Acciones), Create flow log (Crear registro de flujo).

  4. En Filter (Filtro), especifique el tipo de datos de tráfico IP que desea registrar. Elija All (Todo) para registrar el tráfico aceptado y rechazado, Rejected (Rechazado) para registrar únicamente el tráfico rechazado o Accepted (Aceptado) para registrar solo el tráfico aceptado.

  5. En Destination (Destino), elija Send to an Amazon S3 bucket (Enviar a un bucket de Amazon S3).

  6. En S3 bucket ARN (ARN de bucket de S3), especifique el nombre de recurso de Amazon (ARN) de un bucket de Amazon S3 existente. Puede incluir una subcarpeta en el ARN de bucket. El bucket no puede utilizar AWSLogs como nombre de subcarpeta, ya que se trata de un término reservado.

    Por ejemplo, para especificar una subcarpeta llamada my-logs de un bucket denominado my-bucket, utilice el siguiente ARN:

    arn:aws:s3:::my-bucket/my-logs/

    Si posee el bucket, crearemos automáticamente una política de recursos y la asociaremos al bucket. Para obtener más información, consulte Permisos del bucket de Amazon S3 para logs de flujo.

  7. Seleccione Create.

Procesamiento de registros de flujo en Amazon S3

Los archivos log están comprimidos. Si abre los archivos log con la consola de Amazon S3, se descomprimen y se muestran los registros de logs de flujo. Si descarga los archivos, debe descomprimirlos para ver los registros de logs de flujo.

También puede consultar los registros de flujo en los archivos de registro mediante Amazon Athena. Amazon Athena es un servicio de consultas interactivo que facilita el análisis de datos directamente en Amazon S3 mediante SQL estándar. Para obtener más información, consulte Consulta de los registros de flujo de Amazon VPC en la Guía del usuario de Amazon Athena