Collecter les journaux de flux VPC AWS
Ce document explique comment collecter les journaux de flux VPC AWS à l'aide d'un transmetteur Google Security Operations.
Pour en savoir plus, consultez Ingérer des données dans Google SecOps.
Un libellé d'ingestion identifie l'analyseur qui normalise les données de journaux brutes au format UDM structuré. Les informations de ce document s'appliquent au parseur avec le libellé d'ingestion AWS_VPC_FLOW
.
Formats de journaux de flux VPC AWS compatibles
Google SecOps permet l'ingestion des journaux de flux VPC AWS dans deux formats de texte principaux :
Format JSON : le type de journal
AWS_VPC_FLOW
analyse les journaux au format JSON. Dans ce format, chaque entrée de journal inclut à la fois une clé et sa valeur correspondante, ce qui rend les données auto-descriptives.Format CSV : Google SecOps fournit également un analyseur pour les journaux de flux VPC AWS au format CSV. Dans ce format, les clés de champ ne sont listées qu'une seule fois dans la ligne d'en-tête, les lignes suivantes ne contenant que des valeurs séparées par des virgules.
Pour ingérer des journaux de flux VPC AWS au format CSV, spécifiez le type de journal AWS_VPC_FLOW_CSV
lorsque vous configurez votre transmetteur. Pour obtenir des instructions de configuration, consultez Configurer le redirecteur Google SecOps et syslog pour ingérer les journaux de flux VPC AWS.
Étant donné que le format CSV n'inclut pas de clés de champ dans chaque entrée de journal, l'analyseur AWS_VPC_FLOW_CSV
repose sur un ordre strict et prédéfini des valeurs. Pour que vos fichiers CSV soient analysés correctement, ils doivent respecter l'ordre des champs suivant :
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
Voici un exemple de ligne de journal 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,,-,-,-,-,-,-,-,-,-,-
Pour les champs pour lesquels aucune valeur n'est disponible, une valeur vide (par exemple, , ,
) doit être transmise pour conserver le bon ordre positionnel dans la ligne CSV.
Avant de commencer
Assurez-vous que le bucket Amazon S3 est créé. Pour en savoir plus, consultez Créer votre premier bucket S3.
Assurez-vous que le groupe de journaux Amazon CloudWatch a été créé. Pour en savoir plus, consultez Utiliser des groupes de journaux et des flux de journaux.
Configurer les journaux de flux VPC AWS
Configurez AWS VPC Flow selon que vous transférez les journaux vers Amazon S3 ou Amazon CloudWatch.
Pour savoir comment transférer des journaux vers le bucket Amazon S3, consultez la section Configurer les journaux de flux pour les transférer vers Amazon S3 de ce document.
Pour savoir comment transférer des journaux vers Amazon CloudWatch, consultez la section Configurer les journaux de flux vers Amazon CloudWatch de ce document.
Configurer les journaux de flux pour transférer les journaux vers Amazon S3
Une fois le bucket Amazon S3 créé et configuré, vous pouvez créer des journaux de flux pour vos interfaces réseau, vos sous-réseaux et vos réseaux VPC.
Créer un journal de flux pour une interface réseau
- Connectez-vous à la console Amazon EC2.
- Dans le volet de navigation, sélectionnez Interfaces réseau.
- Sélectionnez une ou plusieurs interfaces réseau.
- Sélectionnez Actions> Créer un journal de flux.
- Configurez les paramètres des journaux de flux. Pour en savoir plus, consultez la section Configurer les paramètres des journaux de flux de ce document.
Créer un journal de flux pour un sous-réseau
- Connectez-vous à la console Amazon VPC.
- Dans le volet de navigation, sélectionnez Sous-réseaux.
- Sélectionnez un ou plusieurs sous-réseaux.
- Sélectionnez Actions> Créer un journal de flux.
- Configurez les paramètres des journaux de flux. Pour en savoir plus, consultez la section Configurer les paramètres des journaux de flux de ce document.
Créer un journal de flux pour un VPC
- Connectez-vous à la console Amazon VPC.
- Dans le volet de navigation, sélectionnez VPC.
- Sélectionnez un ou plusieurs VPC.
- Sélectionnez Actions> Créer un journal de flux.
- Configurez les paramètres des journaux de flux. Pour en savoir plus, consultez la section Configurer les paramètres des journaux de flux de ce document.
Configurer les paramètres des journaux de flux
Dans la section Filtre, spécifiez le trafic IP à consigner :
Accepter : enregistre uniquement le trafic accepté.
Refuser : enregistre uniquement le trafic refusé.
Tous : enregistre le trafic accepté et refusé.
Dans la section Intervalle d'agrégation maximal, sélectionnez 1 minute.
Dans la section Destination, sélectionnez Envoyer vers un bucket Amazon S3.
Dans la section ARN du bucket S3, spécifiez l'ARN d'un bucket Amazon S3.
Dans la section Format des enregistrements de journaux, spécifiez les formats suivants pour l'enregistrement du journal de flux :
- Pour utiliser le format d'enregistrement des journaux de flux par défaut, sélectionnez Format AWS par défaut.
- Pour créer un format personnalisé, sélectionnez Format personnalisé.
Configurez le flux de journaux VPC avec le format de journal AWS personnalisé pour utiliser les fonctionnalités d'adresse IP réelle MSS.
Dans la liste Format du journal, sélectionnez tous les attributs.
Dans la section Aperçu du format, examinez le format personnalisé.
Dans la section Format du fichier journal, sélectionnez Texte (par défaut).
Dans la section Préfixe S3 compatible avec Hive, laissez la case Activer décochée.
Dans la section Partitionner les journaux par heure, sélectionnez Toutes les heures (60 minutes).
Pour ajouter un tag au journal de flux, sélectionnez Ajouter un tag, puis spécifiez la clé et la valeur du tag.
Sélectionnez Créer un journal de flux. Pour en savoir plus, consultez Publier des journaux de flux sur Amazon S3.
Configurer les journaux de flux vers Amazon CloudWatch
Vous pouvez configurer les journaux de flux à partir des VPC, des sous-réseaux ou des interfaces réseau.
Dans la section Filtre, spécifiez le type de trafic IP à enregistrer :
Accepter : enregistre uniquement le trafic accepté.
Refuser : enregistre uniquement le trafic refusé.
Tous : enregistre le trafic accepté et refusé.
Dans la section Intervalle d'agrégation maximal, sélectionnez 1 minute.
Dans la section Destination, sélectionnez Envoyer à CloudWatch Logs.
Dans la section Destination log group (Groupe de journaux de destination), indiquez le nom du groupe de journaux de destination que vous avez créé.
Dans la liste Rôle IAM, sélectionnez le nom du rôle. Le nom de rôle sélectionné dispose des autorisations nécessaires pour publier des journaux dans les journaux CloudWatch.
Le rôle IAM doit inclure les autorisations suivantes :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" } ] }
Dans la section Format des enregistrements de journaux, sélectionnez Format personnalisé pour l'enregistrement du journal de flux.
Pour ajouter un tag au journal de flux, sélectionnez Ajouter un tag, puis spécifiez la clé et la valeur du tag.
Sélectionnez Créer un journal de flux. Pour en savoir plus, consultez Publier des journaux de flux sur Amazon S3.
Amazon S3 peut être configuré pour envoyer les notifications d'événement à Amazon SQS. Pour en savoir plus, consultez Configurer un bucket pour les notifications (rubrique SNS ou file d'attente SQS).
Des règles utilisateur IAM sont requises pour Amazon S3 et Amazon SQS si vous utilisez Amazon SQS (Amazon S3 avec Amazon SQS) comme méthode de collecte des journaux. Pour en savoir plus, consultez Utiliser des stratégies IAM avec AWS KMS.
En fonction du service et de la région, identifiez les points de terminaison pour la connectivité en vous référant à la documentation AWS suivante :
Pour en savoir plus sur les sources de journaux, consultez Points de terminaison et quotas AWS Identity and Access Management.
Pour en savoir plus sur les sources de journaux Amazon S3, consultez Points de terminaison et quotas Amazon Simple Storage Service.
Pour en savoir plus sur les sources de journaux Amazon SQS, consultez Points de terminaison et quotas Amazon Simple Queue Service.
Pour en savoir plus sur les sources de journaux Amazon CloudWatch, consultez Points de terminaison et quotas des journaux Amazon CloudWatch.
Configurer le transfert Google SecOps et Syslog pour ingérer les journaux de flux VPC AWS
- Sélectionnez Paramètres SIEM> Relais.
- Cliquez sur Ajouter un nouveau transfert.
- Saisissez un nom unique pour le nom du transitaire.
- Cliquez sur Envoyer, puis sur Confirmer. Le redirecteur est ajouté et la fenêtre Ajouter une configuration de collecteur s'affiche.
- Dans le champ Nom du collecteur, saisissez un nom.
- Dans le champ Type de journal, sélectionnez Flux VPC AWS ou Flux VPC AWS (CSV), selon le format de votre journal.
- Dans le champ Type de collecteur, sélectionnez Syslog.
- Configurez les paramètres d'entrée obligatoires suivants :
- Protocole : spécifiez le protocole de connexion que le collecteur utilisera pour écouter les données Syslog.
- Adresse : spécifiez l'adresse IP ou le nom d'hôte cibles où réside le collecteur et les adresses des données syslog.
- Port : spécifiez le port cible sur lequel le collecteur réside et écoute les données syslog.
- Cliquez sur Envoyer, puis sur Confirmer.
Pour en savoir plus sur les répartiteurs Google SecOps, consultez la documentation sur les répartiteurs Google Security Operations. Pour en savoir plus sur les exigences de chaque type de redirecteur, consultez Configuration des redirecteurs par type.
Si vous rencontrez des problèmes lors de la création de transferts, contactez l'assistance Google Security Operations.
Référence du mappage de champs
Ce parseur transforme les journaux de flux VPC AWS bruts (au format JSON ou CSV) en format UDM structuré. Il extrait les champs pertinents, les mappe pour qu'ils correspondent au schéma UDM et enrichit les données avec un contexte supplémentaire (type de ressource, fournisseur de services cloud et libellés, par exemple) pour permettre une analyse plus approfondie. La logique de mappage est cohérente dans les deux formats : l'analyseur CSV s'appuie sur un ordre de champ prédéfini pour aligner les valeurs avec les mêmes champs UDM utilisés dans le format JSON.
Table de mappage UDM pour l'analyseur AWS EC2 VPC
Champ du journal (ordre croissant) | Mappage UDM | Logique |
---|---|---|
CidrBlock | event.idm.entity.entity.resource.attribute.labels.cidr_block | Mappé directement à partir du champ "CidrBlock" dans le journal brut. |
CidrBlock | event.idm.entity.entity.network.ip_subnet_range | Mappé directement à partir du champ "CidrBlock" dans le journal brut. |
CidrBlockAssociation.AssociationID | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id | Mappé directement à partir du champ "AssociationID" dans le tableau "CidrBlockAssociation" du journal brut. |
CidrBlockAssociation.CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state | Directement mappé à partir du champ "State" dans l'objet "CidrBlockState" du tableau "CidrBlockAssociation" dans le journal brut. |
CidrBlockAssociation.CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message | Directement mappé à partir du champ "StatusMessage" dans l'objet "CidrBlockState" du tableau "CidrBlockAssociation" dans le journal brut. |
DhcpOptionsID | event.idm.entity.entity.resource.attribute.labels.dhcp_options_id | Mappé directement à partir du champ "DhcpOptionsID" du journal brut. |
ID | event.idm.entity.entity.resource.product_object_id | Mappé directement à partir du champ "ID" du journal brut, qui est renommé "VpcID" dans l'analyseur. |
ID | event.idm.entity.metadata.product_entity_id | Mappé directement à partir du champ "ID" du journal brut, qui est renommé "VpcID" dans l'analyseur. |
InstanceTenancy | event.idm.entity.entity.resource.attribute.labels.instance_tenancy | Directement mappé à partir du champ "InstanceTenancy" du journal brut. |
IsDefault | event.idm.entity.entity.resource.attribute.labels.is_default | Mappé directement à partir du champ "IsDefault" dans le journal brut. |
Ipv6CidrBlockAssociationSet.AssociationID | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id | Mappé directement à partir du champ "AssociationID" dans le tableau "Ipv6CidrBlockAssociationSet" du journal brut. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block | Mappé directement à partir du champ "Ipv6CidrBlock" dans le tableau "Ipv6CidrBlockAssociationSet" du journal brut. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state | Directement mappé à partir du champ "State" dans l'objet "Ipv6CidrBlockState" du tableau "Ipv6CidrBlockAssociationSet" dans le journal brut. |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message | Directement mappé à partir du champ "StatusMessage" dans l'objet "Ipv6CidrBlockState" du tableau "Ipv6CidrBlockAssociationSet" dans le journal brut. |
Ipv6CidrBlockAssociationSet.Ipv6Pool | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool | Mappé directement à partir du champ "Ipv6Pool" dans le tableau "Ipv6CidrBlockAssociationSet" du journal brut. |
Ipv6CidrBlockAssociationSet.NetworkBorderGroup | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group | Mappé directement à partir du champ "NetworkBorderGroup" dans le tableau "Ipv6CidrBlockAssociationSet" du journal brut. |
OwnerID | event.idm.entity.entity.resource.attribute.labels.owner_id | Mappé directement à partir du champ "OwnerID" dans le journal brut. |
État | event.idm.entity.entity.resource.attribute.labels.state | Mappé directement à partir du champ "État" du journal brut. |
TagSet.Key | event.idm.entity.entity.resource.attribute.labels.key | Directement mappé à partir du champ "Key" (Clé) dans le tableau "TagSet" du journal brut. Un libellé est créé pour chaque tag du "TagSet". |
TagSet.Value | event.idm.entity.entity.resource.attribute.labels.value | Mappé directement à partir du champ "Value" du tableau "TagSet" dans le journal brut. La valeur de chaque libellé correspondant créé à partir du champ "Clé" est alors renseignée. |
N/A | event.idm.entity.entity.resource.attribute.cloud.environment | Codé en dur sur "AMAZON_WEB_SERVICES" dans le code du parseur. |
N/A | event.idm.entity.entity.resource.resource_type | Codé en dur sur "VPC_NETWORK" dans le code du parseur. |
N/A | event.idm.entity.metadata.collected_timestamp | Valeur insérée avec l'horodatage de l'événement, qui est dérivé du champ "collection_time" dans le journal brut. |
N/A | event.idm.entity.metadata.entity_type | Codé en dur sur "RESOURCE" dans le code du parseur. |
N/A | event.idm.entity.metadata.product_name | Codé en dur sur "Amazon VPC" dans le code du parseur. |
N/A | event.idm.entity.metadata.vendor_name | Codé en dur sur "AWS" dans le code du parseur. |
N/A | events.timestamp | Valeur insérée avec l'horodatage de l'événement, qui est dérivé du champ "collection_time" dans le journal brut. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.