Collecter les journaux de flux VPC AWS

Compatible avec:

Ce document explique comment collecter les journaux de flux VPC AWS à l'aide d'un transfert Google Security Operations.

Pour en savoir plus, consultez Ingestion de données dans Google Security Operations.

Un libellé d'ingestion identifie l'analyseur qui normalise les données de journal brutes au format UDM structuré. Les informations de ce document s'appliquent à l'analyseur avec le libellé d'ingestion AWS_VPC_FLOW.

Avant de commencer

Configurer le flux VPC AWS

Configurez le flux AWS VPC en fonction de l'envoi des journaux vers Amazon S3 ou Amazon CloudWatch.

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

  1. Connectez-vous à la console Amazon EC2.
  2. Dans le volet de navigation, sélectionnez Interfaces réseau.
  3. Sélectionnez une ou plusieurs interfaces réseau.
  4. Sélectionnez Actions > Créer un journal de flux.
  5. 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

  1. Connectez-vous à la console Amazon VPC.
  2. Dans le volet de navigation, sélectionnez Sous-réseaux.
  3. Sélectionnez un ou plusieurs sous-réseaux.
  4. Sélectionnez Actions > Créer un journal de flux.
  5. 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

  1. Connectez-vous à la console Amazon VPC.
  2. Dans le volet de navigation, sélectionnez VPC.
  3. Sélectionnez un ou plusieurs VPC.
  4. Sélectionnez Actions > Créer un journal de flux.
  5. 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

  1. Dans la section Filtre, spécifiez le trafic IP à consigner:

    • Accept (Accepter) : n'enregistre que le trafic accepté.

    • Refuser: n'enregistre que le trafic refusé.

    • Toutes: enregistre le trafic accepté et refusé.

  2. Dans la section Intervalle d'agrégation maximal, sélectionnez 1 minute.

  3. Dans la section Destination, sélectionnez Envoyer vers un bucket Amazon S3.

  4. Dans la section ARN du bucket S3, spécifiez l'ARN d'un bucket Amazon S3.

  5. Dans la section Format de l'enregistrement de journal, spécifiez les formats suivants pour l'enregistrement de journal de flux:

    1. Pour utiliser le format d'enregistrement du journal des flux par défaut, sélectionnez Format par défaut d'AWS.
    2. Pour créer un format personnalisé, sélectionnez Format personnalisé.
  6. Configurez le flux de journaux VPC avec le format de journal AWS personnalisé pour utiliser les fonctionnalités d'IP réelles MSS.

  7. Dans la liste Format du journal, sélectionnez tous les attributs.

  8. Dans la section Aperçu du format, examinez le format personnalisé.

  9. Dans la section Format de fichier journal, sélectionnez Texte (par défaut).

  10. Dans la section Préfixe S3 compatible avec Hive, laissez la case Enable (Activer) décochée.

  11. Dans la section Partitionner les journaux par heure, sélectionnez Toutes les heures (60 min).

  12. Pour ajouter un tag au journal des flux, sélectionnez Ajouter un tag, puis spécifiez la clé et la valeur du tag.

  13. Sélectionnez Créer un journal de flux. Pour en savoir plus, consultez Publier des journaux de flux dans Amazon S3.

Configurer les journaux de flux dans Amazon CloudWatch

Vous pouvez configurer les journaux de flux à partir de VPC, de sous-réseaux ou d'interfaces réseau.

  1. Dans la section Filtre, spécifiez le type de trafic IP à consigner:

    • Accept (Accepter) : n'enregistre que le trafic accepté.

    • Refuser: n'enregistre que le trafic refusé.

    • Toutes: enregistre le trafic accepté et refusé.

  2. Dans la section Intervalle d'agrégation maximal, sélectionnez 1 minute.

  3. Dans la section Destination, sélectionnez Envoyer à CloudWatch Logs.

  4. Dans la section Groupe de journaux de destination, indiquez le nom du groupe de journaux de destination que vous avez créé.

  5. Dans la liste Rôle IAM, sélectionnez le nom du rôle. Le nom du 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": "*"
         }
        ]
       }
    
  6. Dans la section Format d'enregistrement de journal, sélectionnez Format personnalisé pour l'enregistrement du journal de flux.

  7. Pour ajouter un tag au journal des flux, sélectionnez Ajouter un tag, puis spécifiez la clé et la valeur du tag.

  8. Sélectionnez Créer un journal de flux. Pour en savoir plus, consultez Publier des journaux de flux dans 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 (thème SNS ou file d'attente SQS).

Les stratégies d'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 de connectivité en vous reportant à la documentation AWS suivante:

Configurer le transfert Google Security Operations et le syslog pour ingérer les journaux de flux VPC AWS

  1. Sélectionnez Paramètres du SIEM > Transferts.
  2. Cliquez sur Ajouter un forwarder.
  3. Saisissez un nom unique pour le nom du transporteur.
  4. Cliquez sur Envoyer, puis sur Confirmer. Le forwarder est ajouté, et la fenêtre Ajouter une configuration de collecteur s'affiche.
  5. Dans le champ Nom du collecteur, saisissez un nom.
  6. Dans le champ Log type (Type de journal), sélectionnez AWS VPC Flow (Flux VPC AWS).
  7. Dans le champ Type de collecteur, sélectionnez Syslog.
  8. 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.
    • Address (Adresse) : spécifiez l'adresse IP ou le nom d'hôte cible où se trouve le collecteur, ainsi que les adresses des données syslog.
    • Port: spécifiez le port cible sur lequel se trouve le collecteur et qui écoute les données syslog.
  9. Cliquez sur Envoyer, puis sur Confirmer.

Pour en savoir plus sur les transferts Google Security Operations, consultez la documentation sur les transferts Google Security Operations. Pour en savoir plus sur les exigences de chaque type de forwarder, consultez la section Configuration des forwarders par type.

Si vous rencontrez des problèmes lors de la création de transmetteurs, contactez l'assistance Google Security Operations.

Référence du mappage de champs

Ce code d'analyseur prend les journaux AWS CloudTrail bruts au format JSON décrivant les événements VPC EC2 et les transforme en format UDM structuré. Il extrait les champs pertinents, les renomme pour qu'ils correspondent au schéma UDM et enrichit les données avec un contexte supplémentaire, comme le type de ressource, l'environnement cloud et les libellés, pour faciliter l'analyse.

Tableau de mappage UDM pour l'analyseur VPC AWS EC2

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 Mappé directement à partir du champ "État" de 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 Mappé directement à partir du champ "StatusMessage" de 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" dans le 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 Mappé directement à partir du champ "InstanceTenancy" dans le 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 Mappé directement à partir du champ "État" de 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 Mappé directement à partir du champ "StatusMessage" de 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 Mappé directement à partir du champ "Key" (Clé) dans le tableau "TagSet" (Ensemble de balises) du journal brut. Un libellé est créé pour chaque balise du "TagSet".
TagSet.Value event.idm.entity.entity.resource.attribute.labels.value Mappé directement à partir du champ "Valeur" du tableau "TagSet" dans le journal brut. La valeur de chaque libellé correspondant créé à partir du champ "Clé" est ainsi renseignée.
N/A event.idm.entity.entity.resource.attribute.cloud.environment Code codé en dur sur "AMAZON_WEB_SERVICES" dans le code de l'analyseur.
N/A event.idm.entity.entity.resource.resource_type Codé en dur sur "VPC_NETWORK" dans le code de l'analyseur.
N/A event.idm.entity.metadata.collected_timestamp Inséré 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 de l'analyseur.
N/A event.idm.entity.metadata.product_name Codé en dur sur "Amazon VPC" dans le code de l'analyseur.
N/A event.idm.entity.metadata.vendor_name Codé en dur sur "AWS" dans le code de l'analyseur.
N/A events.timestamp Inséré avec l'horodatage de l'événement, qui est dérivé du champ "collection_time" dans le journal brut.