View a markdown version of this page

Format du journal dans les CloudWatch journaux - Amazon Simple Storage Service

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.

Format du journal dans les CloudWatch journaux

Lorsque les journaux d'accès au serveur Amazon S3 sont transmis à Amazon CloudWatch Logs, chaque enregistrement de journal est un objet JSON structuré. Ce format de texte est différent du format de texte délimité par des espaces utilisé pour la livraison vers un compartiment à usage général Amazon S3. Le format structuré rend les champs directement interrogeables dans CloudWatch Logs Insights sans analyse des regex.

Note

Pour le format de texte délimité par des espaces utilisé pour la livraison par lots à usage général, voir. Format des journaux d’accès au serveur Amazon S3

Champs d’enregistrement des journaux

Le tableau suivant décrit les champs de chaque enregistrement du journal d'accès au serveur transmis à CloudWatch Logs.

Champs du journal d'accès au serveur dans CloudWatch Logs
Champ Type Description
schema_version_id chaîne Identifiant de version pour le schéma d'enregistrement du journal (par exemple,V_1_0). Utilisez ce champ pour détecter les modifications du schéma lorsque de nouveaux champs sont ajoutés dans les versions futures.
bucket_arn chaîne ARN du bucket source.
bucket_name chaîne Nom du compartiment auquel la demande a été envoyée. Dérivé de l'ARN du bucket.
request_time chaîne Heure de réception de la demande, en UTC. Formaté en ISO 8601 ()yyyy-MM-dd'T'HH:mm:ss.SSS'Z'. Dans l'intégration des tables S3 (Iceberg), ce champ est stocké sous timestamptz la forme.
bucket_owner_id chaîne ID utilisateur canonique du propriétaire du compartiment source.
remote_ip chaîne Adresse IP apparente du demandeur. La valeur par défaut est null si elle n'est pas disponible.
requester chaîne ID utilisateur canonique du demandeur, ou null pour les demandes non authentifiées. Pour les utilisateurs et les rôles IAM, il s'agit de l'ARN.
request_id chaîne Identifiant unique généré par Amazon S3 pour chaque demande. La valeur par défaut est null si elle n'est pas disponible.
operation chaîne L'opération qui a été effectuée, par exemple REST.GET.OBJECT ouREST.PUT.OBJECT. La valeur par défaut est null si elle n'est pas disponible.
key_name chaîne Clé d'objet dans la demande, ou null si l'opération n'implique aucun objet.
request_uri chaîne Request-URIPartie du message de requête HTTP, ou null si elle n'est pas disponible.
http_status int Code d'état HTTP numérique de la réponse, par exemple 200 ou403. La valeur par défaut est null si elle n'est pas disponible.
error_code chaîne Code d'erreur Amazon S3, par exemple NoSuchKey ouAccessDenied, ou null si aucune erreur ne s'est produite.
bytes_sent_size long Nombre d'octets de réponse envoyés, hors surcharge du protocole HTTP. La valeur par défaut est null si elle n'est pas disponible.
object_size long Taille totale de l'objet. La valeur par défaut est null si elle n'est pas disponible.
total_duration long Durée totale de la demande entre le moment où elle a été reçue et le dernier octet de la réponse envoyée, en millisecondes. La valeur par défaut est null si elle n'est pas disponible.
turn_around_duration long Temps passé par Amazon S3 à traiter la demande, en millisecondes. Cette valeur est mesurée entre le moment où le dernier octet de la demande a été reçu et le moment où le premier octet de la réponse a été envoyé. La valeur par défaut est null si elle n'est pas disponible.
referer chaîne Valeur de l'Refereren-tête HTTP, ou null s'il n'est pas présent.
user_agent chaîne Valeur de l'User-Agenten-tête HTTP. La valeur par défaut est null si elle n'est pas disponible.
version_id chaîne ID de version dans la demande, ou null si l'opération n'implique pas d'objet versionné.
host_id chaîne ID de demande étendu Amazon S3 (x-amz-id-2). La valeur par défaut est null si elle n'est pas disponible.
signature_version chaîne Version de signature utilisée pour authentifier la demande : SigV2 ouSigV4. La valeur par défaut est null pour les demandes non authentifiées.
cipher_suite chaîne Suite de chiffrement TLS négociée pour les requêtes HTTPS ou null pour HTTP.
authentication_type chaîne Type d'authentification de la demande : AuthHeaderQueryString, ounull.
host_header chaîne Point de terminaison utilisé pour se connecter à Amazon S3. La valeur par défaut est null si elle n'est pas disponible.
tls_version chaîne Version TLS négociée par le client :TLSv1.1, TLSv1.2TLSv1.3, ounull.
access_point_arn chaîne ARN du point d'accès utilisé pour la demande, ou null si la demande n'a pas utilisé de point d'accès.
acl_required boolean Si une ACL était requise pour la demande. La valeur par défaut est null lorsqu'elle n'est pas applicable.
source_region chaîne Région AWS d'où provient la demande, ou null lorsque la région d'origine ne peut pas être déterminée (comme les connexions, les PrivateLink connexions Direct Connect, les adresses Bring your own IP (BYOIP) ou les adresses non IP) ou lorsque le journal est généré par des opérations déclenchées sur la base de politiques ou d'actions définies par le client, telles que le cycle de vie et la somme de contrôle.AWS

Exemple d'enregistrement de journal

Voici un exemple d'enregistrement du journal d'accès au serveur tel qu'il apparaît dans CloudWatch Logs.

{ "schema_version_id": "V_1_0", "bucket_arn": "arn:aws:s3:::my-data-bucket", "bucket_name": "my-data-bucket", "request_time": "2026-04-29T14:32:16.000Z", "bucket_owner_id": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be", "remote_ip": "203.0.113.45", "requester": "arn:aws:iam::123456789012:role/DataAnalystRole", "request_id": "3E57427F33A59F07", "operation": "REST.GET.OBJECT", "key_name": "reports/2026/quarterly-summary.parquet", "request_uri": "GET /my-data-bucket/reports/2026/quarterly-summary.parquet HTTP/1.1", "http_status": 200, "error_code": null, "bytes_sent_size": 1048576, "object_size": 1048576, "total_duration": 45, "turn_around_duration": 12, "referer": null, "user_agent": "aws-sdk-java/2.20.0", "version_id": null, "host_id": "s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=", "signature_version": "SigV4", "cipher_suite": "TLS_AES_128_GCM_SHA256", "authentication_type": "AuthHeader", "host_header": "my-data-bucket.s3.us-east-1.amazonaws.com", "tls_version": "TLSv1.3", "access_point_arn": null, "acl_required": false, "source_region": "us-east-1" }

Différences par rapport au format de journal des compartiments à usage général

Le format de journal CloudWatch des journaux diffère du format de journal des compartiments à usage général pour les raisons suivantes :

  • Format — Les CloudWatch journaux sont des objets JSON structurés. Les logs de bucket à usage général sont du texte délimité par des espaces.

  • Noms de champs : le format CloudWatch Logs utilise des noms de champs descriptifs séparés par des traits de soulignement (par exemple,, bytes_sent_sizetotal_duration,key_name). authentication_type Le format de compartiment à usage général est un texte délimité par des espaces positionnel sans colonnes nommées.

  • Champs supplémentaires — Le format CloudWatch Logs inclut schema_version_id etbucket_arn, qui ne sont pas présents dans le format de texte du bucket à usage général.

  • Aucune analyse requise : les CloudWatch journaux étant structurés au format JSON, vous pouvez interroger des champs individuels directement dans CloudWatch Logs Insights sans analyse regex. Le format de texte du bucket à usage général nécessite une expression régulière ou un analyseur personnalisé pour extraire les champs.