Configuración y uso de registros de flujo en AWS Global Accelerator
Los registros de flujo le permiten capturar información acerca del tráfico de direcciones IP entrante y saliente de las interfaces de red en su acelerador en AWS Global Accelerator. Los datos de registro de flujo se publican en Amazon S3, donde puede recuperar y ver los datos una vez creado el registro de flujo.
nota
Debe ver las métricas y los registros de CloudWatch para Global Accelerator en la región Oeste de EE. UU. (Oregón), tanto en la consola como cuando utilice la AWS CLI. Cuando utilice la AWS CLI, especifique la región Oeste de EE. UU. (Oregón) para su comando mediante la inclusión del siguiente parámetro: --region us-west-2
.
Los registros de flujo pueden ayudarlo con una serie de tareas. Por ejemplo, para solucionar problemas de por qué un tráfico específico no llega a un punto de conexión , lo cual, a su vez, le ayuda a diagnosticar reglas de grupos de seguridad excesivamente restrictivas. También puede utilizar registros de flujo como herramienta de seguridad para controlar el tráfico que llega a sus puntos de conexión.
Un registro de log de flujo representa un flujo de red en su log de flujo. Cada registro captura el flujo de red para una ventana específica de captura de 5 tuplas. Cinco tuplas es un conjunto de cinco valores distintos que especifican el origen, el destino y el protocolo para un flujo de IP. La ventana de captura es la duración del tiempo durante el cual el servicio de logs de flujo agrega datos antes de publicar registros de logs de flujo. La ventana de captura es de hasta 1 minuto. Es decir, los registros pueden publicarse con más frecuencia que cada minuto, pero se publicarán al menos cada minuto.
Se aplican cargos de CloudWatch Logs se aplican cuando se usan registros de flujo, incluso cuando los registros se publican directamente en Amazon S3. Para obtener más información, consulte Registros distribuidos en la pestaña Registros en Precios de Amazon CloudWatch
sugerencia
El uso de Amazon Athena y Amazon QuickSight con los datos del registro de flujo de Global Accelerator puede ayudarle a solucionar los problemas de accesibilidad de su aplicación, identificar las vulnerabilidades de seguridad y obtener una visión general del modo en que los usuarios acceden a su aplicación. Para obtener más información, consulte la siguiente entrada del blog de AWS: Análisis y visualización de registros del flujo de AWS Global Accelerator con Amazon Athena y Amazon QuickSight
Contenido
Habilitación de publicación de registros de flujo en Amazon S3
Para habilitar los registros de flujo en AWS Global Accelerator, siga los pasos de este procedimiento. Las secciones adicionales de este capítulo proporcionan los pasos para configurar su bucket de Amazon S3 y los permisos, de modo que se puedan publicar los registros de flujo tener acceso a ellos.
Habilitar los registros de flujo en AWS Global Accelerator
-
Cree un bucket de Amazon S3 para los registros de flujo de su cuenta de AWS.
-
Agregue la política de IAM requerida para el usuario de AWS que habilita los registros de flujo. Para obtener más información, consulte Roles de IAM para publicación de registros de flujo en Amazon S3.
-
Ejecute el siguiente comando de la CLI de AWS, con el nombre y el prefijo del bucket de Amazon S3 que desee usar para los archivos de registro:
aws globalaccelerator update-accelerator-attributes --accelerator-arn arn:aws:globalaccelerator::
012345678901
:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh
--region us-west-2 --flow-logs-enabled --flow-logs-s3-buckets3-bucket-name
--flow-logs-s3-prefixs3-bucket-prefix
Procesamiento de 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 flujo.
Publicación de registros de flujo en Amazon S3
Los registros de flujo para AWS Global Accelerator son publicados en Amazon S3 en un bucket S3 existente que se especifique. Las entradas de registros de flujo se publican en una serie de objetos de archivos de registros que se almacenan en el bucket.
Para crear un bucket de Amazon S3 a fin de utilizarlo con registros de flujo, consulte Crear su primer bucket S3 en la Guía de introducción de Amazon Simple Storage Service.
Archivos de registros de flujo
Los registros de flujo recopilan entradas de registros de flujo, las consolidan en archivos de registro y, a continuación, publican los archivos de registro en el bucket de Amazon S3 en intervalos de cinco minutos. Es decir, los archivos de registro se escriben cada cinco minutos y cada archivo de registro contiene registros de flujo del tráfico de direcciones 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 de registro alcanza el límite de tamaño de archivo en el periodo de cinco minutos, el archivo de flujo deja de agregar entradas de registros de flujo a este archivo, publica el archivo en el bucket de Amazon S3 y después crea un nuevo archivo de registro.
Los archivos de registro se guardan en el bucket de Amazon S3 especificado con una estructura de carpetas que viene determinada por el ID de registro de flujo, la región y la fecha en que se crearon. La estructura de carpetas del bucket usa el siguiente formato:
s3-bucket_name
/s3-bucket-prefix
/AWSLogs/aws_account_id
/globalaccelerator/region
/yyyy/mm/dd
/
Asimismo, el nombre del archivo de registro viene determinado por el ID del registro 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
_globalaccelerator_accelerator_id
_flow_log_id_timestamp_hash
.log.gz
Tenga en cuenta lo siguiente acerca de la estructura de nombres de carpetas y archivos para los archivos de registro:
La marca de tiempo utiliza el formato
YYYYMMDDTHHmmZ
.Si especifica una barra (/) para el prefijo del bucket S3, la estructura de carpetas del bucket del archivo de registro incluirá una barra doble (//), como la siguiente:
s3-bucket_name
//AWSLogs/aws_account_id
El siguiente ejemplo muestra la estructura de carpeta y el nombre de archivo de un archivo de registro para un registro de flujo creado por la cuenta de AWS 123456789012
de un acelerador con el ID de 1234abcd-abcd-1234-abcd-1234abcdefgh
, el 23 de noviembre de 2018 a las 00:05 UTC:
amzn-s3-demo-bucket/prefix1/AWSLogs/123456789012/globalaccelerator/us-west-2/2018/11/23/123456789012_globalaccelerator_1234abcd-abcd-1234-abcd-1234abcdefgh_20181123T0005Z_1fb1234.log.gz
Un único archivo de registro de flujo contiene entradas intercaladas con varios registros de 5 tuplas; es decir, client_ip
, client_port
, accelerator_ip
, accelerator_port
y protocol
. Para ver todos los archivos del registro de flujo de su acelerador, busque las entradas agregadas por el accelerator_id
y su account_id
.
Roles de IAM para publicación de registros de flujo en Amazon S3
Una entidad principal de IAM, como un rol o 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": [ { "Sid": "DeliverLogs", "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*" }, { "Sid": "AllowGlobalAcceleratorService", "Effect": "Allow", "Action": [ "globalaccelerator:*" ], "Resource": "*" }, { "Sid": "s3Perms", "Effect": "Allow", "Action": [ "s3:GetBucketPolicy", "s3:PutBucketPolicy" ], "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 permisos de acceso a otros recursos y usuarios escribiendo una política de acceso.
Si el usuario que va a crear el registro de flujo es el propietario del bucket, el servicio asocia automáticamente la siguiente política al bucket para conceder al registro de flujo permiso para publicar registros en este:
{ "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 agregar manualmente la política anterior al bucket y especificar el ID de la cuenta de AWS del creador del registro de flujo. Para obtener más información, consulte Agregar una política de bucket mediante la consola de Amazon S3 en la Guía del usuario de Amazon Simple Storage Service. Si el bucket recibe registros de flujo de varias cuentas, agregue 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 registros de flujo en una carpeta denominada flow-logs
de un bucket, cuyo nombre es 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 registros, 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 lado del servidor para el bucket de Amazon S3 utilizando claves administradas por AWS KMS (SSE-KMS) con una CMK administrada por el cliente, debe agregar lo siguiente a la política de claves de la CMK de modo que los registros de flujo puedan escribir archivos de registro en el bucket.
{ "Sid": "Allow AWS Global Accelerator Flow Logs to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": "kms:GenerateDataKey*", "Resource": "*" }
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 Información general de la Lista de control de acceso (ACL) en la Guía del usuario de Amazon Simple Storage Service.
Intervalo de entrega de archivos de registro
AWS Global Accelerator proporciona archivos de registro para el acelerador configurado varias veces cada hora. En general, un archivo de registro contiene información acerca de las solicitudes que su acelerador ha recibido durante un período determinado. Normalmente, Global Accelerator envía el archivo de registro de ese periodo al bucket de Amazon S3 una hora después de que se produzcan los eventos reflejados en el registro. Algunas o todas las entradas de los archivos de registro de un periodo a veces pueden retrasarse hasta 24 horas. Cuando se retrasan entradas de registro, Global Accelerator las guarda en un archivo de registro cuyo nombre incluye la fecha y la hora del periodo en el que se realizaron las solicitudes en lugar de incluir la fecha y la hora de entrega del archivo.
Al crear un archivo de registro, Global Accelerator consolida información para su acelerador desde todas las ubicaciones de periferia que recibieron solicitudes de sus objetos durante el periodo que abarca dicho archivo de registro.
Global Accelerator comienza a enviar de forma fiable los archivos de registros de entrega alrededor de cuatro horas después de activar los registros. Es posible obtener algunos archivos de registro antes del momento de envío.
nota
Si ningún usuario se conecta con su acelerador durante ese periodo, no recibirá archivos de registro para dicho periodo.
Sintaxis de las entradas de registro de flujo
Un registro de log de flujo es una cadena separada por espacios con el siguiente formato:
<version> <aws_account_id> <accelerator_id> <client_ip> <client_port>
<accelerator_ip> <accelerator_port> <endpoint_ip> <endpoint_port> <protocol>
<ip_address_type> <packets> <bytes> <start_time> <end_time> <action>
<log-status> <globalaccelerator_source_ip> <globalaccelerator_source_port> <endpoint_region>
<globalaccelerator_region> <direction> <vpc_id>
El formato de la versión 1.0 no incluye el identificador de VPC, vpc_id
. El formato de la versión 2.0, que incluye el vpc_id
, se genera cuando Global Accelerator envía tráfico a un punto de conexión preservando la dirección IP del cliente.
En la siguiente tabla se describen los campos de un registro de logs de flujo.
Campo | Descripción |
---|---|
|
La versión de los registros de flujo. |
|
El ID de Cuenta de AWS para el registro de flujo. |
|
El ID del acelerador para el que se está registrando el tráfico. |
|
La dirección IPv4 o IPv6 de origen. |
|
El puerto de origen. |
|
La dirección IP del acelerador. |
|
El puerto del acelerador. |
|
La dirección IP de destino del tráfico. |
|
El puerto de destino del tráfico. |
|
El número de protocolo IANA del tráfico. Para obtener más información, consulte Números de protocolo asignados en internet |
|
IPv4 o IPv6. |
|
El número de paquetes transferidos durante la ventana de captura. Cuando el número de paquetes es 0 (cero), el flujo está activo pero no se observó ningún paquete en esa dirección durante la ventana de captura. |
|
El número de bytes transferidos durante la ventana de captura. |
|
La hora, en segundos Unix, de inicio de la ventana de captura. |
|
La hora, en segundos Unix, de finalización de la ventana de captura. |
|
La acción asociada al tráfico:
|
|
El estado de registro del registro de flujo:
|
|
La dirección IP utilizada por la interfaz de red de Global Accelerator. Si la conservación de la dirección IP del cliente está habilitada, este valor se establece en - (guion). Para obtener más información, consulte Conservar las direcciones IP de los clientes en AWS Global Accelerator. |
|
El puerto utilizado por la interfaz de red de Global Accelerator. Si la conservación de direcciones IP del cliente está habilitada, este valor se establece en 0 (cero). Para obtener más información, consulte Conservar las direcciones IP de los clientes en AWS Global Accelerator. |
|
La Región de AWS en la que se encuentra el punto de conexión. |
|
La ubicación periférica (punto de presencia) que atendió la solicitud. Cada ubicación periférica tiene un código de tres letras y un número asignado arbitrariamente, por ejemplo, DFW3. El código de tres letras normalmente se corresponde con el código de aeropuerto (según la Asociación de Transporte Aéreo Internacional) más cercano a la ubicación periférica. Estas abreviaturas pueden cambiar en el futuro. |
|
La dirección del tráfico. Indica el tráfico que entra en la red Global Accelerator ( |
|
El identificador de VPC. Se incluye en los registros de flujo de la versión 2.0 cuando Global Accelerator envía tráfico a un punto de conexión preservando la dirección IP del cliente. |
Si un campo no se aplica a un registro específico, el registro mostrará un símbolo '-' para esa entrada.