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.
| 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_typeLe 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_idetbucket_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.