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

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.

Créer un journal de flux qui publie vers 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 passerelles de transit surveillées sont publiés dans une série d'objets de fichier journal qui sont stockés dans le compartiment.

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, consultez Amazon CloudWatch Pricing.

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.

Fichiers journaux de flux

VPC Flow Logs est une fonction qui 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.

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/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/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 journal de flux 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

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

Le principal IAM qui crée le journal de flux doit avoir les autorisations suivantes, qui sont 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 politique 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": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": account_id }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region:account_id:*" } } }, { "Sid": "AWSLogDeliveryCheck", "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/*

En tant que bonne pratique, nous vous recommandons 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 soit le chiffrement côté serveur avec des clés gérées Amazon S3 (SSE-S3), soit le chiffrement côté serveur avec des clés KMS stockées (SSE-KMS). 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.

Avec SSE-KMS, vous pouvez utiliser une clé AWS gérée ou une clé gérée par le client. Avec une clé AWS gérée, vous ne pouvez pas utiliser la livraison entre comptes. Les journaux de flux sont diffusés à partir du compte de diffusion des journaux. Vous devez donc accorder l'accès pour la diffusion entre comptes. Pour accorder l'accès entre comptes à votre compartiment S3, utilisez une clé gérée par le client et spécifiez l'Amazon Resource Name (ARN) de la clé gérée par le client lorsque vous activez le chiffrement de compartiment. Pour plus d'informations, veuillez consulter la section Spécification du chiffrement côté serveur avec AWS KMS du Guide de l'utilisateur d'Amazon S3.

Lorsque vous utilisez SSE-KMS avec une clé gérée par le client, vous devez ajouter ce qui suit à la politique clé de votre clé (et non pas la politique de compartiment de votre compartiment S3), afin que les journaux de flux de VPC puissent écrire dans votre compartiment S3.

{ "Sid": "Allow Transit Gateway Flow Logs to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

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

Une fois votre compartiment Amazon S3 créé et configuré, vous pouvez créer des journaux de flux pour les passerelles de transit.

Pour créer un journal de flux de passerelle de transit publié dans Amazon S3 à l'aide de la console
  1. Ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/.

  2. Dans le panneau de navigation, choisissez Transit gateways (Passerelles de transit), Transit gateway attachment (Attachements de passerelle de transit).

  3. Cochez les cases correspondant à une ou plusieurs passerelles de transit ou à un ou plusieurs attachements de passerelle de transit.

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

  5. Configurez les paramètres du journal de flux. Pour de plus amples informations, veuillez consulter Pour configurer les paramètres du journal de flux.

Pour configurer des paramètres de journaux de flux à l'aide de la console
  1. Pour Destination, choisissez Send to an S3 bucket (Envoyer vers un compartiment S3).

  2. 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.

  3. 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.

  4. 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.

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

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

  7. (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.

  8. 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 de passerelle de transit pour VPC tgw-00112233344556677 et transmet les journaux de flux à un compartiment Amazon S3 appelé. flow-log-bucket Le paramètre --log-format spécifie un format personnalisé pour les enregistrements de journal de flux.

aws ec2 create-flow-logs --resource-type TransitGateway --resource-ids tgw-00112233344556677 --log-destination-type s3 --log-destination arn:aws:s3:::flow-log-bucket/my-custom-flow-logs/'

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.