Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Configurer les journaux de flux VPC pour les centraliser sur les comptes AWS - Recommandations AWS

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.

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.

Configurer les journaux de flux VPC pour les centraliser sur les comptes AWS

Créée par Benjamin Morris (AWS) et Aman Kaur Gandhi (AWS)

Récapitulatif

Dans un cloud privé virtuel (VPC) Amazon Web Services (AWS), la fonctionnalité VPC Flow Logs peut fournir des données utiles pour le dépannage opérationnel et de sécurité. Cependant, l'utilisation des journaux de flux VPC dans un environnement multi-comptes est limitée. Plus précisément, les journaux de flux entre comptes d'Amazon CloudWatch Logs ne sont pas pris en charge. Vous pouvez plutôt centraliser les journaux en configurant un compartiment Amazon Simple Storage Service (Amazon S3) avec la politique de compartiment appropriée.

Note

Ce modèle décrit les exigences relatives à l'envoi de journaux de flux vers un emplacement centralisé. Toutefois, si vous souhaitez également que les journaux soient disponibles localement dans les comptes membres, vous pouvez créer plusieurs journaux de flux pour chaque VPC. Les utilisateurs n'ayant pas accès au compte Log Archive peuvent consulter les journaux de trafic pour résoudre les problèmes. Vous pouvez également configurer un journal de flux unique pour chaque VPC qui envoie des journaux à CloudWatch Logs. Vous pouvez ensuite utiliser un filtre d'abonnement Amazon Data Firehose pour transférer les journaux vers un compartiment S3. Pour plus d'informations, consultez la section Ressources connexes.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif

  • Une organisation AWS Organizations disposant d'un compte utilisé pour centraliser les journaux (par exemple, Log Archive)

Limites

Si vous utilisez la clé gérée par AWS Key Management Service (AWS KMS) aws/s3 pour chiffrer votre compartiment central, celui-ci ne recevra pas les journaux d'un autre compte. Au lieu de cela, vous verrez un code Unsuccessful d'erreur 400 avec un message tel que "LogDestination: <bucketName> is undeliverable" pour votre compteResourceId.

Cela est dû au fait que les clés gérées par AWS d'un compte ne peuvent pas être partagées entre les comptes.

La solution consiste à utiliser le chiffrement géré par Amazon S3 (SSE-S3) ou une clé gérée par le client AWS KMS que vous pouvez partager avec les comptes des membres.

Architecture

Pile technologique cible

Dans le schéma suivant, deux journaux de flux sont déployés pour chaque VPC. L'un d'eux envoie des journaux à un groupe de CloudWatch journaux local. L'autre envoie les journaux vers un compartiment S3 dans un compte de journalisation centralisé. La politique de compartiment autorise le service de livraison de journaux à écrire des journaux dans le compartiment.

Note

Depuis novembre 2023, prend AWS désormais en charge la clé de condition aws : SourceOrg ID. Cette condition vous permet de refuser d'écrire dans le compartiment centralisé pour les comptes extérieurs à votre AWS Organizations organisation.

Architecture cible

À partir de chaque VPC, un journal de flux envoie des journaux vers le compartiment S3 CloudWatch et un journal de flux indique les journaux vers le compartiment S3.

Automatisation et mise à l'échelle

Chaque VPC est configuré pour envoyer des journaux au compartiment S3 du compte de journalisation central. Utilisez l'une des solutions d'automatisation suivantes pour vous assurer que les journaux de flux sont correctement configurés :

Outils

Outils

  • Amazon CloudWatch Logs vous aide à centraliser les journaux de tous vos systèmes, applications et services AWS afin que vous puissiez les surveiller et les archiver en toute sécurité.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

  • Amazon Virtual Private Cloud (Amazon VPC) vous aide à lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous exploiteriez dans votre propre centre de données, avec les avantages liés à l'utilisation de l'infrastructure évolutive d'AWS. Ce modèle utilise la fonctionnalité VPC Flow Logs pour capturer des informations sur le trafic IP à destination et en provenance des interfaces réseau de votre VPC.

Bonnes pratiques

L'utilisation de l'infrastructure en tant que code (IaC) peut considérablement simplifier le processus de déploiement des journaux de flux VPC. Si vous extrayez les définitions de déploiement de votre VPC pour inclure une structure de ressources de journal de flux, VPCs vous serez automatiquement déployé avec les journaux de flux. Cela est démontré dans la section suivante.

Journaux de flux centralisés

Exemple de syntaxe pour ajouter des journaux de flux centralisés à un module VPC dans Terraform HashiCorp

Ce code crée un journal de flux qui envoie les journaux d'un VPC vers un compartiment S3 centralisé. Notez que ce modèle ne couvre pas la création du compartiment S3.

Pour les déclarations de politique relatives aux compartiments recommandées, consultez la section Informations supplémentaires.

variable "vpc_id" { type = string } locals { custom_log_format_v5 = "$${version} $${account-id} $${interface-id} $${srcaddr} $${dstaddr} $${srcport} $${dstport} $${protocol} $${packets} $${bytes} $${start} $${end} $${action} $${log-status} $${vpc-id} $${subnet-id} $${instance-id} $${tcp-flags} $${type} $${pkt-srcaddr} $${pkt-dstaddr} $${region} $${az-id} $${sublocation-type} $${sublocation-id} $${pkt-src-aws-service} $${pkt-dst-aws-service} $${flow-direction} $${traffic-path}" } resource "aws_flow_log" "centralized_flow_log" { log_destination = "arn:aws:s3:::centralized-vpc-flow-logs-<log_archive_account_id>" # Optionally, a prefix can be added after the ARN. log_destination_type = "s3" traffic_type = "ALL" vpc_id = var.vpc_id log_format = local.custom_log_format_v5 # If you want fields from VPC Flow Logs v3+, you will need to create a custom log format. }

Pour plus d'informations sur le format de journal personnalisé, consultez la documentation AWS.

Journaux de flux locaux

Exemple de syntaxe pour ajouter des journaux de flux locaux à un module VPC dans Terraform avec les autorisations requises

Ce code crée un journal de flux qui envoie des journaux d'un VPC à un groupe de CloudWatch journaux local.

data "aws_region" "current" {} variable "vpc_id" { type = string } resource "aws_iam_role" "local_flow_log_role" { name = "flow-logs-policy-${var.vpc_id}" assume_role_policy = <<EOF { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "vpc-flow-logs.amazonaws.com"}, "Action": "sts:AssumeRole" }] } EOF } resource "aws_iam_role_policy" "logs_permissions" { name = "flow-logs-policy-${var.vpc_id}" role = aws_iam_role.local_flow_log_role.id policy = <<EOF { "Version": "2012-10-17", "Statement": [{ "Action": ["logs:CreateLog*", "logs:PutLogEvents", "logs:DescribeLog*", "logs:DeleteLogDelivery"], "Effect": "Allow", "Resource": "arn:aws:logs:${data.aws_region.current.name}:*:log-group:vpc-flow-logs*" }] } EOF } resource "aws_cloudwatch_log_group" "local_flow_logs" { name = "vpc-flow-logs/${var.vpc_id}" retention_in_days = 30 } resource "aws_flow_log" "local_flow_log" { iam_role_arn = aws_iam_role.local_flow_log_role.arn log_destination = aws_cloudwatch_log_group.local_flow_logs.arn traffic_type = "ALL" vpc_id = var.vpc_id }

Épopées

TâcheDescriptionCompétences requises

Déterminez la stratégie de chiffrement et créez la politique pour le compartiment S3 central.

Le compartiment central ne prend pas en charge la clé aws/s3 AWS KMS. Vous devez donc utiliser SSE-S3 ou une clé gérée par le client AWS KMS. Si vous utilisez une clé AWS KMS, la politique en matière de clés doit autoriser les comptes membres à utiliser la clé.

Conformité d'

Créez le compartiment à journaux de flux central.

Créez le compartiment central vers lequel les journaux de flux seront envoyés et appliquez la stratégie de chiffrement que vous avez choisie à l'étape précédente. Cela doit se trouver dans une archive de journaux ou dans un compte à usage similaire.

Obtenez la politique de compartiment dans la section Informations supplémentaires et appliquez-la à votre compartiment central après avoir mis à jour les espaces réservés avec les valeurs spécifiques à votre environnement.

AWS général

Configurez les journaux de flux VPC pour envoyer les journaux au bucket de journaux de flux central.

Ajoutez des journaux de flux à chaque VPC à partir duquel vous souhaitez collecter des données. La méthode la plus évolutive consiste à utiliser des outils IaC tels que AFT ou AWS Cloud Development Kit (AWS CDK). Par exemple, vous pouvez créer un module Terraform qui déploie un VPC parallèlement à un journal de flux. Si nécessaire, vous ajoutez les journaux de flux manuellement.

Administrateur réseau

Configurez les journaux de flux VPC à envoyer aux journaux locaux CloudWatch .

(Facultatif) Si vous souhaitez que les journaux de flux soient visibles dans les comptes sur lesquels ils sont générés, créez un autre journal de flux pour envoyer des données aux CloudWatch journaux du compte local. Vous pouvez également envoyer les données vers un compartiment S3 spécifique au compte dans le compte local.

AWS général

Déployer une infrastructure de journaux de flux VPC

TâcheDescriptionCompétences requises

Déterminez la stratégie de chiffrement et créez la politique pour le compartiment S3 central.

Le compartiment central ne prend pas en charge la clé aws/s3 AWS KMS. Vous devez donc utiliser SSE-S3 ou une clé gérée par le client AWS KMS. Si vous utilisez une clé AWS KMS, la politique en matière de clés doit autoriser les comptes membres à utiliser la clé.

Conformité d'

Créez le compartiment à journaux de flux central.

Créez le compartiment central vers lequel les journaux de flux seront envoyés et appliquez la stratégie de chiffrement que vous avez choisie à l'étape précédente. Cela doit se trouver dans une archive de journaux ou dans un compte à usage similaire.

Obtenez la politique de compartiment dans la section Informations supplémentaires et appliquez-la à votre compartiment central après avoir mis à jour les espaces réservés avec les valeurs spécifiques à votre environnement.

AWS général

Configurez les journaux de flux VPC pour envoyer les journaux au bucket de journaux de flux central.

Ajoutez des journaux de flux à chaque VPC à partir duquel vous souhaitez collecter des données. La méthode la plus évolutive consiste à utiliser des outils IaC tels que AFT ou AWS Cloud Development Kit (AWS CDK). Par exemple, vous pouvez créer un module Terraform qui déploie un VPC parallèlement à un journal de flux. Si nécessaire, vous ajoutez les journaux de flux manuellement.

Administrateur réseau

Configurez les journaux de flux VPC à envoyer aux journaux locaux CloudWatch .

(Facultatif) Si vous souhaitez que les journaux de flux soient visibles dans les comptes sur lesquels ils sont générés, créez un autre journal de flux pour envoyer des données aux CloudWatch journaux du compte local. Vous pouvez également envoyer les données vers un compartiment S3 spécifique au compte dans le compte local.

AWS général

Ressources connexes

Informations supplémentaires

Politique relative aux compartiments

Cet exemple de politique de compartiment peut être appliqué à votre compartiment S3 central pour les journaux de flux, après avoir ajouté des valeurs pour les noms d'espaces réservés.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::<BUCKET_NAME>/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceOrgID": "<ORG_ID>" } } }, { "Sid": "AWSLogDeliveryCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::<BUCKET_NAME>", "Condition": { "StringEquals": { "aws:SourceOrgID": "<ORG_ID>" } } }, { "Sid": "DenyUnencryptedTraffic", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>/*", "arn:aws:s3:::<BUCKET_NAME>" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.