Collecter les journaux Amazon CloudFront
Ce document explique comment collecter les journaux Amazon CloudFront en configurant un flux Google Security Operations.
Pour en savoir plus, consultez la section 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 journal brutes au format UDM structuré. Les informations de ce document s'appliquent à l'analyseur avec le libellé d'ingestion AWS_CLOUDFRONT
.
Avant de commencer
Assurez-vous que le bucket Amazon S3 est créé. Pour en savoir plus, consultez Créer votre premier bucket S3.
Configurer Amazon CloudFront
- Connectez-vous à la console AWS Management.
- Accédez à la console Amazon S3 et créez le bucket Amazon S3.
- Pour activer la journalisation, sélectionnez Activé.
- Dans le champ Bucket for logs (Bucket pour les journaux), spécifiez le nom du bucket Amazon S3.
- Dans le champ Préfixe de journal, spécifiez un préfixe facultatif.
- Une fois les fichiers de 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 de clé IAM et de clé KMS requises pour S3, SQS et KMS.
En fonction du service et de la région, identifiez les points de terminaison de connectivité en vous reportant à la documentation AWS suivante:
- Pour en savoir plus sur les sources de journalisation, consultez Points de terminaison et quotas AWS Identity and Access Management.
- Pour en savoir plus sur les sources de journalisation S3, consultez Points de terminaison et quotas Amazon Simple Storage Service.
- Pour en savoir plus sur les sources de journalisation SQS, consultez Points de terminaison et quotas Amazon Simple Queue Service.
Configurer un flux dans Google Security Operations pour ingérer les journaux Amazon CloudFront
- Sélectionnez Paramètres du SIEM > Flux.
- Cliquez sur Ajouter.
- Saisissez un nom unique pour le nom du flux.
- Sélectionnez Amazon S3 ou Amazon SQS comme Type de source.
- Sélectionnez AWS CloudFront comme Type de journal.
- Cliquez sur Suivant.
- Google Security Operations prend en charge la collecte de journaux à l'aide de l'ID de clé d'accès et de la méthode secrète. Pour créer un ID de clé d'accès et un secret, consultez Configurer l'authentification de l'outil avec AWS.
- 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
- Un 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 de la file d'attente
- Clé d'accès secrète mise en file d'attente
- Option de suppression de la source
- Si vous utilisez Amazon S3, spécifiez les valeurs des champs suivants :
- Cliquez sur Suivant, puis sur Envoyer.
Pour envoyer les journaux Amazon CloudFront au bucket Amazon S3, consultez Configurer et utiliser des journaux standards (journaux d'accès).
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 la section Configuration des flux par type. Si vous rencontrez des problèmes lorsque vous créez des flux, contactez l'assistance Google Security Operations.
Référence de mappage de champ
Cet analyseur extrait des 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, le renommage) et enrichit les données avec un contexte supplémentaire, comme l'analyse de l'agent utilisateur et l'identification du protocole d'application.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
c-ip |
principal.ip |
Mappage direct. Également mappé sur principal.asset.ip . |
c-port |
principal.port |
Mappage direct. |
cs(Cookie) |
additional.fields[].key : "cookie"additional.fields[].value.string_value : mappé directement. |
Mappage conditionnel si cs(Cookie) est présent et que agent ne contient pas "://". |
cs(Host) |
principal.hostname |
Mappage direct. Également mappé sur principal.asset.hostname . Utilisé pour créer target.url si d'autres champs d'URL ne sont pas disponibles. |
cs(Referer) |
network.http.referral_url |
Mappage direct. |
cs(User-Agent) |
network.http.user_agent |
Mappage direct. Également mappé sur network.http.parsed_user_agent et analysé en composants s'il ne contient pas "://". |
cs-bytes |
network.sent_bytes |
Mappage direct. Converti en entier sans signature. |
cs-method |
network.http.method |
Mappage direct. |
cs-protocol |
network.application_protocol |
Mappé après conversion en majuscules. Si la valeur n'est pas reconnue comme un protocole d'application standard et que cs-protocol-version contient "HTTP", network.application_protocol est défini sur "HTTP". |
dport |
target.port |
Mappage direct. Converti en entier. |
edge_location |
principal.location.name |
Mappage direct. |
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 |
Mappage direct. |
id |
principal.asset_id |
Mappé directement avec le préfixe "id: ". |
ip |
target.ip , target.asset.ip |
Mappage direct. |
log_id |
metadata.product_log_id |
Mappage direct. |
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 |
Mappage direct. Converti en entier sans signature. |
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 |
Mappage direct. Converti en entier. |
ssl-cipher |
network.tls.cipher |
Mappage direct. |
ssl-protocol |
network.tls.version |
Mappage direct. |
timestamp |
metadata.event_timestamp |
Analysé et mappé, le cas échéant. Différents formats sont acceptés. |
ts |
metadata.event_timestamp |
Analysé et mappé, le cas échéant. Le format ISO 8601 est attendu. |
url |
target.url |
Mappage direct. |
url_back_to_product |
metadata.url_back_to_product |
Mappage direct. |
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 |
Mappage direct. 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 |
Mappage direct. Définissez cette valeur sur "NETWORK_HTTP" si ip ou x-forwarded-for et http_verb sont présents. Sinon, définissez-le sur "GENERIC_EVENT". Code codé en dur sur "AWS_CLOUDFRONT". Code dur "AWS CloudFront". Code dur "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.