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 :
-
Envoyez les journaux d'accès à Amazon CloudWatch Logs, Amazon Data Firehose et Amazon Simple Storage Service (Amazon S3).
-
La sélection des champs de journal souhaités. Vous pouvez également sélectionner un sous-ensemble de champs du journal d'accès en temps réel.
-
La sélection d’autres formats de fichiers journaux de sortie.
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 :
-
Configurez les autorisations requises pour la personne spécifiée Service AWS qui recevra vos journaux.
-
Configurez la journalisation standard depuis la CloudFront console ou l' CloudWatch API.
-
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.
Table des matières
Activer la journalisation standard (CloudFrontconsole)
Pour activer la journalisation standard pour une CloudFront distribution (console)
-
Utilisez la CloudFront console pour mettre à jour une distribution existante.
-
Sélectionnez l'onglet Logging (Journalisation).
Choisissez Ajouter, puis sélectionnez le service qui recevra vos journaux :
-
CloudWatch Journaux
-
Firehose
-
Amazon S3
-
-
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/. 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.MyLogPrefix
-
-
Pour Paramètres supplémentaires – facultatif, vous pouvez définir les options suivantes :
-
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.
-
(Amazon S3 uniquement) Pour le Partitionnement, indiquez le chemin permettant de partitionner les données de votre fichier journal.
-
(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.
-
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
. -
Pour Délimiteur de champ, indiquez comment séparer les champs du journal.
-
-
Terminez les étapes pour mettre à jour ou créer votre distribution.
-
Pour ajouter une autre destination, répétez les étapes 3 à 6.
-
Sur la page Journaux, vérifiez que l’état des journaux standard est défini sur Activé à côté de la distribution.
(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 Nord
us-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 deus-east-1la région. -
Une option supplémentaire permet d’inclure les cookies dans la journalisation standard. Dans l' CloudFront API, il s'agit du
IncludeCookiesparamè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)
-
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 -
Utilisez ensuite l'opération CloudWatch PutDeliverySourceAPI pour créer une source de diffusion pour la distribution.
-
Entrez un nom pour la source de livraison.
-
Indiquez le
resourceArnde la distribution. -
Pour
logType, indiquezACCESS_LOGScomme type de journaux à collecter. -
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_LOGSSortie
{ "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" } }
-
-
Utilisez l'opération PutDeliveryDestinationAPI pour configurer l'emplacement de stockage de vos journaux.
-
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. -
Indiquez le format de sortie de vos journaux dans le paramètre
outputFormat. -
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-bucketSortie
{ "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.
-
-
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.
-
Indiquez le nom de la source dans le paramètre
deliverySourceName. -
Indiquez l’ARN correspondant à la destination de livraison dans le paramètre
deliveryDestinationArn. -
Indiquez la chaîne qui séparera les champs du journal dans le paramètre
fieldDelimiter. -
Indiquez les champs de journal souhaités dans le paramètre
recordFields. -
Si vous utilisez S3, indiquez s’il faut activer
enableHiveCompatiblePathetsuffixPath.
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-destinationSortie
{ "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": "" } -
-
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
-
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
pour créer un préfixe pour vos journaux d’accès.MyLogPrefixaws logs put-delivery-destination --namecloudfront-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/"} } }MyLogPrefixNote
Si vous spécifiez un compartiment S3 sans préfixe, il CloudFront sera automatiquement ajouté en
AWSLogs/tant que préfixe qui apparaît dans la destination<account-ID>/CloudFrontsuffixPathde livraison S3. Pour plus d'informations, consultez S3 DeliveryConfiguration. -
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
111111111111par l'ID du compte source et spécifiez l'ARN de destination de livraison à partir de la sortie de l'étape 1. -
Enregistrez le fichier, par exemple sous le nom
deliverypolicy.json. -
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-namecloudfront-delivery-destination--delivery-destination-policy file://deliverypolicy.json -
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’actions3: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:*"} } } -
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.rproxy.govskope.caservice.{ "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
-
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 --names3-cf-delivery--resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC--log-type ACCESS_LOGSSortie
{ "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" } } -
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-names3-cf-delivery--delivery-destination-arn arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destinationSortie
{ "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" } } -
Vérifiez que votre livraison entre comptes s’est déroulée correctement.
-
Depuis le
sourcecompte, 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. -
Depuis le
destinationcompte, connectez-vous à la console Amazon S3 et choisissez votre compartiment Amazon S3. Le préfixeapparaîtra dans le nom du compartiment et dans chaque journal d’accès livré dans ce dossier.MyLogPrefix
-
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
Pour plus d’informations, consultez les rubriques suivantes :
-
Pour mettre à jour une distribution à l'aide de la CloudFront console, consultezMettre à jour une distribution.
-
Pour mettre à jour une distribution à l'aide de l' CloudFront API, consultez UpdateDistributionle Amazon CloudFront API Reference.
-
Pour plus d'informations sur CloudWatch les opérations de l'API Logs, consultez le manuel Amazon CloudWatch Logs API Reference.
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.
-
timestamp(ms): horodatage en millisecondes. -
origin-fbl— Le nombre de secondes de latence du premier octet entre CloudFront et votre origine. -
origin-lbl— Le nombre de secondes de latence du dernier octet entre CloudFront et votre origine. -
asn: le numéro de système autonome (ASN) de l’utilisateur. 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. 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
-
Lorsque vous spécifiez le nom du groupe de CloudWatch journaux Logs, utilisez uniquement le modèle
[\w-]regex. Pour plus d'informations, consultez le fonctionnement de l'PutDeliveryDestinationAPI dans le manuel Amazon CloudWatch Logs API Reference. -
Vérifiez que la politique de ressources de votre groupe de journaux ne dépasse pas la limite de taille autorisée. Consultez la section Considérations relatives à la limite de taille des ressources liées à la politique des groupes de CloudWatch journaux dans la rubrique Journaux.
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.
Rubriques
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/ vous. {account-id}/CloudFront
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/ |
amzn-s3-demo-bucket |
myFolderA/ |
AWSLogs/{account-id}/CloudFront/myFolderA/ |
Non | amzn-s3-demo-bucket/AWSLogs/ |
amzn-s3-demo-bucket |
myFolderA/ |
AWSLogs/{account-id}/CloudFront/myFolderA/ |
Oui | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
amzn-s3-demo-bucket |
myFolderA/{yyyy} |
AWSLogs/{account-id}/CloudFront/myFolderA/{yyyy} |
Oui | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
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= |
amzn-s3-demo-bucket |
myFolderA/{accountid} |
AWSLogs/{account-id}/CloudFront/myFolderA/{accountid} |
Oui | amzn-s3-demo-bucket/AWSLogs/aws-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 formeaws-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 formeaccountid. -
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
-
Connectez-vous à la CloudFront console.
-
Sélectionnez Distribution, puis choisissez votre ID de distribution.
-
Choisissez Logging, puis sous Destinations du journal d'accès, sélectionnez la destination.
-
Sélectionnez Gérer, puis choisissez Supprimer.
-
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
-
Votre chemin de suffixe par défaut est
AWSLogs/{account-id}/CloudFrontet vous le remplacez parmyFolderA. -
É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.
-
Vous pouvez effectuer l’une des actions suivantes :
-
Mettre à jour l’autorisation du compartiment Amazon S3 en remplaçant
amzn-s3-demo-bucket/AWSLogs/par<your-account-ID>/CloudFront/*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
-
Suppression des objets dans le Guide de l’utilisateur de la console Amazon Simple Storage Service
CloudWatch Journaux
-
Utilisation des groupes de journaux et des flux de journaux dans le guide de l'utilisateur Amazon CloudWatch Logs
-
DeleteLogGroupdans la référence de l'API Amazon CloudWatch Logs
Firehose
-
DeleteDeliveryStreamdans la référence de l'API Amazon Data 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
Pour plus d'informations sur la tarification de chacun d'entre eux Service AWS, consultez les rubriques suivantes :
-
Note
La livraison des journaux vers Amazon S3 n’entraîne aucun coût supplémentaire, toutefois vous serez facturé par Amazon S3 pour le stockage et l’accès aux fichiers journaux. Si vous activez l'option Parquet pour convertir vos journaux d'accès en Apache Parquet, cette option entraîne des CloudWatch frais. Pour plus d'informations, consultez la section Vended Logs pour CloudWatch connaître les tarifs
.