Publicar registros de flujo en Amazon S3 - Amazon Virtual Private Cloud

Publicar registros de flujo en Amazon S3

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

Al publicar 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 supervisadas 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 crear un bucket de Amazon S3 a fin de utilizarlo con registros de flujo, consulte Create a bucket (Crear un bucket) en la Guía de introducción de Amazon Simple Storage Service.

Para obtener más información acerca del registro de varias cuentas, consulte Registro central en la Biblioteca de soluciones de AWS.

Para obtener más información acerca de CloudWatch Logs, consulte Registros enviados a Simple Storage Service (Amazon S3) en la Guía del usuario de Amazon CloudWatch Logs.

Precios

Se aplican costos por ingesta y archivo de datos para los registros a la venta cuando se publican registros de flujo en Amazon S3. Para obtener más información, abra Precios de Amazon CloudWatch seleccione Logs (Registros) y consulte Vended Logs (Registros distribuidos).

Archivos de registro de flujo

Los registros de flujo de VPC recopilan datos sobre el tráfico IP que entra y sale de su VPC en colecciones de registro, agregan esos registros en archivos de registro y, a continuación, publican los archivos de registro en el bucket de Amazon S3 en intervalos de cinco minutos. Se pueden publicar varios archivos y cada registro de archivo puede contener algunos o todos los registros de flujo del tráfico IP registrado en los cinco minutos anteriores.

En Amazon S3, el campo Last modified (Última modificación) del archivo de registro de flujo indica la fecha y la hora en que el archivo se cargó en el bucket de Amazon S3. Este valor es posterior a la marca temporal del nombre de archivo y difiere en la cantidad de tiempo invertido en cargar el archivo en el bucket de Amazon S3.

Formato de archivo de registro

Puede especificar uno de los siguientes formatos para los archivos de registro. Cada archivo se comprime en un único archivo Gzip.

  • Texto: Texto sin formato. Este es el formato predeterminado.

  • Parquet: Apache Parquet es un formato de datos columnar. Las consultas sobre los datos en formato Parquet son de 10 a 100 veces más rápidas en comparación con las consultas de datos en texto sin formato. Los datos en formato Parquet con compresión Gzip ocupan un 20 por ciento menos de espacio de almacenamiento que el texto sin formato con compresión Gzip.

nota

Si los datos en formato Parquet con compresión Gzip pesan menos de 100 KB por período de agregación, el almacenamiento de los datos en formato Parquet puede ocupar más espacio que el texto sin formato con compresión Gzip debido a los requisitos de memoria de los archivos de Parquet.

Opciones de archivo de registro

Puede especificar las siguientes opciones:

  • Prefijos de S3 compatibles con Hive: Habilite los prefijos compatibles con Hive en lugar de importar las particiones a las herramientas compatibles con Hive. Antes de ejecutar las consultas, utilice el comando MSCK REPAIR TABLE.

  • Particiones por horas: Si tiene un gran volumen de registros y, por lo general, orienta las consultas a una hora en específico, puede obtener resultados más rápidos y ahorrar en costos de consulta si particiona los registros por hora.

Estructura del bucket de S3 del archivo de registro

Los archivos de registro se guardan en el bucket de Amazon S3 especificado con una estructura de carpetas basada en el ID del registro de flujo, la Región, la fecha en que se crearon y en las opciones de destino.

De forma predeterminada, los archivos se entregan en la siguiente ubicación.

bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/

Si habilita los prefijos de S3 compatibles con Hive, los archivos se entregan en la siguiente ubicación.

bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/aws-service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/

Si habilita particiones por hora, los archivos se entregan en la siguiente ubicación.

bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/hour/

Si habilita particiones compatibles con Hive y particiona el registro de flujo por hora, los archivos se entregan en la siguiente ubicación.

bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/aws-service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/hour=hour/
Nombre de archivo de registro

El nombre de archivo de un archivo de registro se basa en el ID del registro de flujo, la Región y en la fecha y hora de creación. Los nombres de archivo utilizan el formato siguiente.

aws_account_id_vpcflowlogs_region_flow_log_id_YYYYMMDDTHHmmZ_hash.log.gz

A continuación, se muestra un ejemplo de un archivo de registros para un registro de flujo que la cuenta 123456789012 de AWS ha creado para un recurso en la Región us-east-1, el June 20, 2018 a las 16:20 UTC. El archivo contiene las colecciones de datos del registro de flujo con una hora de finalización entre las 16:20:00 y las 16:24:59.

123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz

Permisos para entidades principales de IAM que publican registros de flujo en Amazon S3

La entidad principal de IAM que cree el registro de flujo debe utilizar un rol de IAM que tenga los siguientes permisos, que son necesarios para publicar registros de flujo en el bucket de Amazon S3 de destino.

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

Permisos del bucket de Amazon S3 para registros 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 acceso a otros recursos y usuarios escribiendo una política de acceso.

Si el usuario que crea el registro de flujo es el propietario del bucket y tiene permisos PutBucketPolicy y GetBucketPolicy para el bucket, adjuntamos de forma automática la siguiente política al bucket. Esta política sobrescribe cualquier política existente asociada al bucket.

De otra manera, el propietario del bucket debe agregar esta política al bucket, al especificar el ID de cuenta de AWS del creador del registro de flujo o fallará la creación del registro de flujo. Para obtener más información, consulte Uso de políticas de bucket en la Guía del usuario de Amazon Simple Storage Service.

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

El ARN que especifique para my-s3-arn depende de si utiliza prefijos de S3 compatibles con HIVE.

  • Prefijos predeterminados

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  • Prefijos de S3 compatibles con HIVE

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*

Recomendamos que conceda estos permisos a la entidad principal del servicio de entrega de registros en lugar de a los ARN individuales de Cuenta de AWS. También es una práctica recomendada utilizar las claves de condición aws:SourceAccount y aws:SourceArn para protegerse del problema del suplente confuso. La cuenta fuente es la propietaria del registro de flujo y el ARN fuente es el ARN comodín (*) del servicio de registros.

Política de clave requerida para el uso con SSE-KMS

Para proteger los datos del bucket de Amazon S3, habilite el cifrado del lado del servidor con las claves administradas de Amazon S3 (SSE-S3) o con el cifrado del lado del servidor con claves de KMS (SSE-KMS) en su bucket de S3. Para obtener más información, consulte Protección de datos mediante cifrado del lado del servidor en la Guía del usuario de Amazon S3.

Si elija SSE-S3, no se requiere ninguna configuración adicional. Amazon S3 se encarga de la clave de cifrado.

Si elige SSE-KMS, debe utilizar un ARN de clave administrada por el cliente. Si utiliza un ID de clave, puede producirse un error LogDestination undeliverable cuando cree un registro de flujo. Además, debe actualizar la política de claves para la clave administrada por el cliente, de manera que la cuenta de entrega de registros pueda escribir en el bucket de S3. Para obtener más información sobre la política clave requerida para usar con SSE-KMS, consulte Cifrado del lado del servidor del bucket de Amazon S3 en la Guía del usuario de Amazon CloudWatch Logs.

Permisos de archivos de registro 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 de registro creados por un registro 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 registros tiene los permisos READ y WRITE. Para obtener más información, consulte Access Control List (ACL) Overview (Información general de la Lista de control de acceso [ACL]) en la Guía del usuario de Amazon Simple Storage Service.

Crear un registro de flujo que se publique en Amazon S3

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

Para crear un registro de flujo mediante la consola
  1. Realice una de las siguientes acciones siguientes:

  2. Seleccione Actions (Acciones) y, a continuación, Create flow log (Crear registro de flujo).

  3. En Filter (Filtro), especifique el tipo de datos de tráfico IP que desea registrar.

    • Accepted (Aceptado): registrar solo tráfico aceptado.

    • Rejected (Rechazado): registrar solo tráfico rechazado.

    • All (Todo): Tráfico aceptado y rechazado

  4. En Maximum aggregation interval (Intervalo máximo de agregación), elija el período de tiempo máximo durante el que se va a capturar el flujo y se va a agregar a un registro de flujo.

  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. Si lo desea, puede incluir una subcarpeta. 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/

    El bucket no puede utilizar AWSLogs como nombre de subcarpeta, ya que se trata de un término reservado.

    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 registros de flujo.

  7. Para Log record format (Formato de registro), seleccione el formato para el registro de flujo.

    • Para utilizar el formato de registro predeterminado del registro de flujo, elija AWS default format (Formato predeterminado de AWS).

    • Para crear un formato personalizado, seleccione Formato personalizado. En Log format (Formato de log), elija los campos que desea incluir en el registro de flujo.

  8. En Metadatos adicionales, seleccione si desea incluir los metadatos de Amazon ECS en el formato de registro.

  9. Para Log file format (Formato de archivo de registro), especifique el formato del archivo de registro.

    • Text (Texto): Texto sin formato. Este es el formato predeterminado.

    • Parquet: Apache Parquet es un formato de datos columnar. Las consultas sobre los datos en formato Parquet son de 10 a 100 veces más rápidas en comparación con las consultas de datos en texto sin formato. Los datos en formato Parquet con compresión Gzip ocupan un 20 por ciento menos de espacio de almacenamiento que el texto sin formato con compresión Gzip.

  10. (Opcional) Para utilizar prefijos de S3 compatibles con Hive, elija Hive-compatible S3 prefix (Prefijo de S3 compatible con Hive) y, a continuación, Enable (Habilitar).

  11. (Opcional) Para particionar los registros de flujo por hora, elija Every 1 hour (60 mins) (Cada 1 hora [60 minutos]).

  12. (Opcional) Para agregar una etiqueta al registro de flujo, elija Add new tag (Añadir nueva etiqueta) y especifique la clave y el valor de etiqueta.

  13. Elija Create flow log (Crear registro de flujo).

Para crear un registro de flujo que publica en Amazon S3 mediante una herramienta de línea de comandos

Utilice uno de los siguientes comandos:

En el siguiente ejemplo de AWS CLI se crea un registro de flujo que captura todo el tráfico de la VPC especificada y entrega los registros de flujo al bucket de Amazon S3 especificado. El parámetro --log-format especifica un formato personalizado para las entradas de registros de flujo.

aws ec2 create-flow-logs --resource-type VPC --resource-ids vpc-00112233344556677 --traffic-type ALL --log-destination-type s3 --log-destination arn:aws:s3:::flow-log-bucket/custom-flow-logs/ --log-format '${version} ${vpc-id} ${subnet-id} ${instance-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${tcp-flags} ${type} ${pkt-srcaddr} ${pkt-dstaddr}'

Ver entradas de registros de flujo

Puede ver las entradas de registro de flujo mediante la consola de Amazon S3. Es posible que, después de crear su registro de flujo, se necesiten unos minutos para que se encuentre visible en la consola.

Para consultar las entradas de registro de flujo publicadas en Amazon S3
  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3.

  2. Seleccione el nombre del bucket para abrir la página de detalles.

  3. Diríjase a la carpeta con los archivos de registro. Por ejemplo, prefijo/AWSLogs/account_id/vpcflowlogs/región/año/mes/día/.

  4. Seleccione la casilla de verificación junto al nombre del archivo y luego elija Download (Descargar).

Procesar entradas de registro de flujo en Amazon S3

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

También puede consultar las entradas de registro 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 en Amazon S3 con SQL estándar. Para obtener más información, consulte Consulta de registros de flujo de Amazon VPC en la Guía del usuario de Amazon Athena.