Publier des journaux vers flux sur Amazon S3 - Amazon Virtual Private Cloud

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.

Publier des journaux vers flux sur Amazon S3

Les journaux de flux peuvent publier des données de journal de flux vers Amazon S3.

Lors de la publication vers Amazon S3, les données de journal de flux sont publiées dans un compartiment Amazon S3 existant que vous indiquez. Les enregistrements de journaux de flux pour toutes les interfaces réseau surveillées sont publiés dans une série d'objets de fichier journal qui sont stockés dans le compartiment. Si le journal de flux capture des données pour un VPC, il publie les enregistrements de journaux de flux pour toutes les interfaces réseau dans le VPC sélectionné.

Pour créer un compartiment Amazon S3 à utiliser avec les journaux de flux, reportez-vous à Créer un compartiment dans le Guide de l'utilisateur Amazon Simple Storage Service.

Pour plus d'informations sur la journalisation de plusieurs comptes, veuillez consulter Journalisation centrale dans la bibliothèque de solutions AWS .

Pour plus d'informations sur CloudWatch les journaux, consultez la section Journaux envoyés à Amazon S3 dans le guide de l'utilisateur Amazon CloudWatch Logs.

Tarification

Les frais d'ingestion et d'archivage de données pour les journaux mis à payants s'appliquent lorsque vous publiez des journaux de flux vers Amazon S3. Pour plus d'informations, ouvrez Amazon CloudWatch Pricing, sélectionnez Logs et recherchez Vended Logs.

Fichiers journaux de flux

VPC Flow Logs collecte les enregistrements des journaux de flux, les consolide dans des fichiers journaux, puis publie les fichiers journaux dans le compartiment Amazon S3 à intervalles de 5 minutes. Chaque fichier journal contient des enregistrements de journaux de flux pour le trafic IP enregistré au cours des cinq dernières minutes.

La taille maximale d'un fichier journal est de 75 Mo. Si le fichier journal atteint la limite maximale de taille au cours de la période de 5 minutes, le journal de flux cesse de lui ajouter des enregistrements de journal de flux. Ensuite, il publie le journal de flux dans le compartiment Amazon S3, puis crée un fichier journal.

Dans Amazon S3, le champ Last modified (Dernière modification) du fichier de journal de flux indique la date et l'heure du téléchargement du fichier dans le compartiment Amazon S3. Cette date est postérieure à l'horodatage du nom du fichier et diffère par le temps nécessaire pour charger le fichier vers le compartiment Amazon S3.

Format de fichier journal

Vous pouvez spécifier l'un des formats suivants pour les fichiers journaux. Chaque fichier est compressé dans un seul fichier Gzip.

  • Text : texte brut. Il s'agit du format par défaut.

  • Parquet : Apache Parquet est un format de données en colonnes. Les requêtes sur les données au format Parquet sont 10 à 100 fois plus rapides que les requêtes sur des données en texte brut. Les données au format Parquet avec compression Gzip occupent 20 % moins d'espace de stockage que le texte brut avec compression Gzip.

Note

Si les données en format Parquet avec compression Gzip sont inférieures à 100 Ko par période d'agrégation, le stockage des données en format Parquet peut prendre plus de place que le texte brut avec compression Gzip en raison des exigences de mémoire de fichiers Parquet.

Options de fichier journal

Le cas échéant, vous pouvez spécifier les options suivantes :

  • Hive-compatible S3 prefixes (Préfixes S3 compatibles Hive) : activez les préfixes compatibles Hive au lieu d'importer des partitions dans vos outils compatibles Hive. Avant d'exécuter des requêtes, utilisez la commande MSCK REPAIR TABLE.

  • Hourly partitions (Partitions horaires) : si vous disposez d'un grand volume de journaux et que vous ciblez généralement les requêtes à une heure spécifique, vous pouvez obtenir des résultats plus rapidement et économiser sur les coûts des requêtes en partitionnant les journaux toutes les heures.

Structure du compartiment S3 du fichier journal

Les fichiers journaux sont enregistrés dans le compartiment Amazon S3 indiqué à l'aide d'une structure de dossiers qui est déterminée par l'ID du journal de flux, sa région, sa date de création et ses options de destination.

Par défaut, les fichiers sont distribués vers l'emplacement suivant.

bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/

Si vous activez les préfixes S3 compatibles Hive, les fichiers sont envoyés à l'emplacement suivant.

bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/aws-service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/

Si vous activez les partitions horaires, les fichiers sont envoyés à l'emplacement suivant.

bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/hour/

Si vous activez les partitions compatibles Hive et que vous partitionnez le journal de flux par heure, les fichiers sont envoyés à l'emplacement suivant.

bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/aws-service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/hour=hour/
Noms des fichiers journaux

Le nom de fichier d'un fichier journal est basé sur l'ID du journal de flux, la région et la date et l'heure de création. Les noms de fichier utilisent le format suivant.

aws_account_id_vpcflowlogs_region_flow_log_id_YYYYMMDDTHHmmZ_hash.log.gz

Voici un exemple de fichier journal pour un flux de journal créé par le compte AWS 123456789012, pour une ressource dans la région us-east-1, le June 20, 2018 à 16:20 UTC. Le fichier contient les enregistrements de journaux de flux avec une heure de fin comprise entre 16:20:00 et 16:24:59.

123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz

Autorisations pour les principaux IAM qui publient des journaux de flux vers Amazon S3

Le principal IAM qui crée le journal de flux doit utiliser un rôle IAM qui dispose des autorisations suivantes, nécessaires pour publier les journaux de flux dans le compartiment Amazon S3 de destination.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*" } ] }

Autorisations du compartiment Amazon S3 pour les journaux de flux

Par défaut, les compartiments Amazon S3 et les objets qu'ils contiennent sont privés. Seul le propriétaire du compartiment peut accéder au compartiment et aux objets qui y sont stockés. Cependant, le propriétaire du compartiment peut accorder l'accès à d'autres ressources et à d'autres utilisateurs en créant une politique d'accès.

Si l'utilisateur qui crée le journal de flux est le propriétaire du compartiment et dispose des autorisations PutBucketPolicy et GetBucketPolicy pour le compartiment, nous attachons automatiquement la stratégie suivante au compartiment. Cette politique remplace toute politique existante attachée au compartiment.

Sinon, le propriétaire du compartiment doit ajouter cette stratégie au compartiment en spécifiant l'ID du compte  AWS du créateur du journal de flux. Sinon, la création du journal de flux échoue. Pour plus d'informations, consultez Utilisation de stratégies de compartiment dans le Guide de l'utilisateur Amazon Simple Storage Service.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "my-s3-arn/*", "Condition": { "StringEquals": { "aws:SourceAccount": account_id, "s3:x-amz-acl": "bucket-owner-full-control" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region:account_id:*" } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "s3:GetBucketAcl", "s3:ListBucket" ], "Resource": "arn:aws:s3:::bucket_name", "Condition": { "StringEquals": { "aws:SourceAccount": account_id }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region:account_id:*" } } } ] }

L'ARN que vous spécifiez pour my-s3-arn varie selon que vous utilisez des préfixes S3 compatibles avec Hive.

  • Préfixes par défaut

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  • Préfixes S3 compatibles avec Hive

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*

Il est recommandé d'accorder ces autorisations au principal du service de livraison des journaux plutôt qu'à des Compte AWS ARN individuels. Une autre bonne pratique consiste également à utiliser les clés de condition aws:SourceAccount et aws:SourceArn afin de vous protéger contre le problème du député confus. Le compte source est le propriétaire du journal de flux et l'ARN source est l'ARN à caractère générique (*) du service de journaux.

Politique de clé obligatoire à utiliser avec SSE-KMS

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 des clés KMS (SSE-KMS) sur votre compartiment S3. Pour plus d'informations, consultez la section Protection des données à l'aide d'un chiffrement côté serveur dans le Guide de l'utilisateur d'Amazon S3.

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

Si vous choisissez l'option SSE-KMS, vous devez utiliser un ARN de clé gérée par le client. Si vous utilisez un identifiant de clé, vous pouvez rencontrer une erreur LogDestination non livrable lors de la création d'un journal de flux. De même, vous devez mettre à jour la stratégie de clé gérée par le client afin que le compte de diffusion des journaux puisse écrire des données dans votre compartiment S3. Pour plus d'informations sur la politique de clé requise pour une utilisation avec SSE-KMS, consultez la section Chiffrement côté serveur du compartiment Amazon S3 dans le guide de l'utilisateur Amazon CloudWatch Logs.

Autorisations pour les fichiers journaux Amazon S3

Outre les stratégies de compartiment obligatoires, Amazon S3 utilise des listes de contrôle d'accès (ACL) afin de gérer l'accès aux fichiers journaux créés par un journal de flux. Par défaut, le propriétaire du compartiment dispose d'autorisations FULL_CONTROL sur chaque fichier journal. Si le propriétaire de la diffusion des journaux n'est pas le propriétaire du compartiment, il ne dispose d'aucune autorisation. Le compte de diffusion des journaux possède les autorisations READ et WRITE. Pour de plus amples informations, veuillez consulter Présentation des listes de contrôle d'accès (ACL) dans le Guide du développeur Amazon Simple Storage Service.

Créer un journal de flux qui publie vers Amazon S3

Après avoir créé et configuré votre compartiment Amazon S3, vous pouvez créer des journaux de flux pour vos interfaces réseaux, sous-réseaux ou et VPC.

Pour créer un journal de flux à l'aide de la console
  1. Effectuez l’une des actions suivantes :

    • Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. Dans le volet de navigation, choisissez Network Interfaces. Cochez la case correspondant à l’interface réseau.

    • Ouvrez la console VPC d’Amazon sur https://console.aws.amazon.com/vpc/. Dans le panneau de navigation, sélectionnez Vos VPC. Cochez la case correspondant au VPC.

    • Ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/. Dans le panneau de navigation, choisissez Subnets (Sous-réseaux). Cochez la case correspondant au sous-réseau.

  2. Choisissez Actions, Create flow log (Créer le journal de flux).

  3. Pour Filter (Filtrer), spécifiez le type de données de trafic IP à journaliser.

    • Accepter — Consigne uniquement le trafic accepté.

    • Rejeter — Consigne uniquement le trafic rejeté.

    • All (Tout) : journalise le trafic accepté et rejeté.

  4. Pour Maximum aggregation interval ((Intervalle d'agrégation maximal), choisissez la période maximale pendant laquelle un flux est capturé et agrégé dans un enregistrement de journal de flux.

  5. Pour Destination, choisissez (Send to an Amazon S3 bucket)Envoyer vers un compartiment Amazon S3.

  6. Pour S3 bucket ARN (ARN de compartiment S3)), indiquez l'Amazon Resource Name (ARN) d'un compartiment Amazon S3 existant. Vous pouvez éventuellement inclure un sous-dossier. Par exemple, pour spécifier le sous-dossier my-logs dans me compartiment my-bucket, utilisez l'ARN suivant :

    arn:aws:s3:::my-bucket/my-logs/

    Le compartiment ne peut pas utiliser AWSLogs comme nom de sous-dossier, car il s'agit d'un terme réservé.

    Si vous êtes le propriétaire du compartiment, nous créons automatiquement une politique de ressource et l'attachons au compartiment. Pour de plus amples informations, veuillez consulter Autorisations du compartiment Amazon S3 pour les journaux de flux.

  7. Pour Log record format (Format d'enregistrement du journal), sélectionnez le format de l'enregistrement du journal de flux.

    • Pour utiliser le format de registre de journal de flux par défaut, sélectionnez AWS default format (Format par défaut).

    • Pour créer un format personnalisé, choisissez Custom format (Format personnalisé). Pour Log format (Format de journal), choisissez les champs à inclure dans l'enregistrement de journal de flux.

  8. Pour Format du fichier journal, spécifiez le format du fichier journal.

    • Text : texte brut. Il s'agit du format par défaut.

    • Parquet : Apache Parquet est un format de données en colonnes. Les requêtes sur les données au format Parquet sont 10 à 100 fois plus rapides que les requêtes sur des données en texte brut. Les données au format Parquet avec compression Gzip occupent 20 % moins d'espace de stockage que le texte brut avec compression Gzip.

  9. (Facultatif) Pour utiliser des préfixes S3 compatibles avec Hive, choisissez Hive-compatible S3 prefix (Préfixe S3 compatible HIVE), Enable. (Activer).

  10. (Facultatif) Pour partitionner vos journaux de flux par heure, choisissez Every 1 hour (60 mins) (Toutes les 1 heure (60 minutes)).

  11. (Facultatif) Pour ajouter une identification au journal de flux, choisissez Add new tag (Ajouter une nouvelle identification) et spécifiez la clé et la valeur de l'identification.

  12. Choisissez Create flow log. (Créer le journal de flux).

Pour créer un journal de flux qui publie vers Amazon S3 à l'aide de l'outil de ligne de commande

Utilisez l’une des commandes suivantes :

L' AWS CLI exemple suivant crée un journal de flux qui capture tout le trafic pour le VPC spécifié et fournit les journaux de flux au compartiment Amazon S3 spécifié. Le paramètre --log-format spécifie un format personnalisé pour les enregistrements de journal de flux.

aws ec2 create-flow-logs --resource-type VPC --resource-ids vpc-00112233344556677 --traffic-type ALL --log-destination-type s3 --log-destination arn:aws:s3:::flow-log-bucket/custom-flow-logs/ --log-format '${version} ${vpc-id} ${subnet-id} ${instance-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${tcp-flags} ${type} ${pkt-srcaddr} ${pkt-dstaddr}'

Afficher les enregistrements de journaux de flux

Vous pouvez consulter vos enregistrements de journal de flux à l'aide de la console Amazon S3. Après la création de votre journal de flux, quelques minutes peuvent s'écouler avant qu'il ne soit visible dans la console.

Pour afficher des enregistrements de journal de flux publiés dans Amazon S3
  1. Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/.

  2. Sélectionnez le nom du compartiment pour ouvrir sa page de détails.

  3. Accédez au dossier contenant les fichiers journaux. Par exemple, préfixe/AWSLogs/account_id /vpcflowlogs/ region/year/month/day /.

  4. Cochez la case à côté du nom de fichier, puis choisissez Download (Télécharger).

Traiter des enregistrements de journal de flux dans Amazon S3

Les fichiers journaux sont compressés. Si vous ouvrez les fichiers journaux à l'aide de la console Amazon S3, ils sont décompressés et les enregistrements de journal de flux s'affichent. Si vous téléchargez les fichiers, vous devez les décompresser pour afficher les enregistrements de journaux de flux.

Vous pouvez également interroger les enregistrements de journal de flux dans les fichiers journaux à l'aide d'Amazon Athena. Amazon Athena est un service de requête interactif qui facilite l'analyse des données dans Amazon S3 à l'aide du langage SQL standard. Pour de plus amples d'informations, veuillez consulter Interrogation des journaux de flux Amazon VPC dans le Guide de l'utilisateur Amazon Athena.