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

Lorsque vous configurez les journaux à envoyer à Amazon S3, vous AWS créez ou modifiez les politiques de ressources associées au compartiment S3 qui reçoit les journaux, si nécessaire.

Les journaux publiés directement sur Amazon S3 le sont dans un compartiment existant que vous spécifiez. Un ou plusieurs fichiers journaux sont créés toutes les cinq minutes dans le compartiment spécifié.

Lorsque vous livrez des journaux pour la première fois à un compartiment Amazon S3, le service qui livre les journaux enregistre le propriétaire du compartiment pour s'assurer que les journaux sont livrés uniquement à un compartiment appartenant à ce compte. Par conséquent, pour changer le propriétaire du compartiment Amazon S3, vous devez recréer ou mettre à jour l'abonnement au journal dans le service d'origine.

Note

CloudFront utilise un modèle d'autorisation différent de celui des autres services qui envoient des journaux vendus à S3. Pour plus d'informations, consultez Autorisations requises pour configurer la journalisation standard et pour accéder à vos fichiers journaux.

En outre, si vous utilisez le même compartiment S3 pour les journaux CloudFront d'accès et une autre source de journaux, l'activation de l'ACL sur le compartiment permet CloudFront également d'autoriser toutes les autres sources de journaux qui utilisent ce compartiment.

Important

Si vous envoyez des journaux vers un compartiment Amazon S3 et que la politique du compartiment contient un NotPrincipal élément NotAction ou, l'ajout automatique des autorisations de livraison des journaux au compartiment et la création d'un abonnement aux journaux échoueront. Pour créer un abonnement aux journaux avec succès, vous devez ajouter manuellement les autorisations de livraison des journaux à la politique de compartiment, puis créer l'abonnement aux journaux. Pour plus d'informations, consultez les instructions de cette section.

Si le compartiment est chiffré côté serveur à l'aide d'une AWS KMS clé gérée par le client, vous devez également ajouter la politique de clé pour votre clé gérée par le client. Pour de plus amples informations, veuillez consulter Amazon S3.

Si le SSE-KMS et une clé de compartiment sont activés dans le compartiment de destination, la politique de clé KMS gérée par le client associée ne fonctionne plus comme prévu pour toutes les demandes. Pour plus d'informations, consultez Réduire le coût du SSE-KMS avec les clés de compartiment Amazon S3.

Si vous utilisez des journaux vendus et un chiffrement S3 avec une AWS KMS clé gérée par le client, vous devez utiliser un ARN de AWS KMS clé entièrement qualifié au lieu d'un identifiant de clé lorsque vous configurez le compartiment. Pour plus d'informations, consultez put-bucket-encryption.

Autorisations des utilisateurs

Pour pouvoir configurer l'envoi de l'un de ces types de journaux à Amazon S3 pour la première fois, vous devez être connecté à un compte disposant des autorisations suivantes.

  • logs:CreateLogDelivery

  • S3:GetBucketPolicy

  • S3:PutBucketPolicy

Si l'un de ces types de journaux est déjà envoyé vers un compartiment Amazon S3, il vous suffit de disposer de l'autorisation logs:CreateLogDelivery pour configurer l'envoi d'un autre de ces types de journaux vers le même compartiment.

Politique de ressources du compartiment 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": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": [ "0123456789" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:111122223333:*" ] } } }, { "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:*" ] } } } ] }

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. Pouraws:SourceArn, spécifiez la liste ARNs des ressources qui génèrent les journaux, dans le formulairearn: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 avec des clés gérées par Amazon S3 (SSE-S3) ou le chiffrement côté serveur avec une clé stockée dans (SSE-KMS). AWS KMS AWS Key Management Service Pour plus d'informations, consultez Protection des données à l'aide du chiffrement côté serveur.

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

Avertissement

Si vous choisissez SSE-KMS, vous devez utiliser une clé gérée par le client, car l'utilisation d'une clé AWS gérée n'est pas prise en charge dans ce scénario. Si vous configurez le chiffrement à l'aide d'une clé AWS gérée, les journaux seront fournis dans un format illisible.

Lorsque vous utilisez une AWS KMS clé gérée par le client, vous pouvez spécifier le nom de ressource Amazon (ARN) de la clé gérée par le client lorsque vous activez le chiffrement des compartiments. Vous devez ajouter les informations suivantes à la politique de votre clé gérée par le client (pas à la politique du compartiment S3), afin que le compte de livraison des journaux puisse écrire des données dans votre compartiment S3.

Si vous choisissez l'option SSE-KMS, vous devez utiliser une clé gérée par le client, car les clés gérées AWS ne sont pas prises en charge pour ce scénario. Lorsque vous utilisez une AWS KMS clé gérée par le client, vous pouvez spécifier le nom de ressource Amazon (ARN) de la clé gérée par le client lorsque vous activez le chiffrement des compartiments. Vous devez ajouter les informations suivantes à la politique de votre clé gérée par le client (pas à la politique du compartiment S3), afin que le compte de livraison des journaux puisse écrire des données 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": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }

Pour aws:SourceAccount, spécifiez la liste des ID de comptes pour lesquels les journaux sont transmis à ce compartiment. Pouraws:SourceArn, spécifiez la liste ARNs des ressources qui génèrent les journaux, dans le formulairearn:aws:logs:source-region:source-account-id:*.