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 la journalisation standard lorsque vous créez ou mettez à jour une distribution. La journalisation standard (v2) inclut les fonctionnalités suivantes :
-
Envoyez les journaux d'accès à Amazon CloudWatch Logs, Amazon Data Firehose et Amazon Simple Storage Service (Amazon S3).
-
Sélectionnez les champs de journal que vous souhaitez. Vous pouvez également sélectionner un sous-ensemble de champs de journal en temps réel.
-
Sélectionnez d'autres formats de fichier journal de sortie.
Si vous utilisez Amazon S3, vous disposez des fonctionnalités optionnelles suivantes :
-
Envoyez des journaux pour vous inscrire. Régions AWS
-
Organisez vos journaux grâce au partitionnement.
-
Activez les noms de fichiers compatibles avec Hive.
Pour de plus amples informations, veuillez consulter Envoyer des journaux à Amazon S3.
Pour commencer à utiliser 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.
-
Consultez vos journaux d'accès.
Note
-
Si vous activez la journalisation standard (v2), cela n'affecte ni ne modifie la journalisation standard (ancienne). Vous pouvez continuer à utiliser la journalisation standard (ancienne) pour votre distribution, en plus de la journalisation standard (v2). Pour de plus amples informations, veuillez consulter Configuration de la journalisation standard (ancienne version).
-
Si vous avez déjà activé la journalisation standard (ancienne) et que vous souhaitez activer la journalisation standard (v2) sur Amazon S3, nous vous recommandons de spécifier un autre compartiment Amazon S3 ou d'utiliser un chemin distinct dans le même compartiment (par exemple, utilisez un préfixe de journal ou un partitionnement). Cela vous permet de savoir quels fichiers journaux sont associés à quelle distribution et empêche les fichiers journaux de se remplacer les uns les autres.
Autorisations
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.
Après avoir configuré les autorisations pour votre destination de journalisation, vous pouvez activer la journalisation standard pour 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 (votre compte et le compte destinataire) doivent disposer des autorisations requises. Pour plus d'informations, consultez la Activer 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.
Activer 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 pour votre service. Si vous n'avez pas encore créé votre ressource, vous pouvez choisir Créer ou consulter la documentation suivante.
-
Pour CloudWatch Logs, entrez le nom du groupe de logs.
-
Pour Firehose, entrez dans le flux de diffusion Firehose.
-
Pour Amazon S3, entrez le nom du compartiment.
Astuce
Pour spécifier un préfixe, saisissez-le après le nom du bucket, 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 Envoyer des journaux à 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 des champs de journal que vous souhaitez livrer à votre destination. Vous pouvez sélectionner les champs du journal d'accès et un sous-ensemble de champs du journal en temps réel.
-
(Amazon S3 uniquement) Pour le partitionnement, spécifiez le chemin vers lequel partitionner les données de votre fichier journal.
-
(Amazon S3 uniquement) Pour les formats de fichier compatibles avec Hive, vous pouvez cocher la case pour utiliser des chemins S3 compatibles avec Hive. Cela permet de simplifier le chargement de nouvelles données dans vos outils compatibles avec Hive.
-
Pour Format de sortie, spécifiez votre format préféré.
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 le séparateur de champs, spécifiez comment séparer les champs du journal.
-
-
Suivez 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 Logs, vérifiez que le statut standard des logs est Activé à côté de la distribution.
(Facultatif) Pour activer l'enregistrement des cookies, choisissez Gérer, Paramètres et activez l'enregistrement des cookies, puis sélectionnez Enregistrer les modifications.
Astuce
L'enregistrement des cookies est un paramètre global qui s'applique à tous les journaux standard de votre distribution. Vous ne pouvez pas annuler ce paramètre pour des destinations de livraison distinctes.
Pour plus d'informations sur la livraison de journalisation standard et les champs de journalisation, consultez leRéférence de 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-1
la région. -
Il existe une option supplémentaire permettant 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. Dans le cas contraire, 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, obtenez le nom de ressource Amazon (ARN).
Vous pouvez trouver l'ARN sur la page de distribution de la CloudFront console ou vous pouvez utiliser l'opération GetDistributionAPI. Un ARN de 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.
-
Passez le
resourceArn
contrôle de la distribution. -
Pour
logType
, spécifiezACCESS_LOGS
le type de journaux collectés. -
Exemple de AWS CLI put-delivery-source commande
Voici un exemple de configuration d'une source de diffusion 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" } }
-
-
Utilisez l'opération PutDeliveryDestinationAPI pour configurer l'emplacement de stockage de vos journaux.
-
Pour
destinationResourceArn
, spécifiez l'ARN de la destination. Il peut s'agir d'un groupe de CloudWatch journaux, d'un flux de diffusion Firehose ou d'un compartiment Amazon S3. -
Pour
outputFormat
, spécifiez le format de sortie de vos journaux. -
Exemple de AWS CLI put-delivery-destination commande
Voici un exemple de configuration d'une destination de livraison dans 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.
-
-
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.
-
Pour
deliverySourceName
, spécifiez le nom de la source. -
Pour
deliveryDestinationArn
, spécifiez l'ARN de la destination de livraison. -
Pour
fieldDelimiter
, spécifiez la chaîne pour séparer chaque champ de journal. -
Pour
recordFields
, spécifiez les champs de journal que vous souhaitez. -
Si vous utilisez S3, spécifiez si vous souhaitez utiliser
enableHiveCompatiblePath
etsuffixPath
.
Exemple de commande de AWS CLI création et 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": "" }
-
-
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 journalisation standard et les champs de journalisation, consultez leRéférence de 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 :
ResourceArn
Il s'agit de la CloudFront distribution et LogType
doit correspondre ACCESS_LOGS
au type de journal pris en charge.
Activer 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 à un compartiment Amazon S3 dans le compte de destination, utilisez le AWS CLI.
Configuration du compte de destination
Pour le compte de destination, procédez comme suit.
Pour configurer le compte de destination
-
Pour créer la destination de livraison du journal, vous pouvez saisir la AWS CLI commande suivante. Cet exemple utilise la
chaîne pour créer un préfixe pour vos journaux d'accès.MyLogPrefix
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/
tant que préfixe qui apparaît dans la destination<account-ID>
/CloudFrontsuffixPath
de livraison S3. Pour plus d'informations, consultez S3 DeliveryConfiguration. -
Ajoutez la politique de ressources pour la destination de livraison du journal afin de permettre au compte source de créer une livraison du journal.
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.{ "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
" } ] } -
Enregistrez le fichier, par exemple
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-name
cloudfront-delivery-destination
--delivery-destination-policy file://deliverypolicy.json -
Ajoutez la déclaration ci-dessous à la politique du compartiment Amazon S3 de destination, en remplaçant l'ARN de la ressource et l'ID du compte source. Cette politique permet au principal du
delivery.logs.amazonaws.com
service d'effectuer l's3:PutObject
action.{ "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
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
Après avoir configuré le compte de destination, suivez cette procédure pour créer la source de diffusion et activer la journalisation de 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 --name
s3-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 diffusion pour mapper la source de livraison du journal du compte source et la destination de livraison du journal 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" } }
-
Vérifiez que la livraison entre comptes est réussie.
-
Depuis le
source
compte, connectez-vous à la CloudFront console et choisissez votre distribution. Dans l'onglet Logging, sous Type, vous verrez une entrée créée pour la livraison du journal entre comptes S3. -
Depuis le
destination
compte, connectez-vous à la console Amazon S3 et choisissez votre compartiment Amazon S3. Vous verrez le préfixe
dans le nom du compartiment et dans tous les journaux d'accès envoyés à ce dossier.MyLogPrefix
-
Format de fichier de sortie
En fonction de la destination de livraison que vous choisissez, vous pouvez définir l'un des formats suivants pour les fichiers journaux :
-
JSON
-
Plaine
-
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 diffusion et créez-en une autre.
Pour plus d'informations, consultez PutDeliveryDestinationle manuel Amazon CloudWatch Logs API Reference.
Modifier les paramètres de journalisation standard
Vous pouvez activer ou désactiver la journalisation et mettre à jour d'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.
Champs du journal d'accès
Vous pouvez sélectionner les mêmes champs de journal que ceux pris en charge par la journalisation standard (ancienne). Pour plus d'informations, consultez les champs du fichier journal.
En outre, vous pouvez sélectionner les champs de journal 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) du téléspectateur. c-country
— Un code de pays qui représente l'emplacement géographique du spectateur, tel que déterminé par son adresse IP. 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 du visualiseur.
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 requises pour autoriser 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. 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" }
Envoyer les logs à Firehose
Pour envoyer des logs à Firehose, créez ou utilisez un flux de diffusion Firehose existant.
Pour plus d'informations sur la création de votre 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 requises pour autoriser 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 spécifiez 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"}
Envoyer des journaux à 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 plus d'informations sur la création d'un bucket, consultez Create a bucket dans le guide de l'utilisateur d'Amazon Simple Storage Service.
Après avoir créé votre bucket, vous devez disposer des autorisations requises pour autoriser la journalisation standard. Pour plus d'informations, consultez la section Logs envoyés à Amazon S3 dans le guide de l'utilisateur Amazon CloudWatch Logs.
-
Une fois que vous avez activé la journalisation, il ajoute AWS automatiquement les politiques de compartiment requises pour vous.
-
Vous pouvez également utiliser des compartiments S3 dans le cadre de l'Régions AWS opt-in.
Note
Si vous avez déjà activé la journalisation standard (ancienne) et que vous souhaitez activer la journalisation standard (v2) sur Amazon S3, nous vous recommandons de spécifier un autre compartiment Amazon S3 ou d'utiliser un chemin distinct dans le même compartiment (par exemple, utilisez un préfixe de journal ou un partitionnement). Cela vous permet de savoir quels fichiers journaux sont associés à quelle distribution et empêche les fichiers journaux de se remplacer les uns les autres.
Rubriques
Spécifier un compartiment S3
Lorsque vous spécifiez un compartiment S3 comme destination de livraison, notez ce qui suit.
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 apparaissent 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 Exemples 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 que vous souhaitez.
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 comme ID de distribution dans le chemin du 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
Vous pouvez utiliser cette option pour que les objets S3 contenant les journaux d'accès fournis utilisent une structure de préfixe permettant l'intégration à Apache Hive. Pour plus d'informations, consultez l'opération API CreateDelivery.
Exemple 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.
Exemples 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
-
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 préfixe
Nom du compartiment Amazon S3 | Partition que vous spécifiez dans le chemin du suffixe | Chemin du suffixe mis à jour | Compatible avec Hive activé ? | Les journaux d'accès sont envoyés à |
---|---|---|---|---|
amzn-s3-demo-bucket/MyLogPrefix |
Aucun | Aucun | 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 du suffixe mis à jour | Compatible avec Hive activé ? | Les journaux d'accès sont envoyés à |
---|---|---|---|---|
amzn-s3-demo-bucket |
Aucun | 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 du suffixe mis à jour | Compatible avec Hive activé ? | Les journaux d'accès sont envoyés à |
---|---|---|---|---|
amzn-s3-demo-bucket |
Aucun | 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 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ésactiver la journalisation standard
Vous pouvez désactiver la journalisation standard pour votre distribution si vous n'en avez plus besoin.
Pour désactiver la journalisation standard
-
Connectez-vous à la CloudFront console.
-
Choisissez Distribution, puis choisissez votre ID de distribution.
-
Choisissez Logging, puis sous Destinations de journal standard, sélectionnez la destination.
-
Choisissez Gérer, puis Supprimer.
-
Répétez l'étape précédente si vous disposez de plusieurs journaux 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 diffusion, spécifiez le nom de la source de livraison dans la aws logs delete-delivery-source --name DeliverySourceName
commande. 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 diffusion. 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. Actuellement, vous ne pouvez avoir qu'une seule source de diffusion par distribution. Si vous essayez de créer une autre source de diffusion 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 diffusion, 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 peut pas 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 du suffixe
-
Le chemin de votre suffixe par défaut est
AWSLogs/{account-id}/CloudFront
et vous le remplacez par.myFolderA
-
Comme le chemin de votre nouveau suffixe est différent de celui spécifié dans la politique du compartiment Amazon S3, vos journaux d'accès ne seront pas livrés.
-
Vous pouvez effectuer l'une des opérations suivantes :
-
Mettez à jour l'autorisation du compartiment Amazon S3 de
amzn-s3-demo-bucket/AWSLogs/
vers<your-account-ID>
/CloudFront/*amzn-s3-demo-bucket/myFolderA/*
. -
Mettez à jour votre configuration de journalisation pour réutiliser le suffixe par défaut :
AWSLogs/{account-id}/CloudFront
-
Pour de plus amples informations, veuillez consulter Autorisations.
Supprimer les fichiers journaux
CloudFront ne supprime pas automatiquement les fichiers journaux de votre destination. Pour plus d'informations sur la suppression de fichiers journaux, consultez les rubriques suivantes :
Amazon S3
-
Supprimer 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 le manuel de référence de l'API Amazon CloudWatch Logs
Firehose
-
DeleteDeliveryStreamdans le manuel de référence de l'API Amazon Data Firehose
Tarification
CloudFront l'activation des journaux standard n'est pas facturée. Cependant, des frais de livraison, d'ingestion, de stockage ou d'accès peuvent vous être facturés, en fonction de la destination de livraison des journaux que vous sélectionnez. 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
Il n'y a aucun frais supplémentaire pour la livraison des journaux vers Amazon S3, mais vous devez payer des frais 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
.