View a markdown version of this page

Journaux envoyés à Amazon S3 - Amazon CloudWatch Logs

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.

Journaux envoyés à Amazon S3

Pour un exemple de AWS CLI, voirCréation d'une livraison vers Amazon S3.

Autorisations des utilisateurs

Pour activer l'envoi de journaux à Amazon S3, vous devez être connecté avec les autorisations suivantes.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:delivery:*", "arn:aws:logs:us-east-1:111122223333:delivery-source:*", "arn:aws:logs:us-east-1:111122223333:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::bucket-name" } ] }

Politique relative aux ressources du compartiment Amazon S3

Le compartiment S3 où les journaux sont envoyés doit avoir une politique de ressources qui inclut certaines autorisations. Si le compartiment ne comporte aucune politique de ressources et que l'utilisateur qui configure la journalisation dispose des autorisations S3:GetBucketPolicy et S3:PutBucketPolicy pour le compartiment, AWS crée automatiquement la politique suivante lorsque vous commencez à envoyer les journaux à Amazon S3.

JSON
{ "Version":"2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "0123456789" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:111122223333:delivery-source:*" ] } } } ] }

Dans la politique précédente, pour aws:SourceAccount, spécifiez la liste des ID de comptes pour lesquels les journaux sont transmis à ce compartiment. Pour aws:SourceArn, spécifiez la liste des ARN de la ressource qui génère les journaux, dans le formulaire arn:aws:logs:source-region:source-account-id:*.

Si le compartiment dispose d'une politique de ressources, mais que celle-ci ne contient pas la déclaration indiquée dans la politique précédente, et que l'utilisateur qui configure la journalisation dispose des autorisations S3:GetBucketPolicy et S3:PutBucketPolicy pour le compartiment, cette déclaration est ajoutée à la politique de ressources du compartiment.

Note

Dans certains cas, des AccessDenied erreurs peuvent s'afficher AWS CloudTrail si l's3:ListBucketautorisation n'a pas été accordéedelivery.logs.amazonaws.com. Pour éviter ces erreurs dans vos CloudTrail journaux, vous devez accorder l's3:ListBucketautorisation delivery.logs.amazonaws.com et inclure les Condition paramètres indiqués dans l's3:GetBucketAclautorisation définie dans la politique de compartiment précédente. Pour simplifier les choses, au lieu de créer un nouveau Statement, vous pouvez directement mettre à jour le AWSLogDeliveryAclCheck pour qu'il devienne “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]

Chiffrement côté serveur des compartiments Amazon S3

Vous pouvez protéger les données de votre compartiment Amazon S3 en activant le chiffrement côté serveur. Vous pouvez utiliser S3-managed les clés Amazon (SSE-S3) ou une AWS KMS clé stockée dans AWS Key Management Service (SSE-KMS). Pour plus d'informations, consultez Protection des données à l'aide du chiffrement côté serveur.

Si vous le souhaitez SSE-S3, aucune configuration supplémentaire n'est requise. Amazon S3 gère la clé de chiffrement.

Clé gérée par le client requise

Si vous le souhaitez SSE-KMS, vous devez utiliser une clé gérée par le client. Vous ne pouvez pas utiliser de clé AWS gérée. Si vous configurez le chiffrement avec une clé AWS gérée, CloudWatch Logs fournit les journaux dans un format illisible.

Pour SSE-KMS, spécifiez l'Amazon Resource Name (ARN) de la clé lorsque vous activez le chiffrement des compartiments. Ajoutez ce qui suit à la politique clé (et non à la politique de compartiment de votre compartiment S3), afin que le compte de livraison du journal puisse écrire dans votre compartiment S3.

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["012345678901"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:012345678901:delivery-source:*"] } } }

Pouraws:SourceAccount, spécifiez les identifiants de compte dont les journaux sont envoyés à ce compartiment. Pouraws:SourceArn, spécifiez les ARN de la source de diffusion au format suivant :arn:aws:logs:source-region:source-account-id:delivery-source:*.

Format de clé d'objet Amazon S3

Pour les livraisons qui utilisent les autorisations V2, la clé d'objet Amazon S3 est déterminée par le préfixe de destination, le type de journal, le chemin du suffixe de la livraison et par le fait que les Hive-compatible chemins sont activés ou non. Le chemin exact défini par le service et les variables de suffixe prises en charge varient selon le type de journal.

Préfixe de destination

Un chemin facultatif que vous ajoutez à l'ARN du bucket lorsque vous appelez PutDeliveryDestination. Par exemple : arn:aws:s3:::bucket-name/MyLogPrefix. Les objets livrés commencent par ce préfixe, suivi du chemin défini par le service du type de journal, tel que. AWSLogs/source-account-id/service-name/ Pour la journalisation CloudFront standard (v2), le préfixe de destination remplace le chemin par défaut au lieu de le précéder.

Chemin du suffixe

Un chemin facultatif que vous configurez pour une livraison individuelle dans son S3DeliveryConfiguration. Un suffixe peut contenir du texte statique et des variables. Pour trouver les variables prises en charge par un type de journal, appelez DescribeConfigurationTemplateset vérifiezallowedSuffixPathFields. Si vous ne spécifiez pas de chemin de suffixe, le chemin de suffixe par défaut du type de journal est utilisé lorsqu'il est disponible.

Hive-compatible chemin

Dans enableHiveCompatiblePath ce castrue, les variables prises en charge dans un explicite suffixPath sont rendues sous la formekey=value. Pour les types de journaux tels que les journaux d'accès à Application Load Balancer, ce formatage modifie également le segment de compte défini par le service. Par exemple, AWSLogs/source-account-id/ devient AWSLogs/aws-account-id=source-account-id/.

Si vous omettezsuffixPath, le Hive-compatible formatage s'applique uniquement lorsque le chemin du suffixe par défaut du type de journal le prend en charge. Par exemple, les journaux d'accès à Application Load Balancer prennent en charge ce formatage. Les autres types de journaux, notamment les journaux d'accès au serveur Amazon S3, conservent leur suffixe par défaut d'origine sous une forme autre que Hive, y compris les répertoires de ressources et de dates.

Pour un type de journal dont la valeur par défaut ne prend pas Hive-compatible en charge le formatage, spécifiez une valeur valide suffixPath contenant des variables prises en charge. Un suffixe explicite remplace le suffixe par défaut. Incluez les variables de ressource et de date dont vous avez besoin, en utilisant le type de journal allowedSuffixPathFields de DescribeConfigurationTemplates.

Les exemples suivants montrent le début d'une clé d'objet Application Load Balancer access-log pour le compte dans. 111122223333 us-east-1 Sauf indication contraire, les exemples ne supposent aucun préfixe de destination.

Configuration Début de la clé d'objet
Hive-compatible chemin désactivé, suffixe omis AWSLogs/111122223333/elasticloadbalancing/us-east-1/2026/09/10/
Hive-compatible chemin activé, suffixe omis AWSLogs/aws-account-id=111122223333/elasticloadbalancing/region=us-east-1/year=2026/month=09/day=10/
Hive-compatible chemin activé, suffixe myFolder/{yyyy}/{MM}/{dd} AWSLogs/aws-account-id=111122223333/elasticloadbalancing/myFolder/year=2026/month=09/day=10/
Hive-compatible chemin activé, suffixe myFolder/ AWSLogs/111122223333/elasticloadbalancing/myFolder/
Préfixe de destinationMyLogPrefix, Hive-compatible chemin désactivé, suffixe omis MyLogPrefix/AWSLogs/111122223333/elasticloadbalancing/us-east-1/2026/09/10/
Chemins de suffixe statiques et autorisations de compartiment

Pour les types de journaux tels que les journaux d'accès à Application Load Balancer, un journal suffixPath contenant uniquement du texte statique ne permet pas le Hive-compatible formatage du préfixe de compte défini par le service. Par exemple, myFolder/ utilise le préfixe de compte simple indiqué dans le tableau. La livraison échoue si CloudWatch Logs essaie d'écrire sous le préfixe de compte ordinaire et que la politique du bucket n'autorise que le Hive-compatible préfixe.

Lorsque vous créez une livraison Application Load Balancer avec enableHiveCompatiblePath set totrue, la politique de bucket créée automatiquement accorde des autorisations s3:PutObject sur le Hive-compatible préfixe. Incluez au moins une variable prise en charge allowedSuffixPathFields dans le type de journalsuffixPath, ou omettez-la suffixPath pour un type de journal dont le chemin de suffixe par défaut prend en charge Hive-compatible le formatage.

CloudFront la journalisation standard (v2) formate son préfixe par défaut indépendamment des variables danssuffixPath.

Note

CloudFront documente son comportement de chemin de journalisation standard (v2) et fournit des exemples dans Envoyer des journaux à Amazon S3.

Note

La mise à jour du chemin ou du Hive-compatible paramètre du suffixe affecte les livraisons suivantes une fois la configuration propagée. Les objets existants ne sont pas déplacés. Vous ne pouvez pas modifier l'ARN d'une destination, y compris son préfixe, tant que les livraisons actives font référence à cette destination.

La politique du compartiment doit autoriser s3:PutObject le préfixe obtenu. Lorsque vous gérez la politique de compartiment, conservez les aws:SourceArn conditions aws:SourceAccount et indiquées dans la politique de compartiment Amazon S3 et accordez l'accès uniquement au préfixe requis. Politique relative aux ressources du compartiment Amazon S3