Recoger registros de flujo de VPC de AWS
En este documento se describe cómo puede recoger registros de flujo de VPC de AWS mediante un reenviador de Google Security Operations.
Para obtener más información, consulta Ingestión de datos en Google SecOps.
Una etiqueta de ingestión identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador
con la etiqueta de ingestión AWS_VPC_FLOW
.
Formatos de registros de flujo de VPC de AWS admitidos
Google SecOps admite la ingestión de registros de flujo de VPC de AWS en dos formatos de texto principales:
Formato JSON: el tipo de registro
AWS_VPC_FLOW
analiza los registros en formato JSON. En este formato, cada entrada de registro incluye una clave y su valor correspondiente, lo que hace que los datos se describan por sí mismos.Formato CSV: Google SecOps también proporciona un analizador para los registros de flujo de VPC de AWS en formato CSV. En este formato, las claves de campo solo se indican una vez en la fila de encabezado, y las filas posteriores solo contienen valores separados por comas.
Para ingerir registros de flujo de VPC de AWS en formato CSV, especifica el tipo de registro como
AWS_VPC_FLOW_CSV
al configurar tu reenviador. Para obtener instrucciones de configuración, consulta el artículo Configurar el reenviador de Google SecOps y syslog para ingerir registros de flujo de VPC de AWS.
Como el formato CSV no incluye claves de campo en cada entrada de registro, el analizador AWS_VPC_FLOW_CSV
se basa en un orden de valores estricto y predefinido. Para que los archivos CSV se analicen correctamente, deben tener los campos en el siguiente orden:
Version,Account_id,Interface_id,Srcaddr,Dstaddr,Srcport,Dstport,Protocol,Packets,Bytes,Start,End,Action,Log_status,Vpc_id,Subnet_id,Instance_id,Tcp_flags,Type,Pkt_srcaddr,Pkt_dstaddr,Region,Az_id,Sublocation_type,Sublocation_id,Pkt_src_aws_service,Pkt_dst_aws_service,Flow_direction,Traffic_path,Ecs_cluster_arn,Ecs_cluster_name,Ecs_container_instance_arn,Ecs_container_instance_id,Ecs_container_id,Ecs_second_container_id,Ecs_service_name,Ecs_task_definition_arn,Ecs_task_arn,Ecs_task_id
A continuación, se muestra un ejemplo de una línea de registro CSV:
7,369096419186,eni-0520bb5efed19d33a,10.119.32.34,10.119.223.3,51256,16020,6,14,3881,1723542839,1723542871,ACCEPT,OK,vpc-0769a6844ce873a6a,subnet-0cf9b2cb32f49f258,i-088d6080f45f5744f,0,IPv4,10.119.32.34,10.119.223.3,ap-northeast-1,apne1-az4,-,-,-,-,ingress,,-,-,-,-,-,-,-,-,-,-
En los campos en los que no haya ningún valor disponible, se debe indicar un valor vacío (por ejemplo, , ,
) para mantener el orden posicional correcto en la fila del archivo CSV.
Antes de empezar
Asegúrate de que se haya creado el segmento de Amazon S3. Para obtener más información, consulta Crear tu primer segmento de S3.
Asegúrate de que se ha creado el grupo de registros de Amazon CloudWatch. Para obtener más información, consulta el artículo Trabajar con grupos y flujos de registros.
Configurar el flujo de VPC de AWS
Configure el flujo de VPC de AWS en función de si reenvía los registros a Amazon S3 o a Amazon CloudWatch.
Para obtener información sobre cómo reenviar registros al segmento de Amazon S3, consulta la sección Configurar registros de flujo para reenviarlos a Amazon S3 de este documento.
Para obtener información sobre cómo reenviar registros a Amazon CloudWatch, consulta la sección Configurar registros de flujo en Amazon CloudWatch de este documento.
Configurar registros de flujo para reenviar registros a Amazon S3
Una vez que hayas creado y configurado el segmento de Amazon S3, podrás crear registros de flujo para tus interfaces de red, subredes y redes VPC.
Crear un registro de flujo para una interfaz de red
- Inicia sesión en la consola de Amazon EC2.
- En el panel de navegación, selecciona Interfaces de red.
- Selecciona una o varias interfaces de red.
- Selecciona Acciones > Crear registro de flujo.
- Configura los ajustes del registro de flujo. Para obtener más información, consulta la sección Configurar los ajustes de los registros de flujo de este documento.
Crear un registro de flujo de una subred
- Inicia sesión en la consola de Amazon VPC.
- En el panel de navegación, selecciona Subredes.
- Selecciona una o varias subredes.
- Selecciona Acciones > Crear registro de flujo.
- Configura los ajustes del registro de flujo. Para obtener más información, consulta la sección Configurar los ajustes de los registros de flujo de este documento.
Crear un registro de flujo de una VPC
- Inicia sesión en la consola de Amazon VPC.
- En el panel de navegación, selecciona VPCs.
- Seleccione una o varias VPCs.
- Selecciona Acciones > Crear registro de flujo.
- Configura los ajustes del registro de flujo. Para obtener más información, consulta la sección Configurar los ajustes de los registros de flujo de este documento.
Configurar los ajustes de los registros de flujo
En la sección Filtro, especifique el tráfico IP que se debe registrar:
Aceptar: registra solo el tráfico aceptado.
Rechazar: registra solo el tráfico rechazado.
Todo: registra el tráfico aceptado y rechazado.
En la sección Intervalo de agregación máximo, selecciona 1 minuto.
En la sección Destino, selecciona Enviar a un segmento de Amazon S3.
En la sección S3 bucket ARN (ARN del segmento de S3), especifica el ARN de un segmento de Amazon S3.
En la sección Formato de registro, especifica los siguientes formatos para el registro de flujo:
- Para usar el formato de registro de registro de flujo predeterminado, selecciona Formato predeterminado de AWS.
- Para crear un formato personalizado, selecciona Formato personalizado.
Configura el flujo de registros de VPC con el formato de registro de AWS personalizado para usar las funciones de IP verdadera de MSS.
En la lista Formato de registro, seleccione todos los atributos.
En la sección Vista previa del formato, revisa el formato personalizado.
En la sección Formato de archivo de registro, seleccione Texto (predeterminado).
En la sección Prefijo de S3 compatible con Hive, deje desmarcada la casilla Habilitar.
En la sección Partición de registros por tiempo, selecciona Cada 1 hora (60 minutos).
Para añadir una etiqueta al registro de flujo, seleccione Añadir nueva etiqueta y especifique la clave y el valor de la etiqueta.
Selecciona Crear registro de flujo. Para obtener más información, consulta Publicar registros de flujo en Amazon S3.
Configurar registros de flujo en Amazon CloudWatch
Puedes configurar los registros de flujo desde VPCs, subredes o interfaces de red.
En la sección Filtro, especifique el tipo de tráfico IP que se debe registrar:
Aceptar: registra solo el tráfico aceptado.
Rechazar: registra solo el tráfico rechazado.
Todo: registra el tráfico aceptado y rechazado.
En la sección Intervalo de agregación máximo, selecciona 1 minuto.
En la sección Destino, selecciona Enviar a CloudWatch Logs.
En la sección Grupo de registros de destino, indica el nombre del grupo de registros de destino que has creado.
En la lista Rol de gestión de identidades y accesos, selecciona el nombre del rol. El nombre del rol seleccionado tiene permisos para publicar registros en los registros de CloudWatch.
El rol de gestión de identidades y accesos debe incluir los siguientes permisos:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" } ] }
En la sección Formato de registro, seleccione Formato personalizado para el registro de flujo.
Para añadir una etiqueta al registro de flujo, seleccione Añadir nueva etiqueta y especifique la clave y el valor de la etiqueta.
Selecciona Crear registro de flujo. Para obtener más información, consulta Publicar registros de flujo en Amazon S3.
Amazon S3 se puede configurar para enviar las notificaciones de eventos a Amazon SQS. Para obtener más información, consulta Configurar un segmento para las notificaciones (tema de SNS o cola de SQS).
Se necesitan políticas de usuario de gestión de identidades y accesos para Amazon S3 y Amazon SQS si se usa Amazon SQS (Amazon S3 con Amazon SQS) como método de recogida de registros. Para obtener más información, consulta Usar políticas de gestión de identidades y accesos con AWS KMS.
En función del servicio y la región, identifique los endpoints para la conectividad consultando la siguiente documentación de AWS:
Para obtener información sobre las fuentes de registro, consulta Endpoints y cuotas de AWS Identity and Access Management.
Para obtener información sobre las fuentes de registro de Amazon S3, consulta Endpoints and quotas of Amazon Simple Storage Service (Endpoints y cuotas de Amazon Simple Storage Service).
Para obtener información sobre las fuentes de registro de Amazon SQS, consulta Endpoints and quotas of Amazon Simple Queue Service (Endpoints y cuotas de Amazon Simple Queue Service).
Para obtener información sobre las fuentes de registro de Amazon CloudWatch, consulta Endpoints y cuotas de los registros de Amazon CloudWatch.
Configurar el reenviador de Google SecOps y syslog para ingerir registros de flujo de VPC de AWS
- Selecciona Configuración de SIEM > Reenvíos.
- Haz clic en Añadir nuevo remitente.
- Introduce un nombre único para el nombre del remitente.
- Haz clic en Enviar y, a continuación, en Confirmar. Se añade el reenviador y se muestra la ventana Añadir configuración de recopilador.
- En el campo Nombre del recolector, escribe un nombre.
- En el campo Tipo de registro, seleccione Flujo de VPC de AWS o Flujo de VPC de AWS (CSV), según el formato de registro.
- En el campo Tipo de recopilador, selecciona Syslog.
- Configure los siguientes parámetros de entrada obligatorios:
- Protocolo: especifica el protocolo de conexión que usará el recopilador para detectar datos de syslog.
- Dirección: especifica la dirección IP o el nombre de host de destino en el que reside el recopilador y las direcciones de los datos de syslog.
- Puerto: especifica el puerto de destino en el que reside el recolector y escucha los datos de syslog.
- Haz clic en Enviar y, a continuación, en Confirmar.
Para obtener más información sobre los reenviadores de Google SecOps, consulta la documentación sobre los reenviadores de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de reenviador, consulta Configuración de reenviadores por tipo.
Si tienes problemas al crear reenviadores, ponte en contacto con el equipo de Asistencia de Google Security Operations.
Referencia de asignación de campos
Este analizador transforma los registros de flujo de VPC de AWS sin procesar (en formato JSON o CSV) en formato UDM estructurado. Extrae los campos relevantes, los asigna para que coincidan con el esquema del UDM y enriquece los datos con contexto adicional, como el tipo de recurso, el proveedor de la nube y las etiquetas, para facilitar un análisis más detallado. La lógica de asignación es coherente en ambos formatos: el analizador CSV se basa en un orden de campos predefinido para alinear los valores con los mismos campos de UDM que se usan en el formato JSON.
Tabla de asignación de UDM para el analizador de VPC de AWS EC2
Campo de registro (ascendente) | Asignación de UDM | Lógica |
---|---|---|
CidrBlock | event.idm.entity.entity.resource.attribute.labels.cidr_block | Se asigna directamente desde el campo "CidrBlock" del registro sin procesar. |
CidrBlock | event.idm.entity.entity.network.ip_subnet_range | Se asigna directamente desde el campo "CidrBlock" del registro sin procesar. |
CidrBlockAssociation.AssociationID | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id | Se asigna directamente desde el campo "AssociationID" de la matriz "CidrBlockAssociation" del registro sin procesar. |
CidrBlockAssociation.CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state | Se asigna directamente desde el campo "State" del objeto "CidrBlockState" de la matriz "CidrBlockAssociation" del registro sin procesar. |
CidrBlockAssociation.CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message | Se asigna directamente desde el campo "StatusMessage" del objeto "CidrBlockState" de la matriz "CidrBlockAssociation" del registro sin procesar. |
DhcpOptionsID | event.idm.entity.entity.resource.attribute.labels.dhcp_options_id | Se asigna directamente desde el campo "DhcpOptionsID" del registro sin procesar. |
ID | event.idm.entity.entity.resource.product_object_id | Se asigna directamente desde el campo "ID" del registro sin procesar, que se cambia a "VpcID" en el analizador. |
ID | event.idm.entity.metadata.product_entity_id | Se asigna directamente desde el campo "ID" del registro sin procesar, que se cambia a "VpcID" en el analizador. |
InstanceTenancy | event.idm.entity.entity.resource.attribute.labels.instance_tenancy | Se asigna directamente desde el campo "InstanceTenancy" del registro sin procesar. |
IsDefault | event.idm.entity.entity.resource.attribute.labels.is_default | Se asigna directamente desde el campo "IsDefault" del registro sin procesar. |
Ipv6CidrBlockAssociationSet.AssociationID | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id | Se asigna directamente desde el campo "AssociationID" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block | Se asigna directamente desde el campo "Ipv6CidrBlock" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state | Se asigna directamente desde el campo "State" del objeto "Ipv6CidrBlockState" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message | Se asigna directamente desde el campo "StatusMessage" del objeto "Ipv6CidrBlockState" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar. |
Ipv6CidrBlockAssociationSet.Ipv6Pool | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool | Se asigna directamente desde el campo "Ipv6Pool" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar. |
Ipv6CidrBlockAssociationSet.NetworkBorderGroup | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group | Se asigna directamente desde el campo "NetworkBorderGroup" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar. |
OwnerID | event.idm.entity.entity.resource.attribute.labels.owner_id | Se asigna directamente desde el campo "OwnerID" del registro sin procesar. |
Estado | event.idm.entity.entity.resource.attribute.labels.state | Se asigna directamente desde el campo "State" del registro sin procesar. |
TagSet.Key | event.idm.entity.entity.resource.attribute.labels.key | Se asigna directamente desde el campo "Key" de la matriz "TagSet" del registro sin procesar. De esta forma, se crea una etiqueta para cada etiqueta del "TagSet". |
TagSet.Value | event.idm.entity.entity.resource.attribute.labels.value | Se asigna directamente desde el campo "Value" de la matriz "TagSet" del registro sin procesar. De esta forma, se rellena el valor de cada etiqueta correspondiente creada a partir del campo "Clave". |
N/A | event.idm.entity.entity.resource.attribute.cloud.environment | Codificado como "AMAZON_WEB_SERVICES" en el código del analizador. |
N/A | event.idm.entity.entity.resource.resource_type | Codificado como "VPC_NETWORK" en el código del analizador. |
N/A | event.idm.entity.metadata.collected_timestamp | Se rellena con la marca de tiempo del evento, que se deriva del campo "collection_time" del registro sin procesar. |
N/A | event.idm.entity.metadata.entity_type | Codificado como "RESOURCE" en el código del analizador. |
N/A | event.idm.entity.metadata.product_name | Codificado como "Amazon VPC" en el código del analizador. |
N/A | event.idm.entity.metadata.vendor_name | Codificado como "AWS" en el código del analizador. |
N/A | events.timestamp | Se rellena con la marca de tiempo del evento, que se deriva del campo "collection_time" del registro sin procesar. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.