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 seulement si vous utilisez le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3), qui utilise la norme Advanced Encryption Standard à 256 bits (AES-256). Le chiffrement côté serveur par défaut avec des 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 à l'aide de la console Amazon S3, de l'API Amazon S3, du 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 de ACLs.
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 la liste ACL de votre compartiment pour accorder l’accès au groupe de mise à disposition des 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, consultez 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’accord à la liste ACL du compartiment qui accorde les autorisations WRITE
et READ_ACP
sur le groupe de mise à disposition des journaux S3. Cependant, il n' ACLs est 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 obtenir un exemple de liste ACL qui accorde l’accès au principal du service de journalisation, consultez Octroi d’autorisations au groupe de livraison des journaux à l’aide d’une liste ACL de compartiment.
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
" } } } ] }
Octroi d’autorisations au groupe de livraison des journaux à l’aide d’une liste ACL de compartiment
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 les autorisations ACL dans la console Amazon S3, consultez Configuration ACLs.
Nous ne recommandons pas cette approche, mais vous pouvez accorder des autorisations au groupe de livraison des journaux en utilisant une liste ACL de compartiment. 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'objet ACLs. 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 plus d’informations, consultez Autorisations de diffusion de journaux.
Dans la liste ACL de compartiment, le groupe de livraison des journaux est représenté par l’URL suivante :
http://acs.amazonaws.com/groups/s3/LogDelivery
Pour accorder des autorisations WRITE
et READ_ACP
(lecture de liste ACL), ajoutez les octrois suivants à la liste ACL du compartiment de destination :
<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 obtenir des exemples d’ajout d’attributions ACL par programmation, consultez 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 une ACL pour le bucket, mais vous ne pouvez pas créer de version personnalisée ACLs pour les buckets. CloudFormation 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, de l'API REST Amazon S3 AWS SDKs 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 le volet de navigation de gauche, choisissez Compartiments à usage général.
-
Dans la liste des 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]/[YYYYSourceBucket]/[MM]/[DD]/[YYYY] - [MM] - [DD] - [hh] - [mm] - [ss] - [UniqueString], puis choisissez l'heure de l'événement S3 ou l'heure 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 politique 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 plus d’informations, consultez 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 compartiment de destination et amzn-s3-demo-destination-bucket
comme préfixe. logs/
<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
comme compartiment de destination, amzn-s3-demo-destination-bucket
comme préfixe et logs/
EventTime
comme format de clé d’objet 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 GetBucketLoggingFonctionnement de l'API.
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 l'API Amazon S3 ou les bibliothèques d'encapsulation du AWS SDK.
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 commencent par mettre à jour la liste ACL de compartiment 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'objet ACLs. Vous ne pouvez pas non plus inclure d'autorisations de destination (cible) dans votre PutBucketLoggingconfiguration. 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.
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'objet ACLs. Vous ne pouvez pas non plus inclure d'autorisations de destination (cible) dans votre PutBucketLoggingconfiguration. Vous devez utiliser une politique 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 des journaux d’accès au serveur à l’aide d’une liste ACL de compartiment ou d’une politique de compartiment :
-
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 document JSON dans le 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 où les journaux des accès au serveur seront livrés, etamzn-s3-demo-destination-bucket
-logs
est le compartiment source.amzn-s3-demo-source-bucket
est le 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 la liste ACL de compartiment : pour accorder des autorisations au groupe de livraison des journaux S3, utilisez la commande
put-bucket-acl
suivante. Remplacez
par le nom de votre compartiment de destination (cible).amzn-s3-demo-destination-bucket
-logsaws 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
par le nom de votre compartiment de destination (cible).amzn-s3-demo-destination-bucket
-logsaws 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 fichier
logging.json
est un document JSON situé dans le 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
par le nom de votre compartiment de destination (cible) et remplacezamzn-s3-demo-destination-bucket
-logs
par le nom de la région où 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 journaliser. Toutefois, la livraison des journaux dans le compartiment de destination peut prendre quelques heures. 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.