Collecter les journaux Amazon CloudFront

Compatible avec :

Ce document explique comment collecter les journaux Amazon CloudFront en configurant un flux Google Security Operations.

Pour en savoir plus, consultez la présentation de l'ingestion de données dans Google Security Operations.

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_CLOUDFRONT.

Avant de commencer

Assurez-vous que le bucket Amazon S3 a été créé. Pour en savoir plus, consultez Créer votre premier bucket S3.

Configurer Amazon CloudFront

  1. Connectez-vous à la console AWS Management.
  2. Accédez à la console Amazon S3 et créez le bucket Amazon S3.
  3. Cliquez sur Activé pour activer la journalisation.
  4. Dans le champ Bucket pour les journaux, spécifiez le nom du bucket Amazon S3.
  5. Dans le champ Préfixe du journal, spécifiez un préfixe facultatif.
  6. Une fois les fichiers journaux stockés dans le bucket Amazon S3, créez une file d'attente SQS et associez-la au bucket Amazon S3.

Identifier les points de terminaison pour la connectivité

Vérifiez les stratégies IAM (Identity and Access Management) et de clé KMS requises pour S3, SQS et 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 :

Configurer des flux

Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :

  • Paramètres SIEM> Flux
  • Plate-forme de contenu > Packs de contenu

Configurer des flux à partir de Paramètres SIEM > Flux

Pour configurer plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.

Pour configurer un seul flux :

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Saisissez un nom unique pour le nom du flux.
  5. Sélectionnez Amazon S3 ou Amazon SQS comme Type de source.
  6. Sélectionnez AWS CloudFront comme Type de journal.
  7. Cliquez sur Suivant.
  8. Google SecOps permet de collecter des journaux à l'aide d'un ID de clé d'accès et d'une clé secrète. Pour créer un ID de clé d'accès et un secret, consultez Configurer l'authentification des outils avec AWS.
  9. En fonction de la configuration Amazon CloudFront que vous avez créée, spécifiez des valeurs pour les champs suivants :
    • Si vous utilisez Amazon S3, spécifiez les valeurs des champs suivants :
      • Région
      • URI S3
      • L'URI est un
      • Option de suppression de la source
    • Si vous utilisez Amazon SQS, spécifiez les valeurs des champs suivants :
      • Région
      • Nom de la file d'attente
      • Numéro de compte
      • ID de clé d'accès à la file d'attente
      • Clé d'accès secrète de la file d'attente
      • Option de suppression de la source
  10. Cliquez sur Suivant, puis sur Envoyer.

Pour envoyer les journaux Amazon CloudFront au bucket Amazon S3, consultez Configurer et utiliser les journaux standards (journaux d'accès).

Configurer des flux depuis le Hub de contenu

Vous pouvez configurer le flux d'ingestion dans Google SecOps à l'aide d'Amazon SQS (méthode recommandée) ou d'Amazon S3.

Indiquez les valeurs des champs suivants :

  • Région : région où le bucket S3 ou la file d'attente SQS sont hébergés.
  • Nom de la file d'attente : nom de la file d'attente SQS à partir de laquelle lire les données de journaux.
  • Numéro de compte : numéro de compte propriétaire de la file d'attente SQS.
  • ID de clé d'accès à la file d'attente : ID de clé d'accès au compte de 20 caractères. Exemple :AKIAOSFOODNN7EXAMPLE
  • Clé d'accès secrète de la file d'attente : clé d'accès secrète de 40 caractères. Exemple :wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  • Option de suppression de la source : option permettant de supprimer les fichiers et les répertoires après le transfert des données.

Options avancées

  • Nom du flux : valeur préremplie qui identifie le flux.
  • Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
  • Espace de noms de l'élément : espace de noms associé au flux.
  • Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.

Pour en savoir plus sur les flux Google Security Operations, consultez la documentation sur les flux Google Security Operations. Pour en savoir plus sur les exigences de chaque type de flux, consultez Configuration des flux par type. Si vous rencontrez des problèmes lors de la création de flux, contactez l'assistance Google Security Operations.

Référence du mappage de champs

Ce parseur extrait les champs des journaux AWS CloudFront au format SYSLOG ou JSON, et les normalise dans l'UDM. Il utilise des modèles Grok pour analyser les chaînes de messages, gère diverses transformations de données (par exemple, les conversions de type et les renommages), et enrichit les données avec un contexte supplémentaire, comme l'analyse de l'agent utilisateur et l'identification du protocole d'application.

Table de mappage UDM

Champ de journal Mappage UDM Logique
c-ip principal.ip Mappé directement. Également mappé sur principal.asset.ip.
c-port principal.port Mappé directement.
cs(Cookie) additional.fields[].key : "cookie"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle si cs(Cookie) est présent et que agent ne contient pas "://".
cs(Host) principal.hostname Mappé directement. Également mappé sur principal.asset.hostname. Utilisé pour construire le target.url si d'autres champs d'URL ne sont pas disponibles.
cs(Referer) network.http.referral_url Mappé directement.
cs(User-Agent) network.http.user_agent Mappé directement. Également mappé sur network.http.parsed_user_agent et analysé dans ses composants s'il ne contient pas "://".
cs-bytes network.sent_bytes Mappé directement. Converti en entier non signé.
cs-method network.http.method Mappé directement.
cs-protocol network.application_protocol Mappé après conversion en majuscules. Si la valeur n'est pas reconnue comme protocole d'application standard et que cs-protocol-version contient "HTTP", network.application_protocol est défini sur "HTTP".
dport target.port Mappé directement. Converti en entier.
edge_location principal.location.name Mappé directement.
fle-encrypted-fields additional.fields[].key: "fle-encrypted-fields"
additional.fields[].value.string_value: mappé directement.
Mappé de manière conditionnelle, le cas échéant.
fle-status additional.fields[].key : "fle-status"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
host principal.hostname, principal.asset.hostname Mappé directement.
id principal.asset_id Mappé directement avec le préfixe "id: ".
ip target.ip, target.asset.ip Mappé directement.
log_id metadata.product_log_id Mappé directement.
resource additional.fields[].key: "resource"
additional.fields[].value.string_value: mappé directement.
Mappé de manière conditionnelle, le cas échéant.
result_type additional.fields[].key : "result_type"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
sc-bytes network.received_bytes Mappé directement. Converti en entier non signé.
sc-content-len additional.fields[].key : "sc-content-len"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
sc-content-type additional.fields[].key : "sc-content-type"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
sc-status network.http.response_code Mappé directement. Converti en entier.
ssl-cipher network.tls.cipher Mappé directement.
ssl-protocol network.tls.version Mappé directement.
timestamp metadata.event_timestamp Analysé et mis en correspondance, si disponible. Différents formats sont acceptés.
ts metadata.event_timestamp Analysé et mis en correspondance, si disponible. Le format ISO8601 est attendu.
url target.url Mappé directement.
url_back_to_product metadata.url_back_to_product Mappé directement.
x-edge-detailed-result-type additional.fields[].key : "x-edge-detailed-result-type"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
x-edge-location additional.fields[].key : "x-edge-location"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
x-edge-request-id additional.fields[].key : "x-edge-request-id"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
x-edge-response-result-type additional.fields[].key : "x-edge-response-result-type"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
x-edge-result-type additional.fields[].key : "x-edge-result-type"
additional.fields[].value.string_value : mappé directement.
Mappé de manière conditionnelle, le cas échéant.
x-forwarded-for target.ip, target.asset.ip Mappé directement. Si plusieurs adresses IP sont présentes (séparées par une virgule), elles sont divisées et fusionnées dans les champs UDM respectifs.
x-host-header target.hostname, target.asset.hostname Mappé directement. Définissez sur "NETWORK_HTTP" si ip ou x-forwarded-for et http_verb sont présents. Sinon, définissez-le sur "GENERIC_EVENT". Codé en dur sur "AWS_CLOUDFRONT". Codé en dur sur "AWS CloudFront". Codé en dur sur "AMAZON". Heure d'ingestion de l'entrée de journal dans Google Security Operations.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.