Configuration de la journalisation standard (v2) - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de la journalisation standard (v2)

Vous pouvez activer les journaux d'accès (journaux standard) lorsque vous créez ou mettez à jour une distribution. La journalisation standard (v2) comprend les fonctionnalités suivantes :

Si vous utilisez Amazon S3, vous disposez des fonctionnalités optionnelles suivantes :

  • Envoyez des journaux pour vous inscrire. Régions AWS

  • Organisation des journaux à l’aide du partitionnement.

  • Activation des noms de fichiers compatibles avec Hive.

Pour plus d’informations, consultez Envoi de journaux vers Amazon S3.

Pour commencer avec la journalisation standard, procédez comme suit :

  1. Configurez les autorisations requises pour la personne spécifiée Service AWS qui recevra vos journaux.

  2. Configurez la journalisation standard depuis la CloudFront console ou l' CloudWatch API.

  3. Affichez vos journaux d’accès.

Note
  • L’activation de la journalisation standard (v2) n’a aucun impact sur la journalisation standard (héritée). Vous pouvez continuer à utiliser la journalisation standard (héritée) pour votre distribution, en plus de la journalisation standard (v2). Pour plus d’informations, consultez Configurer la journalisation standard (héritée).

  • Si vous utilisez déjà la journalisation standard (héritée) et que vous souhaitez activer la journalisation standard (v2) sur Amazon S3, nous vous conseillons d’indiquer un compartiment Amazon S3 différent ou d’utiliser un chemin distinct dans le même compartiment (par exemple, un préfixe de journal ou un partitionnement). Vous pouvez ainsi facilement identifier les fichiers journaux associés à chaque distribution, tout en évitant qu’ils ne se remplacent mutuellement.

Permissions

CloudFront utilise des CloudWatch journaux vendus pour fournir des journaux d'accès. Pour ce faire, vous devez disposer des autorisations relatives à ce qui Service AWS est spécifié afin de pouvoir activer la livraison des journaux.

Pour connaître les autorisations requises pour chaque destination de journalisation, choisissez l'une des rubriques suivantes dans le guide de l'utilisateur Amazon CloudWatch Logs.

Une fois les autorisations configurées pour votre destination de journalisation, vous pouvez activer la journalisation standard sur votre distribution.

Note

CloudFront prend en charge l'envoi de journaux d'accès à différents Comptes AWS (comptes croisés). Pour activer la livraison entre comptes, les deux comptes (le vôtre et celui du destinataire) doivent disposer des autorisations requises. Pour plus d'informations, consultez la Activation de la journalisation standard pour la livraison entre comptes section ou l'exemple de livraison entre comptes dans le guide de l'utilisateur Amazon CloudWatch Logs.

Activation de la journalisation standard

Pour activer la journalisation standard, vous pouvez utiliser la CloudFront console ou l' CloudWatch API.

Activer la journalisation standard (CloudFrontconsole)

Pour activer la journalisation standard pour une CloudFront distribution (console)
  1. Utilisez la CloudFront console pour mettre à jour une distribution existante.

  2. Sélectionnez l'onglet Logging (Journalisation).

  3. Choisissez Ajouter, puis sélectionnez le service qui recevra vos journaux :

    • CloudWatch Journaux

    • Firehose

    • Amazon S3

  4. Pour la Destination, sélectionnez la ressource correspondant à votre service. Si vous n’avez pas encore créé votre ressource, vous pouvez sélectionner Créer ou consulter la documentation ci-dessous.

    • Pour CloudWatch Logs, entrez le nom du groupe de logs.

    • Pour Firehose, saisissez le Flux de diffusion Firehose.

    • Pour Amazon S3, saisissez le Nom du compartiment.

      Astuce

      Pour ajouter un préfixe, saisissez-le après le nom du compartiment, par exemple amzn-s3-demo-bucket.s3.amazonaws.com/MyLogPrefix. Si vous ne spécifiez pas de préfixe, il en CloudFront ajoutera automatiquement un pour vous. Pour de plus amples informations, veuillez consulter Envoi de journaux vers Amazon S3.

  5. Pour Paramètres supplémentaires – facultatif, vous pouvez définir les options suivantes :

    1. Pour la Sélection des champs, sélectionnez les noms de champs de journaux que vous souhaitez envoyer vers votre destination. Vous pouvez sélectionner les champs du journal d'accès et un sous-ensemble de champs du journal d'accès en temps réel.

    2. (Amazon S3 uniquement) Pour le Partitionnement, indiquez le chemin permettant de partitionner les données de votre fichier journal.

    3. (Amazon S3 uniquement) Pour le Format de nom de fichier compatible avec hive, vous pouvez cocher la case afin d’utiliser des chemins S3 compatibles avec Hive. Vous pourrez ainsi charger plus facilement de nouvelles données dans vos outils compatibles avec Hive.

    4. Pour Format de sortie, indiquez le format que vous souhaitez utiliser.

      Note

      Si vous choisissez Parquet, cette option entraîne des CloudWatch frais pour la conversion de vos journaux d'accès vers Apache Parquet. Pour plus d'informations, consultez la section Vended Logs pour CloudWatch connaître les tarifs.

    5. Pour Délimiteur de champ, indiquez comment séparer les champs du journal.

  6. Terminez les étapes pour mettre à jour ou créer votre distribution.

  7. Pour ajouter une autre destination, répétez les étapes 3 à 6.

  8. Sur la page Journaux, vérifiez que l’état des journaux standard est défini sur Activé à côté de la distribution.

  9. (Facultatif) Pour activer l’enregistrement des cookies, choisissez Gérer, Paramètres et activez Journalisation des cookies, puis sélectionnez Enregistrer les modifications.

    Astuce

    La journalisation des cookies est un paramètre global qui s’applique à l’ensemble de la journalisation standard de votre distribution. Vous ne pouvez pas remplacer ce paramètre pour des destinations de livraison distinctes.

Pour plus d’informations sur la livraison de la journalisation standard et les champs de journal, consultez la Référence de la journalisation standard.

Activer la journalisation standard (CloudWatchAPI)

Vous pouvez également utiliser l' CloudWatch API pour activer la journalisation standard pour vos distributions.

Remarques
  • Lorsque vous appelez l' CloudWatch API pour activer la journalisation standard, vous devez spécifier la région des États-Unis Est (Virginie du Nordus-east-1) (), même si vous souhaitez activer la livraison entre régions vers une autre destination. Par exemple, si vous souhaitez envoyer vos journaux d'accès à un compartiment S3 dans la région Europe (Irlande) eu-west-1 (), utilisez CloudWatch l'API de us-east-1 la région.

  • Une option supplémentaire permet d’inclure les cookies dans la journalisation standard. Dans l' CloudFront API, il s'agit du IncludeCookies paramètre. Si vous configurez la journalisation des accès à l'aide de l' CloudWatch API et que vous spécifiez que vous souhaitez inclure des cookies, vous devez utiliser la CloudFront console ou l' CloudFront API pour mettre à jour votre distribution afin d'inclure les cookies. Sinon, CloudFront vous ne pourrez pas envoyer de cookies à la destination de votre journal. Pour de plus amples informations, veuillez consulter Journalisation des cookies.

Pour activer la journalisation standard pour une distribution (CloudWatch API)
  1. Après avoir créé une distribution, récupérez l’Amazon Resource Name (ARN).

    Vous pouvez trouver l'ARN sur la page de distribution de la CloudFront console ou vous pouvez utiliser l'opération GetDistributionAPI. L’ARN d’une distribution suit le format suivant : arn:aws:cloudfront::123456789012:distribution/d111111abcdef8

  2. Utilisez ensuite l'opération CloudWatch PutDeliverySourceAPI pour créer une source de diffusion pour la distribution.

    1. Entrez un nom pour la source de livraison.

    2. Indiquez le resourceArn de la distribution.

    3. Pour logType, indiquez ACCESS_LOGS comme type de journaux à collecter.

    4. Exemple de AWS CLI put-delivery-source commande

      Voici un exemple de configuration d’une source de livraison pour une distribution.

      aws logs put-delivery-source --name S3-delivery --resource-arn arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 --log-type ACCESS_LOGS

      Sortie

      { "deliverySource": { "name": "S3-delivery", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-source:S3-delivery", "resourceArns": [ "arn:aws:cloudfront::123456789012:distribution/d111111abcdef8" ], "service": "cloudfront", "logType": "ACCESS_LOGS" } }
  3. Utilisez l'opération PutDeliveryDestinationAPI pour configurer l'emplacement de stockage de vos journaux.

    1. Renseignez l’ARN de la destination dans le paramètre destinationResourceArn. Il peut s'agir d'un groupe de CloudWatch journaux, d'un flux de diffusion Firehose ou d'un compartiment Amazon S3.

    2. Indiquez le format de sortie de vos journaux dans le paramètre outputFormat.

    3. Exemple de AWS CLI put-delivery-destination commande

      Voici un exemple de configuration d’une destination de livraison vers un compartiment Amazon S3.

      aws logs put-delivery-destination --name S3-destination --delivery-destination-configuration destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket

      Sortie

      { "name": "S3-destination", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } }
    Note

    Si vous distribuez des journaux entre comptes, vous devez utiliser l'opération PutDeliveryDestinationPolicyAPI pour attribuer une politique AWS Identity and Access Management (IAM) au compte de destination. La politique IAM autorise la livraison d’un compte à un autre.

  4. Utilisez l'opération CreateDeliveryAPI pour lier la source de livraison à la destination que vous avez créée lors des étapes précédentes. Cette opération d’API associe la source de livraison à la destination finale.

    1. Indiquez le nom de la source dans le paramètre deliverySourceName.

    2. Indiquez l’ARN correspondant à la destination de livraison dans le paramètre deliveryDestinationArn.

    3. Indiquez la chaîne qui séparera les champs du journal dans le paramètre fieldDelimiter.

    4. Indiquez les champs de journal souhaités dans le paramètre recordFields.

    5. Si vous utilisez S3, indiquez s’il faut activer enableHiveCompatiblePath et suffixPath.

    Exemple de commande AWS CLI de création de livraison

    Voici un exemple de création d’une livraison.

    aws logs create-delivery --delivery-source-name cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination

    Sortie

    { "id": "abcNegnBoTR123", "arn": "arn:aws:logs:us-east-1:123456789012:delivery:abcNegnBoTR123", "deliverySourceName": "cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "recordFields": [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "cs(Host)", "cs-uri-stem", "sc-status", "cs(Referer)", "cs(User-Agent)", "cs-uri-query", "cs(Cookie)", "x-edge-result-type", "x-edge-request-id", "x-host-header", "cs-protocol", "cs-bytes", "time-taken", "x-forwarded-for", "ssl-protocol", "ssl-cipher", "x-edge-response-result-type", "cs-protocol-version", "fle-status", "fle-encrypted-fields", "c-port", "time-to-first-byte", "x-edge-detailed-result-type", "sc-content-type", "sc-content-len", "sc-range-start", "sc-range-end", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "" }
  5. Depuis la CloudFront console, sur la page Logs, vérifiez que le statut standard des logs est Activé à côté de la distribution.

    Pour plus d’informations sur la livraison de la journalisation standard et les champs de journal, consultez la Référence de la journalisation standard.

Note

Pour activer la journalisation standard (v2) pour CloudFront en utilisant AWS CloudFormation, vous pouvez utiliser les propriétés de CloudWatch journalisation suivantes :

ResourceArnIl s'agit de la CloudFront distribution et LogType doit correspondre ACCESS_LOGS au type de journal pris en charge.

Activation de la journalisation standard pour la livraison entre comptes

Si vous activez la journalisation standard pour votre compte Compte AWS et que vous souhaitez transmettre vos journaux d'accès à un autre compte, assurez-vous de configurer correctement le compte source et le compte de destination. Le compte source associé à la CloudFront distribution envoie ses journaux d'accès au compte de destination.

Dans cet exemple de procédure, le 111111111111 (compte source) envoie ses journaux d'accès à un compartiment Amazon S3 du compte de destination (222222222222). Pour envoyer les journaux d’accès vers un compartiment Amazon S3 dans le compte de destination, utilisez l’ AWS CLI.

Configuration du compte de destination

Exécutez la procédure ci-dessous pour le compte de destination.

Pour configurer le compte de destination
  1. Pour créer la destination de livraison des journaux, vous pouvez saisir la commande de l’ AWS CLI suivante. Cet exemple utilise la chaîne MyLogPrefix pour créer un préfixe pour vos journaux d’accès.

    aws logs put-delivery-destination --name cloudfront-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"

    Sortie

    { "deliveryDestination": { "name": "cloudfront-delivery-destination", "arn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": {"destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"} } }
    Note

    Si vous spécifiez un compartiment S3 sans préfixe, il CloudFront sera automatiquement ajouté en AWSLogs/<account-ID>/CloudFront tant que préfixe qui apparaît dans la destination suffixPath de livraison S3. Pour plus d'informations, consultez S3 DeliveryConfiguration.

  2. Ajoutez la politique de ressource pour la destination de livraison des journaux afin d’autoriser le compte source à créer une livraison de journaux.

    Dans la politique suivante, remplacez-le 111111111111 par l'ID du compte source et spécifiez l'ARN de destination de livraison à partir de la sortie de l'étape 1.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": {"AWS": "111111111111"}, "Action": ["logs:CreateDelivery"], "Resource": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination" } ] }
  3. Enregistrez le fichier, par exemple sous le nom deliverypolicy.json.

  4. Pour associer la politique précédente à la destination de livraison, entrez la AWS CLI commande suivante.

    aws logs put-delivery-destination-policy --delivery-destination-name cloudfront-delivery-destination --delivery-destination-policy file://deliverypolicy.json
  5. Ajoutez l’instruction ci-dessous à la stratégie de compartiment Amazon S3 de destination, en remplaçant l’ARN de la ressource et l’ID du compte source. Cette stratégie autorise le principal de service delivery.logs.amazonaws.com à effectuer l’action s3:PutObject.

    { "Sid": "AWSLogsDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "111111111111" }, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"} } }
  6. Si vous l'utilisez AWS KMS pour votre compartiment, ajoutez la déclaration suivante à la politique des clés KMS pour accorder des autorisations au principal du delivery.logs.amazonaws.com service.

    { "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": {"aws:SourceAccount": "111111111111"}, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"} } }

Configuration du compte source

Une fois le compte de destination configuré, suivez cette procédure pour créer la source de livraison et activer la journalisation pour la distribution dans le compte source.

Pour configurer le compte source
  1. Créez une source de diffusion pour la journalisation CloudFront standard afin de pouvoir envoyer des fichiers CloudWatch journaux à Logs.

    Vous pouvez entrer la AWS CLI commande suivante en remplaçant le nom et l'ARN de votre distribution.

    aws logs put-delivery-source --name s3-cf-delivery --resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC --log-type ACCESS_LOGS

    Sortie

    { "deliverySource": { "name": "s3-cf-delivery", "arn": "arn:aws:logs:us-east-1:111111111111:delivery-source:s3-cf-delivery", "resourceArns": ["arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC"], "service": "cloudfront", "logType": "ACCESS_LOGS" } }
  2. Créez une livraison pour associer la source de livraison des journaux du compte source à la destination de livraison des journaux du compte de destination.

    Dans la AWS CLI commande suivante, spécifiez l'ARN de destination de livraison à partir de la sortie de l'étape 1 : Configurer le compte de destination.

    aws logs create-delivery --delivery-source-name s3-cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination

    Sortie

    { "delivery": { "id": "OPmOpLahVzhx1234", "arn": "arn:aws:logs:us-east-1:111111111111:delivery:OPmOpLahVzhx1234", "deliverySourceName": "s3-cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "recordFields": [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "cs(Host)", "cs-uri-stem", "sc-status", "cs(Referer)", "cs(User-Agent)", "cs-uri-query", "cs(Cookie)", "x-edge-result-type", "x-edge-request-id", "x-host-header", "cs-protocol", "cs-bytes", "time-taken", "x-forwarded-for", "ssl-protocol", "ssl-cipher", "x-edge-response-result-type", "cs-protocol-version", "fle-status", "fle-encrypted-fields", "c-port", "time-to-first-byte", "x-edge-detailed-result-type", "sc-content-type", "sc-content-len", "sc-range-start", "sc-range-end", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "\t" } }
  3. Vérifiez que votre livraison entre comptes s’est déroulée correctement.

    1. Depuis le source compte, connectez-vous à la CloudFront console et choisissez votre distribution. Dans l’onglet Journalisation, la section Type affichera une entrée créée pour la livraison de journaux S3 entre comptes.

    2. Depuis le destination compte, connectez-vous à la console Amazon S3 et choisissez votre compartiment Amazon S3. Le préfixe MyLogPrefix apparaîtra dans le nom du compartiment et dans chaque journal d’accès livré dans ce dossier.

Format du fichier de sortie

En fonction de la destination de livraison que vous choisissez, vous pouvez spécifier l’un des formats suivants pour les fichiers journaux :

  • JSON

  • Plain

  • w3c

  • Raw

  • Parquet (Amazon S3 uniquement)

Note

Vous ne pouvez définir le format de sortie que lorsque vous créez la destination de livraison pour la première fois. Cet élément ne peut pas être mis à jour ultérieurement. Pour modifier le format de sortie, supprimez la livraison et créez-en une autre.

Pour plus d'informations, consultez PutDeliveryDestinationle manuel Amazon CloudWatch Logs API Reference.

Modification des paramètres de journalisation standard

Vous pouvez activer ou désactiver la journalisation et mettre à jour les autres paramètres de journalisation à l'aide de la CloudFront console ou de l' CloudWatch API. Les modifications apportées aux paramètres de journalisation prennent effet dans les 12 heures.

Pour plus d’informations, consultez les rubriques suivantes :

Accès aux champs de journal

Vous pouvez sélectionner les mêmes champs de journal que ceux pris en charge par la journalisation standard (héritée). Pour plus d’informations, consultez Champs d’un fichier journal.

En outre, vous pouvez sélectionner les champs du journal d'accès en temps réel suivants.

  1. timestamp(ms) : horodatage en millisecondes.

  2. origin-fbl— Le nombre de secondes de latence du premier octet entre CloudFront et votre origine.

  3. origin-lbl— Le nombre de secondes de latence du dernier octet entre CloudFront et votre origine.

  4. asn : le numéro de système autonome (ASN) de l’utilisateur.

  5. c-country : un code de pays qui représente l’emplacement géographique de l’utilisateur, déterminé par l’adresse IP de l’utilisateur. Pour obtenir une liste des codes de pays, consultez ISO 3166-1 alpha-2.

  6. cache-behavior-path-pattern : le modèle de chemin qui identifie le comportement du cache correspondant à la demande de l’utilisateur.

Envoyer des journaux à CloudWatch Logs

Pour envoyer des CloudWatch journaux à Logs, créez ou utilisez un groupe de CloudWatch journaux Logs existant. Pour plus d'informations sur la configuration d'un groupe de CloudWatch journaux, consultez la section Utilisation des groupes de journaux et des flux de journaux.

Après avoir créé votre groupe de journaux, vous devez disposer des autorisations nécessaires pour activer la journalisation standard. Pour plus d'informations sur les autorisations requises, consultez la section Logs envoyés à CloudWatch Logs dans le guide de l'utilisateur Amazon CloudWatch Logs.

Remarques

Exemple de journal d'accès envoyé à CloudWatch Logs

{ "date": "2024-11-14", "time": "21:34:06", "x-edge-location": "SOF50-P2", "asn": "16509", "timestamp(ms)": "1731620046814", "origin-fbl": "0.251", "origin-lbl": "0.251", "x-host-header": "d111111abcdef8.cloudfront.net", "cs(Cookie)": "examplecookie=value" }

Envoi des journaux à Firehose

Pour envoyer des journaux à Firehose, créez ou utilisez un flux de diffusion Firehose existant. Indiquez ensuite le flux de diffusion Firehose comme destination de livraison des journaux. Vous devez indiquer un flux de diffusion Firehose situé dans la région USA Est (Virginie du Nord).

Pour en savoir plus sur la création des flux de diffusion, consultez Création d’un flux de diffusion Amazon Data Firehose.

Après avoir créé votre flux de diffusion, vous devez disposer des autorisations nécessaires pour activer la journalisation standard. Pour plus d'informations, consultez la section Logs envoyés à Firehose dans le guide de l'utilisateur Amazon CloudWatch Logs.

Note

Lorsque vous indiquez le nom du flux Firehose, utilisez uniquement le modèle regex [\w-]. Pour plus d'informations, consultez le fonctionnement de l'PutDeliveryDestinationAPI dans le manuel Amazon CloudWatch Logs API Reference.

Exemple de journal d’accès envoyé à Firehose

{"date":"2024-11-15","time":"19:45:51","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699951183","origin-fbl":"0.254","origin-lbl":"0.254","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"} {"date":"2024-11-15","time":"19:45:52","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699952950","origin-fbl":"0.125","origin-lbl":"0.125","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}

Envoi de journaux vers Amazon S3

Pour envoyer vos journaux d’accès à Amazon S3, créez ou utilisez un compartiment S3 existant. Lorsque vous activez la connexion CloudFront, spécifiez le nom du compartiment. Pour en savoir plus sur la création des compartiments, consultez Création d’un compartiment dans le Guide de l’utilisateur Amazon Simple Storage Service.

Une fois votre compartiment créé, vous devez disposer des autorisations nécessaires pour activer la journalisation standard. Pour plus d'informations, consultez la section Logs envoyés à Amazon S3 dans le guide de l'utilisateur Amazon CloudWatch Logs.

  • Après avoir activé la journalisation, ajoute AWS automatiquement les politiques de compartiment requises pour vous.

  • Vous pouvez également utiliser des compartiments S3 dans les Régions AWS soumises à adhésion.

Note

Si vous utilisez déjà la journalisation standard (héritée) et que vous souhaitez activer la journalisation standard (v2) sur Amazon S3, nous vous conseillons d’indiquer un compartiment Amazon S3 différent ou d’utiliser un chemin distinct dans le même compartiment (par exemple, un préfixe de journal ou un partitionnement). Vous pouvez ainsi facilement identifier les fichiers journaux associés à chaque distribution, tout en évitant qu’ils ne se remplacent mutuellement.

Spécification d’un compartiment S3

Lorsque vous spécifiez un compartiment S3 comme destination de livraison, tenez compte des points suivants.

Le nom du compartiment S3 ne peut utiliser que le modèle regex [\w-]. Pour plus d'informations, consultez le fonctionnement de l'PutDeliveryDestinationAPI dans le manuel Amazon CloudWatch Logs API Reference.

Si vous avez spécifié un préfixe pour votre compartiment S3, vos journaux seront visibles sous ce chemin. Si vous ne spécifiez aucun préfixe, CloudFront il sera automatiquement ajouté pour AWSLogs/{account-id}/CloudFront vous.

Pour de plus amples informations, veuillez consulter Exemple de chemins d’accès aux journaux.

Partitioning

Vous pouvez utiliser le partitionnement pour organiser vos journaux d'accès lorsque vous CloudFront les envoyez à votre compartiment S3. Cela vous permet d’organiser et de localiser vos journaux d’accès en fonction du chemin souhaité.

Vous pouvez utiliser les variables suivantes pour créer un chemin de dossier.

  • {DistributionId} ou {distributionid}

  • {yyyy}

  • {MM}

  • {dd}

  • {HH}

  • {accountid}

Vous pouvez utiliser autant de variables que vous le souhaitez et spécifier des noms de dossiers dans votre chemin. CloudFrontutilise ensuite ce chemin pour créer une structure de dossiers pour vous dans le compartiment S3.

Exemples
  • my_distribution_log_data/{DistributionId}/logs

  • /cloudfront/{DistributionId}/my_distribution_log_data/{yyyy}/{MM}/{dd}/{HH}/logs

Note

Vous pouvez utiliser l’une ou l’autre variable pour l’ID de distribution dans le chemin de suffixe. Toutefois, si vous envoyez des journaux d'accès à AWS Glue, vous devez utiliser la {distributionid} variable car AWS Glue les noms de partition doivent être en minuscules. Mettez à jour votre configuration de journal existante CloudFront pour la {DistributionId} remplacer par{distributionid}.

Format de nom de fichier compatible avec Hive

Cette option peut être utilisée afin que les objets S3 contenant les journaux d’accès livrés utilisent une structure de préfixe permettant l’intégration avec Apache Hive. Pour plus d'informations, consultez l'opération API CreateDelivery.

Exemple
/cloudfront/DistributionId={DistributionId}/my_distribution_log_data/year={yyyy}/month={MM}/day={dd}/hour={HH}/logs

Pour plus d'informations sur le partitionnement et les options compatibles avec Hive, consultez l'DeliveryConfigurationélément S3 dans le manuel Amazon CloudWatch Logs API Reference.

Exemple de chemins d’accès aux journaux

Lorsque vous spécifiez un compartiment S3 comme destination, vous pouvez utiliser les options suivantes pour créer le chemin d’accès à vos journaux d’accès :

  • Un compartiment Amazon S3, avec ou sans préfixe

  • Partitionnement, en utilisant une variable CloudFront fournie ou en saisissant la vôtre

  • L’activation de l’option compatible avec Hive

Les tableaux suivants montrent comment vos journaux d’accès apparaissent dans votre compartiment, en fonction des options que vous avez choisies.

Compartiment Amazon S3 avec un préfixe

Nom du compartiment Amazon S3 Partition que vous spécifiez dans le chemin du suffixe Chemin de suffixe mis à jour Option compatible Hive activée ? Les journaux d’accès sont envoyés à
amzn-s3-demo-bucket/MyLogPrefix Aucune Aucune Non amzn-s3-demo-bucket/MyLogPrefix/
amzn-s3-demo-bucket/MyLogPrefix myFolderA/ myFolderA/ Non amzn-s3-demo-bucket/MyLogPrefix/myFolderA/
amzn-s3-demo-bucket/MyLogPrefix myFolderA/{yyyy} myFolderA/{yyyy} Oui amzn-s3-demo-bucket/MyLogPrefix/myFolderA/year=2025

Compartiment Amazon S3 sans préfixe

Nom du compartiment Amazon S3 Partition que vous spécifiez dans le chemin du suffixe Chemin de suffixe mis à jour Option compatible Hive activée ? Les journaux d’accès sont envoyés à
amzn-s3-demo-bucket Aucune AWSLogs/{account-id}/CloudFront/ Non amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/
amzn-s3-demo-bucket myFolderA/ AWSLogs/{account-id}/CloudFront/myFolderA/ Non amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/myFolderA/
amzn-s3-demo-bucket myFolderA/ AWSLogs/{account-id}/CloudFront/myFolderA/ Oui amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/
amzn-s3-demo-bucket myFolderA/{yyyy} AWSLogs/{account-id}/CloudFront/myFolderA/{yyyy} Oui amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/year=2025

Compte AWS ID en tant que partition

Nom du compartiment Amazon S3 Partition que vous spécifiez dans le chemin du suffixe Chemin de suffixe mis à jour Option compatible Hive activée ? Les journaux d’accès sont envoyés à
amzn-s3-demo-bucket Aucune AWSLogs/{account-id}/CloudFront/ Oui amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/
amzn-s3-demo-bucket myFolderA/{accountid} AWSLogs/{account-id}/CloudFront/myFolderA/{accountid} Oui amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/accountid=<your-account-ID>
Remarques
  • La {account-id} variable est réservée à CloudFront. CloudFrontajoute automatiquement cette variable au chemin de votre suffixe si vous spécifiez un compartiment Amazon S3 sans préfixe. Si vos journaux sont compatibles avec Hive, cette variable apparaît sous la forme aws-account-id.

  • Vous pouvez utiliser la {accountid} variable pour CloudFront ajouter votre identifiant de compte au chemin du suffixe. Si vos journaux sont compatibles avec Hive, cette variable apparaît sous la forme accountid.

  • Pour plus d'informations sur le chemin du suffixe, consultez S3 DeliveryConfiguration.

Exemple de journal d’accès envoyé à Amazon S3

#Fields: date time x-edge-location asn timestamp(ms) x-host-header cs(Cookie) 2024-11-14 22:30:25 SOF50-P2 16509 1731623425421 d111111abcdef8.cloudfront.net examplecookie=value2

Désactivation de la journalisation standard

Si vous n’avez plus besoin de la journalisation standard, vous pouvez la désactiver sur votre distribution.

Pour désactiver la journalisation standard
  1. Connectez-vous à la CloudFront console.

  2. Sélectionnez Distribution, puis choisissez votre ID de distribution.

  3. Choisissez Logging, puis sous Destinations du journal d'accès, sélectionnez la destination.

  4. Sélectionnez Gérer, puis choisissez Supprimer.

  5. Répétez l’étape précédente si vous avez plus d’une journalisation standard.

Note

Lorsque vous supprimez la journalisation standard de la CloudFront console, cette action supprime uniquement la livraison et la destination de livraison. Cela ne supprime pas la source de diffusion de votre Compte AWS. Pour supprimer une source de livraison, spécifiez le nom de la source de livraison dans la commande aws logs delete-delivery-source --name DeliverySourceName. Pour plus d'informations, consultez DeleteDeliverySourcele manuel Amazon CloudWatch Logs API Reference.

Dépannage

Utilisez les informations suivantes pour résoudre les problèmes courants liés à l'utilisation de la journalisation CloudFront standard (v2).

La source de livraison existe déjà

Lorsque vous activez la journalisation standard pour une distribution, vous créez une source de livraison. Vous utilisez ensuite cette source de livraison pour créer des livraisons vers le type de destination que vous souhaitez : CloudWatch Logs, Firehose, Amazon S3. À l’heure actuelle, une distribution ne peut disposer que d’une seule source de livraison. Si vous essayez de créer une autre source de livraison pour la même distribution, le message d’erreur suivant s’affiche.

This ResourceId has already been used in another Delivery Source in this account

Pour créer une autre source de livraison, supprimez d’abord la source existante. Pour plus d'informations, consultez DeleteDeliverySourcele manuel Amazon CloudWatch Logs API Reference.

J’ai modifié le chemin du suffixe et le compartiment Amazon S3 ne parvient plus à recevoir mes journaux

Si vous avez activé la journalisation standard (v2) et que vous spécifiez un ARN de compartiment sans préfixe, CloudFront vous ajouterez la valeur par défaut suivante au chemin du suffixe :. AWSLogs/{account-id}/CloudFront Si vous utilisez la CloudFront console ou l'opération UpdateDeliveryConfigurationAPI pour spécifier un chemin de suffixe différent, vous devez mettre à jour la politique du compartiment Amazon S3 pour utiliser le même chemin.

Exemple : mise à jour du chemin de suffixe
  1. Votre chemin de suffixe par défaut est AWSLogs/{account-id}/CloudFront et vous le remplacez par myFolderA.

  2. Étant donné que votre nouveau chemin de suffixe diffère de celui indiqué dans la stratégie de compartiment Amazon S3, vos journaux d’accès ne seront pas livrés.

  3. Vous pouvez effectuer l’une des actions suivantes :

    • Mettre à jour l’autorisation du compartiment Amazon S3 en remplaçant amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/* par amzn-s3-demo-bucket/myFolderA/*.

    • Mettre à jour votre configuration de journalisation pour réutiliser le chemin de suffixe par défaut : AWSLogs/{account-id}/CloudFront

Pour plus d’informations, consultez Permissions.

Suppression des fichiers journaux

CloudFront ne supprime pas automatiquement les fichiers journaux de votre destination. Pour en savoir plus sur la suppression des fichiers journaux, consultez les rubriques suivantes :

Amazon S3
CloudWatch Journaux
Firehose

Tarification

CloudFront l'activation des journaux standard est gratuite. Cependant, vous pouvez être facturé pour la livraison, l’ingestion, le stockage ou l’accès, selon la destination de livraison des journaux que vous avez choisie. Pour plus d'informations, consultez la section Tarification d'Amazon CloudWatch Logs. Dans Niveau payant, sélectionnez l’onglet Journaux, puis, dans Journaux payants, consultez les informations pour chaque destination de livraison.

Pour plus d'informations sur la tarification de chacun d'entre eux Service AWS, consultez les rubriques suivantes :