Format des journaux d’accès au serveur Amazon S3
La journalisation des accès au serveur fournit des enregistrements détaillés des demandes soumises à un compartiment Amazon S3. Vous pouvez utiliser les journaux d’accès au serveur dans les buts suivants :
-
Réalisation d’audits de sécurité et d’accès
-
Apprendre à connaître votre clientèle
-
Comprendre votre facture Amazon S3
Cette section décrit le format et d’autres détails des fichiers journaux d’accès au serveur Amazon S3.
Les fichiers journaux d’accès au serveur consistent en une séquence d’enregistrements de journaux délimités par un retour à la ligne. Chaque enregistrement de journaux représente une demande et consiste en des champs séparés par des espaces.
Voici un exemple de journal composé de cinq enregistrements.
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 arn:aws:s3:us-west-1:123456789012:accesspoint/example-AP Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /amzn-s3-demo-bucket1?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /amzn-s3-demo-bucket1?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /amzn-s3-demo-bucket1/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes
Note
Tous les champs peuvent être configurés sur -
pour indiquer que les données étaient inconnues ou indisponibles, ou que le champ ne s’appliquait pas à cette demande.
Rubriques
Champs d’enregistrement des journaux
La liste suivante décrit les champs de l’enregistrement des journaux.
- Propriétaire du compartiment
-
L’ID d’utilisateur canonique du propriétaire du compartiment source. L’ID d’utilisateur canonique est une autre forme de l’ID de Compte AWS. Pour plus d’informations sur l’ID d’utilisateur canonique, consultez Identificateurs de Compte AWS dans Références générales AWS. Pour savoir comment trouver l’ID d’utilisateur canonique de votre compte, consultez Identification de l’ID d’utilisateur canonique de votre Compte AWS.
Exemple d’entrée
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
- Compartiment
-
Le nom du compartiment sur lequel la demande a été traitée. Si le système reçoit une demande erronée et ne peut pas déterminer le compartiment, la demande n’apparaît sur aucun journal d’accès au serveur.
Exemple d’entrée
- Heure
-
Heure à laquelle la demande a été reçue. Ces dates et heures sont exprimées en heure UTC (temps universel coordonné). Le format, en utilisant terminologie
strftime()
, est le suivant :[%d/%b/%Y:%H:%M:%S %z]
Exemple d’entrée
[06/Feb/2019:00:00:38 +0000]
- Adresse IP distante
-
L’adresse IP apparente du demandeur. Les proxys et pare-feu intermédiaires doivent cacher l’adresse IP réelle de la machine à l’origine de la demande.
Exemple d’entrée
192.0.2.3
- Demandeur
-
ID d’utilisateur canonique du demandeur, ou
-
pour les demandes non authentifiées. Si le demandeur est un utilisateur IAM, ce champ renvoie le nom utilisateur IAM du demandeur ainsi que l’Compte AWS auquel appartient l’utilisateur IAM. Cet identifiant est le même que celui qui est utilisé pour contrôler l’accès.Exemple d’entrée
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
Si le demandeur utilise un rôle endossé, ce champ renvoie le rôle IAM correspondant.
Exemple d’entrée
arn:aws:sts::123456789012:assumed-role/roleName/test-role
- ID de demande
-
Chaîne de caractères générée par Amazon S3 pour identifier de façon unique chaque demande.
Exemple d’entrée
3E57427F33A59F07
- Opération
-
L’opération listée ici est déclarée comme
SOAP.
,operation
REST.
,HTTP_method
.resource_type
WEBSITE.
ouHTTP_method
.resource_type
BATCH.DELETE.OBJECT
, ouS3.action.resource_type
pour Cycle de vie S3 et journalisation.Exemple d’entrée
REST.PUT.OBJECT
- Clé
-
La partie clé (nom de l’objet) de la demande.
Exemple d’entrée
/photos/2019/08/puppy.jpg
- Request-URI
-
La partie
Request-URI
du message de requête HTTP.Exemple d’entrée
"GET /amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-foo=bar HTTP/1.1"
- Statut HTTP
-
Code numérique du statut HTTP de la réponse.
Exemple d’entrée
200
- Code d’erreur
-
Réponses d’erreur Amazon S3 ou
-
si aucune erreur ne s’est produite.Exemple d’entrée
NoSuchBucket
- Octets envoyés
-
Nombre d’octets de réponse envoyés, hors surcharge de protocole HTTP ou
-
si zéro.Exemple d’entrée
2662992
- Taille de l’objet
-
Taille totale de l’objet en question.
Exemple d’entrée
3462992
- Durée totale
-
Le nombre de millisecondes (ms) pendant lesquelles la demande était en cours du point de vue du serveur. Cette valeur est mesurée entre la réception de la demande et l’envoi du dernier octet de la réponse. Les mesures effectuées depuis la perspective du client peuvent être plus longues en raison de la latence du réseau.
Exemple d’entrée
70
- Délai de traitement
-
Le nombre de millisecondes pendant lesquelles Amazon S3 a traité la demande. Cette valeur est mesurée entre la réception du dernier octets de votre demande et l’envoi du premier octet de la réponse.
Exemple d’entrée
10
- Referer
-
Valeur de l’en-tête du
Referer
HTTP, le cas échéant. Les agents utilisateur HTTP (par exemple, les navigateurs) définissent généralement cet en-tête comme l’URL de la page de liaison ou d’intégration lors d’une demande.Exemple d’entrée
"http://www.example.com/webservices"
- User-Agent
-
Valeur de l’en-tête du
User-Agent
HTTP.Exemple d’entrée
"curl/7.15.1"
- ID de version
-
L’ID de version dans la demande ou
-
si l’opération n’accepte pas de paramètreversionId
.Exemple d’entrée
3HL4kqtJvjVBH40Nrjfkd
- ID de l’hôte
-
L’ID de la requête étendue
x-amz-id-2
ou Amazon S3.Exemple d’entrée
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
- Version de signature
-
Version de signature,
SigV2
ouSigV4
, qui a été utilisée pour authentifier la demande ou-
pour les demandes non authentifiées.Exemple d’entrée
SigV2
- Suite de chiffrement
-
Chiffrement Secure Sockets Layer (SSL) qui a été négocié pour la requête HTTPS ou une valeur
-
pour HTTP.Exemple d’entrée
ECDHE-RSA-AES128-GCM-SHA256
- Type d’authentification
-
Type d’authentification de requête utilisé :
AuthHeader
pour les en-têtes d’authentification,QueryString
pour la chaîne de requête (URL présignée), ou-
pour les demandes non authentifiées.Exemple d’entrée
AuthHeader
- En-tête d’hôte
-
Point de terminaison utilisé pour vous connecter à Amazon S3.
Exemple d’entrée
s3.us-west-2.amazonaws.com
Certaines régions antérieures prennent en charge les points de terminaison hérités. Vous pouvez voir ces points de terminaison dans les journaux d’accès au serveur ou les journaux AWS CloudTrail. Pour plus d’informations, consultez Points de terminaison hérités. Pour obtenir la liste complète des régions et points de terminaison Amazon S3, consultez Points de terminaison et quotas Amazon S3 dans le Référence générale d'Amazon Web Services.
- Version de TLS
-
Version de protocole TLS (Transport Layer Security) négociée par le client. La valeur est l’une des valeurs suivantes :
TLSv1.1
,TLSv1.2
,TLSv1.3
ou-
si le protocole TLS n’a pas été utilisé.Exemple d’entrée
TLSv1.2
- ARN de point d’accès
-
Amazon Resource Name (ARN) du point d’accès de la demande. Si l’ARN du point d’accès est mal formé ou n’est pas utilisé, le champ contient un
-
. Pour plus d’informations sur les points d’accès, consultez Utilisation des points d’accès. Pour plus d’informations sur les ARN, consultez Amazon Resource Name (ARN) dans le Guide de référence générale AWS.Exemple d’entrée
arn:aws:s3:
us-east-1
:123456789012
:accesspoint/example-AP
- aclRequired
-
Une chaîne qui indique si la requête a nécessité une liste de contrôle d’accès (ACL) pour l’autorisation. Si la requête a nécessité un ACL pour l’autorisation, la chaîne est
Yes
. Si aucune ACL n’est requise, la chaîne est-
. Pour en savoir plus sur les listes ACL, consultez Présentation de la liste de contrôle d’accès (ACL). Pour plus d’informations sur l’utilisation du champaclRequired
pour désactiver les ACL, consultez Consultez Contrôle de la propriété des objets et désactivation des listes ACL pour votre compartiment.Exemple d’entrée
Yes
Journalisation supplémentaire les opérations de copie
Une copie implique une demande GET
et une demande PUT
. C’est pourquoi, nous consignons deux enregistrements lors d’une opération de copie. La section précédente décrit les champs liés à la partie PUT
de l’opération. La liste suivante décrit les champs dans l’enregistrement qui ont trait à la partie GET
de l’opération de copie.
- Propriétaire du compartiment
-
L’ID d’utilisateur canonique du compartiment qui stocke l’objet en cours de copie. L’ID d’utilisateur canonique est une autre forme de l’ID de Compte AWS. Pour plus d’informations sur l’ID d’utilisateur canonique, consultez Identificateurs de Compte AWS dans Références générales AWS. Pour savoir comment trouver l’ID d’utilisateur canonique de votre compte, consultez Identification de l’ID d’utilisateur canonique de votre Compte AWS.
Exemple d’entrée
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
- Compartiment
-
Nom du compartiment qui stocke l’objet à copier.
Exemple d’entrée
- Heure
-
Heure à laquelle la demande a été reçue. Ces dates et heures sont exprimées en heure UTC (temps universel coordonné). Le format, en utilisant terminologie
strftime()
, est le suivant :[%d/%B/%Y:%H:%M:%S %z]
Exemple d’entrée
[06/Feb/2019:00:00:38 +0000]
- Adresse IP distante
-
L’adresse IP apparente du demandeur. Les proxys et pare-feu intermédiaires doivent cacher l’adresse IP réelle de la machine à l’origine de la demande.
Exemple d’entrée
192.0.2.3
- Demandeur
-
ID d’utilisateur canonique du demandeur, ou
-
pour les demandes non authentifiées. Si le demandeur est un utilisateur IAM, ce champ renverra le nom utilisateur IAM du demandeur ainsi que l’Utilisateur racine d'un compte AWS auquel appartient l’utilisateur IAM. Cet identifiant est le même que celui qui est utilisé pour contrôler l’accès.Exemple d’entrée
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
Si le demandeur utilise un rôle endossé, ce champ renvoie le rôle IAM correspondant.
Exemple d’entrée
arn:aws:sts::123456789012:assumed-role/roleName/test-role
- ID de demande
-
Chaîne de caractères générée par Amazon S3 pour identifier de façon unique chaque demande.
Exemple d’entrée
3E57427F33A59F07
- Opération
-
L’opération listée ici est déclarée comme
SOAP.
,operation
REST.
,HTTP_method
.resource_type
WEBSITE.
ouHTTP_method
.resource_type
BATCH.DELETE.OBJECT
.Exemple d’entrée
REST.COPY.OBJECT_GET
- Clé
-
La clé (nom de l’objet) de l’objet à copier, ou
-
si l’opération n’accepte pas de paramètre clé.Exemple d’entrée
/photos/2019/08/puppy.jpg
- Request-URI
-
La partie
Request-URI
du message de requête HTTP.Exemple d’entrée
"GET /amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-foo=bar"
- Statut HTTP
-
Code numérique du statut HTTP de la partie
GET
de l’opération de copie.Exemple d’entrée
200
- Code d’erreur
-
Réponses d’erreur Amazon S3 de la partie
GET
de l’opération de copie ou-
si aucune erreur ne s’est produite.Exemple d’entrée
NoSuchBucket
- Octets envoyés
-
Nombre d’octets de réponse envoyés, hors surcharge de protocole HTTP ou
-
si zéro.Exemple d’entrée
2662992
- Taille de l’objet
-
Taille totale de l’objet en question.
Exemple d’entrée
3462992
- Durée totale
-
Le nombre de millisecondes (ms) pendant lesquelles la demande était en cours du point de vue du serveur. Cette valeur est mesurée entre la réception de la demande et l’envoi du dernier octet de la réponse. Les mesures effectuées depuis la perspective du client peuvent être plus longues en raison de la latence du réseau.
Exemple d’entrée
70
- Délai de traitement
-
Le nombre de millisecondes pendant lesquelles Amazon S3 a traité la demande. Cette valeur est mesurée entre la réception du dernier octets de votre demande et l’envoi du premier octet de la réponse.
Exemple d’entrée
10
- Referer
-
Valeur de l’en-tête du
Referer
HTTP, le cas échéant. Les agents utilisateur HTTP (par exemple, les navigateurs) définissent généralement cet en-tête comme l’URL de la page de liaison ou d’intégration lors d’une demande.Exemple d’entrée
"http://www.example.com/webservices"
- User-Agent
-
Valeur de l’en-tête du
User-Agent
HTTP.Exemple d’entrée
"curl/7.15.1"
- ID de version
-
ID de version de l’objet à copier ou
-
si l’en-têtex-amz-copy-source
n’a pas spécifié de paramètreversionId
dans la source de copie.Exemple d’entrée
3HL4kqtJvjVBH40Nrjfkd
- ID de l’hôte
-
L’ID de la requête étendue
x-amz-id-2
ou Amazon S3.Exemple d’entrée
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
- Version de signature
-
Version de signature,
SigV2
ouSigV4
, qui a été utilisée pour authentifier la demande ou-
pour les demandes non authentifiées.Exemple d’entrée
SigV4
- Suite de chiffrement
-
Chiffrement Secure Sockets Layer (SSL) qui a été négocié pour la requête HTTPS, ou une valeur
-
pour HTTP.Exemple d’entrée
ECDHE-RSA-AES128-GCM-SHA256
- Type d’authentification
-
Type d’authentification de requête utilisé :
AuthHeader
pour les en-têtes d’authentification,QueryString
pour les chaînes de requête (URL présignée), ou-
pour les demandes non authentifiées.Exemple d’entrée
AuthHeader
- En-tête d’hôte
-
Point de terminaison utilisé pour vous connecter à Amazon S3.
Exemple d’entrée
s3.us-west-2.amazonaws.com
Certaines régions antérieures prennent en charge les points de terminaison hérités. Vous pouvez voir ces points de terminaison dans les journaux d’accès au serveur ou les journaux AWS CloudTrail. Pour plus d’informations, consultez Points de terminaison hérités. Pour obtenir la liste complète des régions et points de terminaison Amazon S3, consultez Points de terminaison et quotas Amazon S3 dans le Référence générale d'Amazon Web Services.
- Version de TLS
-
Version de protocole TLS (Transport Layer Security) négociée par le client. La valeur est l’une des valeurs suivantes :
TLSv1.1
,TLSv1.2
,TLSv1.3
ou-
si le protocole TLS n’a pas été utilisé.Exemple d’entrée
TLSv1.2
- ARN de point d’accès
-
Amazon Resource Name (ARN) du point d’accès de la demande. Si l’ARN du point d’accès est mal formé ou n’est pas utilisé, le champ contient un
-
. Pour plus d’informations sur les points d’accès, consultez Utilisation des points d’accès. Pour plus d’informations sur les ARN, consultez Amazon Resource Name (ARN) dans le Guide de référence générale AWS.Exemple d’entrée
arn:aws:s3:
us-east-1
:123456789012
:accesspoint/example-AP
- aclRequired
-
Une chaîne qui indique si la requête a nécessité une liste de contrôle d’accès (ACL) pour l’autorisation. Si la requête a nécessité un ACL pour l’autorisation, la chaîne est
Yes
. Si aucune ACL n’est requise, la chaîne est-
. Pour en savoir plus sur les listes ACL, consultez Présentation de la liste de contrôle d’accès (ACL). Pour plus d’informations sur l’utilisation du champaclRequired
pour désactiver les ACL, consultez Consultez Contrôle de la propriété des objets et désactivation des listes ACL pour votre compartiment.Exemple d’entrée
Yes
Informations personnalisées des journaux d’accès
Vous pouvez inclure des informations personnalisées à stocker dans le journal d’accès pour une demande. Pour ce faire, ajoutez un paramètre de chaîne de requête personnalisé à l’URL utilisée. Amazon S3 ignore les paramètres de la chaîne de requête qui commencent par x-
, mais inclut ces derniers dans les enregistrements des journaux d’accès pour la demande dans le champ Request-URI
.
Par exemple, une demande GET
pour "s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-user=johndoe"
fonctionne de la même manière que la demande pour "s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg"
, sauf que la chaîne "x-user=johndoe"
est incluse dans le champ Request-URI
de l’enregistrement de journal associé. Cette fonctionnalité est uniquement disponible dans l’interface REST.
Remarques de programmation relatives au format étendu des journaux d’accès au serveur
Parfois, nous pouvons étendre le format d’enregistrement du journal d’accès en ajoutant de nouveaux champs à la fin de chaque ligne. Par conséquent, assurez-vous que tout votre code qui analyse les journaux d’accès au serveur peut gérer les champs de suivi qu’il pourrait ne pas comprendre.