Exporter les données du journal vers Amazon S3 à l'aide de la console - Amazon CloudWatch Logs

Exporter les données du journal vers Amazon S3 à l'aide de la console

Dans l'exemple suivant, vous utilisez la console Amazon CloudWatch pour exporter toutes les données d'un groupe de journaux Amazon CloudWatch Logs nommé my-log-group vers un compartiment Amazon S3 nommé my-exported-logs.

L'exportation de données de journal vers des compartiments Amazon S3 qui sont chiffrés par AWS KMS n'est pas prise en charge.

Étape 1 : Créer un compartiment Amazon S3

Nous vous recommandons d'utiliser un compartiment qui a été créé spécifiquement pour CloudWatch Logs. Cependant, si vous souhaitez utiliser un compartiment existant, vous pouvez passer à l'étape 2.

Note

Le compartiment Amazon S3 doit résider dans la même région que les données de journal à exporter. CloudWatch Logs ne prend pas en charge l'exportation de données vers des compartiments Amazon S3 situés dans une autre région.

Pour créer un compartiment Amazon S3

  1. Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/.

  2. Si nécessaire, changez la région . Dans la barre de navigation, choisissez la région où résident vos données CloudWatch Logs.

  3. Choisissez Créer un compartiment.

  4. Dans Bucket Name (Nom de compartiment), attribuez un nom au compartiment.

  5. Pour Region (Région), sélectionnez la région où résident vos données CloudWatch Logs.

  6. Sélectionnez Créer un .

Étape 2 : créer un utilisateur IAM avec un accès complet à Amazon S3 et à CloudWatch Logs

Dans la procédure suivante, vous créez l'utilisateur IAM avec les autorisations nécessaires.

Pour créer l'utilisateur IAM nécessaire

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Choisissez Utilisateurs, Ajouter des utilisateurs.

  3. Saisissez un nom d'utilisateur, par exemple CWLExportUser.

  4. Sélectionner à la fois Programmatic access (Accès programmatique) et access AWS Management Console (Accès à la console).

  5. Choisissez Autogenerated password (Mot de passe généré automatiquement) ou Custom password (Mot de passe personnalisé).

  6. Sélectionnez Next: Permissions (Étape suivante : autorisations).

  7. Choisissez Attach existing policies directly (Attacher directement les stratégies existantes) et attachez les stratégies CloudWatchLogsFullAccess et AmazonS3FullAccess à l'utilisateur. Vous pouvez utiliser le champ de recherche pour trouver les stratégies.

  8. Choisissez Suivant : Balises, Suivant : Vérification, puis Créer un utilisateur.

Étape 3 : définir des autorisations sur un compartiment Amazon S3

Par défaut, tous les objets et les compartiments Amazon S3 sont privés. Seul le propriétaire de la ressource, le compte AWS ayant créé le compartiment, peut accéder au compartiment et aux objets qu'il contient. Le propriétaire de la ressource peut toutefois accorder des autorisations d'accès à d'autres ressources et à d'autres utilisateurs en créant une stratégie d'accès.

Lorsque vous définissez la stratégie, nous vous recommandons d'inclure une chaîne générée de façon aléatoire comme préfixe pour le compartiment, afin que seuls les flux de journaux prévus soient exportés vers le compartiment.

Pour définir des autorisations sur un compartiment Amazon S3

  1. Dans la console Amazon S3, choisissez le compartiment que vous avez créé à l'étape 1.

  2. Choisissez Permissions, Bucket policy.

  3. Ajoutez une des politiques suivantes dans Bucket Policy Editor (Éditeur de stratégie de compartiment) : Modifiez my-exported-logs au nom de votre compartiment S3 et random-string à une chaîne de caractères générée aléatoirement. Assurez-vous de spécifier le point de terminaison de région correct pour Principal.

    • Si le compartiment est dans votre compte, ajoutez la stratégie suivante.

      { "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } } ] }
    • Si le compartiment est dans un compte différent, utilisez plutôt la stratégie suivante. Il inclut une déclaration supplémentaire qui emploie l'utilisateur IAM que vous avez créé à l'étape précédente.

      { "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "AWS": "arn:aws:iam::SendingAccountID:user/CWLExportUser" } } ] }
  4. Choisissez Save pour définir la stratégie que vous venez d'ajouter en tant que stratégie d'accès à votre compartiment. Cette politique permet à CloudWatch Logs d'exporter les données des journaux vers votre compartiment Amazon S3. Le propriétaire du compartiment dispose des autorisations d'accès complet à tous les objets exportés.

    Avertissement

    Si le compartiment existant dispose déjà d'une ou plusieurs politiques qui lui sont attachées, ajoutez les instructions pour que CloudWatch Logs y accède. Nous vous recommandons d'évaluer le jeu d'autorisations obtenu pour vérifier son adéquation pour les utilisateurs appelés à accéder au compartiment.

Étape 4 : créer une tâche d'exportation

Dans cette étape, vous créez la tâche d'exportation pour exporter des journaux d'un groupe de journaux.

Pour exporter des données vers Amazon S3 à l'aide de la console CloudWatch

  1. Connectez-vous en tant qu'utilisateur IAM que vous avez créé à l'étape 2 : créer un utilisateur IAM avec un accès complet à Amazon S3 et à CloudWatch Logs.

  2. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.

  3. Dans le panneau de navigation, choisissez Groupes de journaux.

  4. Dans l'écran Groupes de journaux choisissez le nom du groupe de journaux.

  5. Choisissez Actions, Export data to Amazon S3 (Exporter les données vers Amazon S3).

  6. Dans l'écran Export data to Amazon S3 (Exporter les données vers Amazon S3), sous Define data export (Définir les données à exporter), définissez la plage de temps pour les données à exporter grâce aux champs From (De) et To (À).

  7. Si votre groupe de journaux a plusieurs flux de journal, vous pouvez indiquer un préfixe de flux de journal pour limiter les données du groupe de journaux à un flux spécifique. Choisissez Advanced (Avancé), puis indiquez le préfixe de flux de journal dans Stream prefix (Préfixe de flux).

  8. Sous Choose S3 bucket (Choisir un compartiment S3), choisissez le compte associé au compartiment Amazon S3.

  9. Pour S3 bucket name (Nom du compartiment S3), choisissez un compartiment Amazon S3.

  10. Pour Préfixe du compartiment S3, indiquez la chaîne générée de façon aléatoire que vous avez spécifiée dans la stratégie de compartiment.

  11. Choisissez Export (Exporter) pour exporter les données de journal vers Amazon S3.

  12. Pour afficher l'état des données de journal que vous avez exportées vers Amazon S3, choisissez Actions, puis View all exports to Amazon S3 (Afficher tous les exports vers Amazon S3).