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.
Activation de la journalisation des 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. Les journaux d'accès au serveur sont utiles pour de nombreuses applications. Par exemple, les informations des journaux d'accès peuvent s'avérer utiles en cas d'audit de sécurité ou d'audit des accès. Ces informations peuvent également vous aider à en savoir plus sur votre clientèle et à comprendre votre facture Amazon S3.
Par défaut, Amazon S3 ne collecte pas les journaux d'accès au serveur. Lorsque vous activez la journalisation, Amazon S3 fournit les journaux d’accès pour un compartiment source dans un compartiment de destination (également appelé compartiment cible) de votre choix. Le compartiment de destination doit se trouver dans le même Région AWS compartiment Compte AWS que le compartiment source.
Un enregistrement de journal d'accès contient des détails relatifs aux demandes soumises à un compartiment. Ces informations peuvent comprendre le type de demande, les ressources spécifiées dans la demande, ainsi que l'heure et la date du traitement de la demande. Pour plus d’informations sur les principes de base de la journalisation, consultez Enregistrement de demandes avec journalisation des accès au serveur.
Important
-
L'activation de la journalisation des accès au serveur sur un compartiment Amazon S3 n'entraîne aucuns frais supplémentaires. Toutefois, les fichiers journaux qui vous sont fournis par le système augmentent les coûts de stockage habituels. Notez que vous pouvez supprimer les fichiers journaux à tout moment. Nous n’évaluons pas les frais de transfert de données pour la livraison des fichiers journaux, mais nous facturons les frais standard de transfert de données pour l’accès aux fichiers journaux.
-
La journalisation des accès au serveur de votre compartiment de destination ne doit pas être activée. Les journaux peuvent être fournis dans n'importe quel compartiment que vous possédez qui est situé dans la même Région que le compartiment source, y compris le compartiment source lui-même. Toutefois, la livraison de journaux vers le compartiment source entraîne une boucle infinie de journaux et n'est pas recommandée. Pour simplifier la gestion des journaux, nous vous recommandons d'enregistrer les journaux d'accès dans un autre compartiment. Pour plus d’informations, consultez Comment activer la livraison des journaux ?.
-
Les compartiments S3 sur lesquels le verrouillage d’objet S3 est activé ne peuvent pas être utilisés comme compartiments de destination pour les journaux d’accès au serveur. Votre compartiment de destination ne doit pas avoir de configuration de période de rétention par défaut.
-
Le paiement par le demandeur ne doit pas être activé pour le compartiment de destination.
-
Vous pouvez utiliser le chiffrement de compartiment par défaut sur le compartiment de destination uniquement si vous utilisez le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3), qui utilise la norme de chiffrement avancée 256 bits (-256). AES Le chiffrement côté serveur par défaut avec les clés AWS Key Management Service (AWS KMS) (SSE-KMS) n'est pas pris en charge.
Vous pouvez activer ou désactiver la journalisation des accès au serveur en utilisant la console Amazon S3API, Amazon S3, le AWS Command Line Interface (AWS CLI) ou AWS SDKs.
Autorisations de diffusion de journaux
Amazon S3 utilise un compte de livraison de journaux spécial pour écrire des journaux d'accès au serveur. Ces journaux sont sujets aux restrictions habituelles de contrôle d'accès en écriture. Pour la livraison des journaux des accès, vous devez accorder au principal du service de journalisation (logging.s3.amazonaws.com
) l’accès à votre compartiment de destination.
Pour accorder des autorisations à Amazon S3 pour la livraison de logs, vous pouvez utiliser une politique de compartiment ou des listes de contrôle d'accès aux compartiments (ACLs), en fonction des paramètres de propriété des objets S3 de votre compartiment de destination. Cependant, nous vous recommandons d'utiliser une politique de compartiment à la place deACLs.
Paramètre bucket owner enforced (propriétaire du compartiment imposé) pour S3 Object Ownership (Propriété de l'objet S3)
Si le compartiment de destination utilise le paramètre imposé par le propriétaire du compartiment pour la propriété des objets, ACLs ils sont désactivés et n'affectent plus les autorisations. Dans ce cas, vous devez mettre à jour la politique de compartiment pour le compartiment de destination afin d’accorder l’accès au principal du service de journalisation. Vous ne pouvez pas mettre à jour votre compartiment ACL pour autoriser l'accès au groupe de mise à disposition de journaux S3. Vous ne pouvez pas non plus inclure de subventions de destination (également appelées subventions cibles) dans votre PutBucketLoggingConfiguration .
Pour plus d'informations sur la migration d'un bucket existant ACLs pour la livraison des journaux d'accès vers une politique de bucket, consultezOctroi de l’accès au groupe de livraison des journaux S3 pour la journalisation des accès au serveur. Pour en savoir plus sur la propriété des objets, veuillez consulter Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment. Lorsque vous créez de nouveaux compartiments, ACLs ils sont désactivés par défaut.
Octroi d’accès à l’aide d’une politique de compartiment
Pour accorder l’accès en utilisant la politique de compartiment sur le compartiment de destination, mettez à jour la politique de compartiment afin d’accorder l’autorisation s3:PutObject
au principal du service de journalisation. Si vous utilisez la console Amazon S3 pour activer la journalisation des accès au serveur, la console met automatiquement à jour la politique de compartiment sur le compartiment de destination, afin d’accorder cette autorisation au principal du service de journalisation. Si vous activez la journalisation des accès au serveur par programmation, vous devez mettre à jour manuellement la politique de compartiment pour le compartiment de destination afin d’accorder l’accès au principal du service de journalisation.
Pour un exemple de politique de compartiment qui accorde l’accès au principal du service de journalisation, consultez Octroi d'autorisations au principal du service de journalisation à l'aide d'une politique de compartiment.
Octroi d'accès à l'aide d'un bucket ACLs
Vous pouvez également utiliser un bucket ACLs pour accorder l'accès à la livraison du journal d'accès. Vous ajoutez une entrée d'autorisation au compartiment ACL qui accorde WRITE
des READ_ACP
autorisations au groupe de mise à disposition de journaux S3. Toutefois, il n'ACLsest pas recommandé d'accorder l'accès au groupe de distribution de journaux S3 à l'aide d'un bucket. Pour de plus amples informations, veuillez consulter Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment. Pour plus d'informations sur la migration d'un bucket existant ACLs pour la livraison des journaux d'accès vers une politique de bucket, consultezOctroi de l’accès au groupe de livraison des journaux S3 pour la journalisation des accès au serveur. Pour un exemple ACL qui accorde l'accès au principal du service de journalisation, voirAccorder des autorisations au groupe de mise à disposition de journaux à l'aide d'un bucket ACL.
Octroi d'autorisations au principal du service de journalisation à l'aide d'une politique de compartiment
Cet exemple de politique de compartiment accorde l’autorisation s3:PutObject
au principal du service de journalisation (logging.s3.amazonaws.com
). Pour utiliser cette politique de compartiment, remplacez
par vos propres informations. Dans la politique suivante, user input placeholders
il s'agit du compartiment de destination dans lequel les journaux d'accès au serveur seront fournis et amzn-s3-demo-destination-bucket
du compartiment source. amzn-s3-demo-source-bucket
est le préfixe de destination facultatif (également appelé préfixe cible) que vous souhaitez utiliser pour vos objets de journal. EXAMPLE-LOGGING-PREFIX
est celui Compte AWS qui possède le compartiment source. SOURCE-ACCOUNT-ID
Note
Si votre politique de compartiment contient des instructions Deny
, veillez à ce qu'elles n'empêchent pas Amazon S3 de livrer les journaux d'accès.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": { "Service": "logging.s3.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-destination-bucket
/EXAMPLE-LOGGING-PREFIX
*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket
" }, "StringEquals": { "aws:SourceAccount": "SOURCE-ACCOUNT-ID
" } } } ] }
Accorder des autorisations au groupe de mise à disposition de journaux à l'aide d'un bucket ACL
Note
Pour des raisons de sécurité, Amazon S3 désactive les listes de contrôle d'accès (ACLs) par défaut dans tous les nouveaux compartiments. Pour plus d'informations sur ACL les autorisations dans la console Amazon S3, consultezConfiguration ACLs.
Bien que nous ne recommandions pas cette approche, vous pouvez accorder des autorisations au groupe de mise à disposition de journaux à l'aide d'un bucketACL. Toutefois, si le compartiment de destination utilise le paramètre imposé par le propriétaire du compartiment pour la propriété de l'objet, vous ne pouvez pas définir de compartiment ou d'objetACLs. Vous ne pouvez pas non plus inclure de subventions de destination (également appelées subventions cibles) dans votre PutBucketLoggingConfiguration . À la place, vous devez utiliser une politique de compartiment pour accorder l'accès au principal du service de journalisation (logging.s3.amazonaws.com
). Pour de plus amples informations, veuillez consulter Autorisations de diffusion de journaux.
Dans le compartimentACL, le groupe de mise à disposition du journal est représenté par les éléments suivants URL :
http://acs.amazonaws.com/groups/s3/LogDelivery
Pour accorder WRITE
et READ_ACP
(ACLlire) des autorisations, ajoutez les autorisations suivantes au compartiment de destination ACL :
<Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> </Grantee> <Permission>WRITE</Permission> </Grant> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> </Grantee> <Permission>READ_ACP</Permission> </Grant>
Pour des exemples d'ajout de ACL subventions par programmation, voir. Configuration ACLs
Important
Lorsque vous activez la journalisation de l'accès au serveur Amazon S3 AWS CloudFormation à l'aide d'un compartiment et que vous l'utilisez ACLs pour accorder l'accès au groupe de mise à disposition des journaux S3, vous devez également ajouter « » AccessControl": "LogDeliveryWrite"
à votre CloudFormation modèle. Cela est important car vous ne pouvez accorder ces autorisations qu'en créant un ACL pour le compartiment, mais vous ne pouvez pas créer de contenu personnalisé ACLs pour les CloudFormation compartiments. Vous ne pouvez utiliser que des conserves ACLs avec CloudFormation.
Pour activer la journalisation des accès au serveur
Pour activer la journalisation des accès au serveur à l'aide de la console Amazon S3 REST API AWS SDKs, Amazon S3 AWS CLI, et suivez les procédures suivantes.
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans la liste Buckets (Compartiments), choisissez le nom du compartiment pour lequel vous souhaitez activer la journalisation des accès au serveur.
-
Choisissez Propriétés.
-
Dans la section Server access logging (Journalisation des accès au serveur) choisissez Edit (Modifier).
-
Sous Consignation des accès au serveur, choisissez Activer.
-
Sous Compartiment de destination, spécifiez un compartiment et un préfixe facultatif. Si vous spécifiez un préfixe, nous vous recommandons d’inclure une barre oblique (
/
) après le préfixe pour faciliter la recherche des journaux.Note
La spécification d’un préfixe avec une barre oblique (
/
) simplifie la localisation des objets journaux. Par exemple, si vous spécifiez la valeur de préfixelogs/
, chaque objet journal créé par Amazon S3 commence par le préfixelogs/
dans sa clé, comme suit :logs/2013-11-01-21-32-16-E568B2907131C0C0
Si vous spécifiez la valeur de préfixe
logs
, l’objet journal apparaît comme suit :logs2013-11-01-21-32-16-E568B2907131C0C0
-
Sous Format de clé d’objet journal, effectuez l’une des opérations suivantes :
-
Pour choisir le non-date-based partitionnement, choisissez [DestinationPrefix] [YYYY] - [MM] - [DD] - [hh] - [mm] - [ss] - [UniqueString].
-
Pour choisir le partitionnement basé sur la date, choisissez [DestinationPrefix] [SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[] - [MMYYYY] - [DD] - [hh] - [mm] - [ss] - [UniqueString], puis choisissez l'heure de l'événement S3 ou le délai de livraison du fichier journal.
-
-
Sélectionnez Enregistrer les modifications.
Lorsque vous activez la journalisation des accès au serveur sur un compartiment, la console active la journalisation sur le compartiment source et met à jour la politique de compartiment pour le compartiment de destination afin d’accorder l’autorisation
s3:PutObject
au principal du service de journalisation (logging.s3.amazonaws.com
). Pour plus d'informations sur cette stratégie de compartiment, consultez Octroi d'autorisations au principal du service de journalisation à l'aide d'une politique de compartiment.Vous pouvez afficher les journaux dans le compartiment de destination. Une fois que vous avez activé la journalisation des accès au serveur, cela peut prendre quelques heures avant que les journaux sont livrés dans le compartiment cible. Pour plus d'informations sur la façon et le moment de livraison des journaux, consultez Comment sont distribués les journaux ?.
Pour de plus amples informations, veuillez consulter Affichage des propriétés d'un compartiment S3.
Pour activer la journalisation, vous devez soumettre un PutBucketLoggingdemande d'ajout de la configuration de journalisation sur le compartiment source. La demande spécifie le compartiment de destination (également appelé compartiment cible) et, si vous le souhaitez, le préfixe à utiliser avec toutes les clés d’objets journaux.
L'exemple suivant identifie
comme étant le compartiment de destination et amzn-s3-demo-destination-bucket
comme préfixe. journaux/
<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <LoggingEnabled> <TargetBucket>
amzn-s3-demo-destination-bucket
</TargetBucket> <TargetPrefix>logs/
</TargetPrefix> </LoggingEnabled> </BucketLoggingStatus>
L'exemple suivant identifie
le compartiment de destination, amzn-s3-demo-destination-bucket
comme préfixe et journaux/
EventTime
comme format de clé de l'objet du journal.
<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <LoggingEnabled> <TargetBucket>
amzn-s3-demo-destination-bucket
</TargetBucket> <TargetPrefix>logs/
</TargetPrefix> <TargetObjectKeyFormat> <PartitionedPrefix> <PartitionDateSource>EventTime</PartitionDateSource> </PartitionedPrefix> </TargetObjectKeyFormat> </LoggingEnabled> </BucketLoggingStatus>
Les objets des journaux sont écrits et détenus par le compte de livraison des journaux S3, et le propriétaire du compartiment possède les autorisations complètes sur ces objets. Vous pouvez éventuellement utiliser des octrois de destination (également appelés octrois cibles) pour accorder des autorisations aux autres utilisateurs, afin qu’ils puissent accéder aux journaux. Pour plus d’informations, consultez .PutBucketLogging.
Note
Si le compartiment de destination utilise le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets, vous ne pouvez pas utiliser les octrois de destination pour accorder des autorisations à d’autres utilisateurs. Pour accorder des autorisations à d’autres, vous pouvez mettre à jour la politique de compartiment sur le compartiment de destination. Pour de plus amples informations, veuillez consulter Autorisations de diffusion de journaux.
Pour récupérer la configuration de journalisation sur un bucket, utilisez le GetBucketLoggingAPIopération.
Pour supprimer la configuration de la journalisation, vous envoyez une demande PutBucketLogging
avec un paramètre BucketLoggingStatus
vide :
<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01"> </BucketLoggingStatus>
Pour activer la connexion à un compartiment, vous pouvez utiliser les bibliothèques Amazon S3 API ou AWS SDK Wrapper.
Les exemples suivants activent la journalisation sur un compartiment. Vous devez créer deux compartiments : un compartiment source et un compartiment de destination (cible). Les exemples mettent d'abord à jour le compartiment ACL sur le compartiment de destination. Ils accordent alors au groupe de livraison des journaux les autorisations nécessaires pour écrire des journaux dans le compartiment de destination, puis activent la journalisation sur le compartiment source.
Ces exemples ne fonctionnent pas sur les compartiments de destination qui utilisent le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets.
Si le compartiment de destination (cible) utilise le paramètre imposé par le propriétaire du compartiment pour la propriété de l'objet, vous ne pouvez pas définir de compartiment ou d'objetACLs. Vous ne pouvez pas non plus inclure d'autorisations de destination (cible) dans votre PutBucketLoggingconfiguration. Vous devez utiliser une stratégie de compartiment pour accorder l'accès au principal du service de journalisation (logging.s3.amazonaws.com
). Pour de plus amples informations, veuillez consulter Autorisations de diffusion de journaux.
Nous vous recommandons de créer un compartiment de journalisation dédié dans chaque compartiment dans Région AWS lequel vous avez des compartiments S3. Ensuite, faites en sorte que les journaux d’accès Amazon S3 soient livrés dans ce compartiment S3. Pour plus d'informations et des exemples, voir put-bucket-logging
Si le compartiment de destination (cible) utilise le paramètre imposé par le propriétaire du compartiment pour la propriété de l'objet, vous ne pouvez pas définir de compartiment ou d'objetACLs. Vous ne pouvez pas non plus inclure d'autorisations de destination (cible) dans votre PutBucketLoggingconfiguration. Vous devez utiliser une stratégie de compartiment pour accorder l'accès au principal du service de journalisation (logging.s3.amazonaws.com
). Pour plus d’informations, consultez Autorisations de diffusion de journaux.
Exemple – Activer des journaux d'accès avec cinq compartiments répartis dans deux Régions
Dans cet exemple, vous disposez des cinq compartiments suivants :
-
amzn-s3-demo-source-bucket
-us-east-1 -
amzn-s3-demo-source-bucket1
-us-east-1 -
amzn-s3-demo-source-bucket2
-us-east-1 -
amzn-s3-demo-bucket1
-us-west-2 -
amzn-s3-demo-bucket2
-us-west-2
Note
La dernière étape de la procédure suivante fournit des exemples de scripts bash que vous pouvez utiliser pour créer vos compartiments de journalisation et activer la journalisation des accès au serveur sur ces compartiments. Pour utiliser ces scripts, vous devez créer les fichiers policy.json
et logging.json
, comme décrit dans la procédure suivante.
-
Créez deux compartiments de destination de journalisation dans les régions USA Ouest (Oregon) et USA Est (Virginie du Nord) et donnez-leur les noms suivants :
-
amzn-s3-demo-destination-bucket
-logs-us-east-1 -
amzn-s3-demo-destination-bucket1
-logs-us-west-2
-
-
Plus tard dans ces étapes, vous activerez la journalisation des accès au serveur comme suit :
-
consigne dans le compartiment S3amzn-s3-demo-source-bucket
-us-east-1
avec le préfixeamzn-s3-demo-destination-bucket
-logs-us-east-1
.amzn-s3-demo-source-bucket
-us-east-1 -
consigne dans le compartiment S3amzn-s3-demo-source-bucket1
-us-east-1
avec le préfixeamzn-s3-demo-destination-bucket
-logs-us-east-1
.amzn-s3-demo-source-bucket1
-us-east-1 -
consigne dans le compartiment S3amzn-s3-demo-source-bucket2
-us-east-1
avec le préfixeamzn-s3-demo-destination-bucket
-logs-us-east-1
.amzn-s3-demo-source-bucket2
-us-east-1 -
consigne dans le compartiment S3amzn-s3-demo-bucket1
-us-west-2
avec le préfixeamzn-s3-demo-destination-bucket1
-logs-us-west-2
.amzn-s3-demo-bucket1
-us-west-2 -
consigne dans le compartiment S3amzn-s3-demo-bucket2
-us-west-2
avec le préfixeamzn-s3-demo-destination-bucket1
-logs-us-west-2
.amzn-s3-demo-bucket2
-us-west-2
-
-
Pour chaque compartiment de journalisation de destination, accordez des autorisations pour la livraison du journal d'accès au serveur en utilisant un bucket ACL ou une politique de bucket :
-
Mettre à jour la politique de compartiment (recommandé) : pour accorder des autorisations au principal du service de journalisation, utilisez la commande
put-bucket-policy
suivante. Remplacez
par le nom de votre compartiment de destination.amzn-s3-demo-destination-bucket
-logsaws s3api put-bucket-policy --bucket
--policy file://policy.jsonamzn-s3-demo-destination-bucket
-logsPolicy.json
est un JSON document du dossier actuel qui contient la politique de compartiment suivante. Pour utiliser cette politique de compartiment, remplacez
par vos propres informations. Dans la politique suivante,user input placeholders
est le compartiment de destination dans lequel les journaux d'accès au serveur seront fournis etamzn-s3-demo-destination-bucket
-journaux
le compartiment source.amzn-s3-demo-source-bucket
est celui Compte AWS qui possède le compartiment source.SOURCE-ACCOUNT-ID
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": { "Service": "logging.s3.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-destination-bucket
-logs
/*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket
" }, "StringEquals": { "aws:SourceAccount": "SOURCE-ACCOUNT-ID
" } } } ] } -
Mettre à jour le compartiment ACL : pour accorder des autorisations au groupe de mise à disposition des journaux S3, utilisez la
put-bucket-acl
commande suivante. Remplacez
avec le nom de votre compartiment de destination (cible).amzn-s3-demo-destination-bucket
-journauxaws s3api put-bucket-acl --bucket
--grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDeliveryamzn-s3-demo-destination-bucket
-logs
-
-
Créez ensuite un fichier
logging.json
contenant votre configuration de journalisation (en vous basant sur l’un des trois exemples suivants). Après avoir créé le fichierlogging.json
, vous pouvez appliquer la configuration de journalisation à l’aide de la commandeput-bucket-logging
suivante. Remplacez
avec le nom de votre compartiment de destination (cible).amzn-s3-demo-destination-bucket
-journauxaws s3api put-bucket-logging --bucket
--bucket-logging-status file://logging.jsonamzn-s3-demo-destination-bucket
-logsNote
Au lieu d’utiliser cette commande
put-bucket-logging
pour appliquer la configuration de journalisation sur chaque compartiment de destination, vous pouvez utiliser l’un des scripts bash fournis à l’étape suivante. Pour utiliser ces scripts, vous devez créer les fichierspolicy.json
etlogging.json
, comme décrit dans cette procédure.Le
logging.json
fichier est un JSON document du dossier actuel qui contient votre configuration de journalisation. Si un compartiment de destination utilise le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets, votre configuration de journalisation ne peut pas contenir d’octrois de destination (cibles). Pour plus d’informations, consultez Autorisations de diffusion de journaux.Exemple :
logging.json
sans octrois de destination (cibles)L’exemple de fichier
logging.json
suivant ne contient pas d’octrois de destination (cibles). Par conséquent, vous pouvez appliquer cette configuration à un compartiment de destination (cible) qui utilise le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets.{ "LoggingEnabled": { "TargetBucket": "
amzn-s3-demo-destination-bucket
-logs
", "TargetPrefix": "amzn-s3-demo-destination-bucket
/" } }Exemple :
logging.json
avec des octrois de destination (cibles)L’exemple de fichier
logging.json
suivant contient des octrois de destination (cibles).Si le compartiment de destination utilise le paramètre imposé par le propriétaire du compartiment pour la propriété de l'objet, vous ne pouvez pas inclure les autorisations de destination (cible) dans votre PutBucketLoggingConfiguration . Pour de plus amples informations, veuillez consulter Autorisations de diffusion de journaux.
{ "LoggingEnabled": { "TargetBucket": "
amzn-s3-demo-destination-bucket
-logs
", "TargetPrefix": "amzn-s3-demo-destination-bucket
/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "user@example.com
" }, "Permission": "FULL_CONTROL" } ] } }Exemple :
logging.json
avec le format de clé d’objet journal défini sur Heure de l’événement S3Le fichier
logging.json
suivant remplace le format de clé d’objet journal par l’heure de l’événement S3. Pour plus d’informations sur la définition du format de clé d’objet journal, consultez Comment activer la livraison des journaux ?.{ "LoggingEnabled": { "TargetBucket": "
amzn-s3-demo-destination-bucket
-logs
", "TargetPrefix": "amzn-s3-demo-destination-bucket
/", "TargetObjectKeyFormat": { "PartitionedPrefix": { "PartitionDateSource": "EventTime" } } } } -
Utilisez l’un des scripts bash suivants pour ajouter la journalisation des accès pour tous les compartiments dans votre compte. Remplacez
avec le nom de votre compartiment de destination (cible), et remplacez-leamzn-s3-demo-destination-bucket
-journaux
par le nom de la région dans laquelle se trouvent vos compartiments.us-west-2
Note
Ce script fonctionne uniquement si tous vos compartiments se trouvent dans la même région. Si vous disposez de compartiments dans plusieurs Régions, vous devez adapter le script.
Exemple — Accordez l'accès avec des stratégies de compartiment et ajoutez la journalisation pour les compartiments de votre compte
loggingBucket='
amzn-s3-demo-destination-bucket
-logs
' region='us-west-2
' # Create the logging bucket. aws s3 mb s3://$loggingBucket --region $region aws s3api put-bucket-policy --bucket $loggingBucket --policy file://policy.json # List the buckets in this account. buckets="$(aws s3 ls | awk '{print $3}')" # Put a bucket logging configuration on each bucket. for bucket in $buckets do # This if statement excludes the logging bucket. if [ "$bucket" != "$loggingBucket" ] ; then continue; fi printf '{ "LoggingEnabled": { "TargetBucket": "%s", "TargetPrefix": "%s/" } }' "$loggingBucket" "$bucket" > logging.json aws s3api put-bucket-logging --bucket $bucket --bucket-logging-status file://logging.json echo "$bucket done" done rm logging.json echo "Complete"Exemple — Accordez l'accès avec un bucket ACLs et ajoutez une journalisation pour les buckets de votre compte
loggingBucket='
amzn-s3-demo-destination-bucket
-logs
' region='us-west-2
' # Create the logging bucket. aws s3 mb s3://$loggingBucket --region $region aws s3api put-bucket-acl --bucket $loggingBucket --grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery # List the buckets in this account. buckets="$(aws s3 ls | awk '{print $3}')" # Put a bucket logging configuration on each bucket. for bucket in $buckets do # This if statement excludes the logging bucket. if [ "$bucket" != "$loggingBucket" ] ; then continue; fi printf '{ "LoggingEnabled": { "TargetBucket": "%s", "TargetPrefix": "%s/" } }' "$loggingBucket" "$bucket" > logging.json aws s3api put-bucket-logging --bucket $bucket --bucket-logging-status file://logging.json echo "$bucket done" done rm logging.json echo "Complete"
Vérification de votre configuration des journaux d'accès au serveur
Après avoir activé la journalisation des accès au serveur, effectuez les étapes suivantes :
-
Accédez au compartiment de destination et vérifiez que les fichiers journaux sont livrés. Une fois les journaux d'accès configurés, Amazon S3 commence immédiatement à capturer les demandes et à les enregistrer. Cependant, il peut s'écouler quelques heures avant que les journaux ne soient livrés au compartiment de destination. Pour plus d’informations, consultez Les changements de statut de la journalisation des compartiments prennent effet au fil du temps et Livraison des journaux du serveur dans la mesure du possible.
Vous pouvez également vérifier automatiquement la livraison des journaux en utilisant les métriques de demande Amazon S3 et en configurant des CloudWatch alarmes Amazon pour ces métriques. Pour de plus amples informations, veuillez consulter Surveillance des métriques avec Amazon CloudWatch.
-
Vérifiez que vous êtes en mesure d'ouvrir et de lire le contenu des fichiers journaux.
Pour obtenir des informations sur la résolution des problèmes de journalisation des accès au serveur, consultez Résolution des problèmes de journalisation des accès au serveur.