Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Configura i log di flusso VPC per la centralizzazione tra gli account AWS - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura i log di flusso VPC per la centralizzazione tra gli account AWS

Creato da Benjamin Morris (AWS) e Aman Kaur Gandhi (AWS)

Riepilogo

In un cloud privato virtuale (VPC) di Amazon Web Services (AWS), la funzionalità VPC Flow Logs può fornire dati utili per la risoluzione dei problemi operativi e di sicurezza. Tuttavia, esistono limitazioni all'utilizzo dei log di flusso VPC in un ambiente con più account. In particolare, i log di flusso tra account di Amazon CloudWatch Logs non sono supportati. Puoi invece centralizzare i log configurando un bucket Amazon Simple Storage Service (Amazon S3) con la policy dei bucket appropriata.

Nota

Questo modello illustra i requisiti per l'invio dei log di flusso a una posizione centralizzata. Tuttavia, se desideri che i log siano disponibili anche localmente negli account dei membri, puoi creare più log di flusso per ogni VPC. Gli utenti che non hanno accesso all'account Log Archive possono visualizzare i registri del traffico per la risoluzione dei problemi. In alternativa, puoi configurare un singolo log di flusso per ogni VPC che invia i log a Logs. CloudWatch Puoi quindi utilizzare un filtro di abbonamento Amazon Data Firehose per inoltrare i log a un bucket S3. Per ulteriori informazioni, consulta la sezione Risorse correlate.

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo

  • Un'organizzazione AWS Organizations con un account utilizzato per centralizzare i log (ad esempio, Log Archive)

Limitazioni

Se utilizzi la chiave gestita di AWS Key Management Service (AWS KMS) aws/s3 per crittografare il tuo bucket centrale, questo non riceverà i log da un altro account. Vedrai invece un codice di Unsuccessful errore 400 con un messaggio come quello "LogDestination: <bucketName> is undeliverable" che hai fornito. ResourceId

Questo perché le chiavi gestite da AWS di un account non possono essere condivise tra account.

La soluzione consiste nell'utilizzare la crittografia gestita di Amazon S3 (SSE-S3) o una chiave gestita dai clienti AWS KMS che puoi condividere con gli account dei membri.

Architettura

Stack tecnologico Target

Nel diagramma seguente, vengono distribuiti due log di flusso per ogni VPC. Uno invia i log a un gruppo di Logs locale. CloudWatch L'altro invia i log a un bucket S3 in un account di registrazione centralizzato. La policy del bucket consente al servizio di consegna dei log di scrivere i log nel bucket.

Nota

A partire da novembre 2023, AWS ora supporta la chiave di condizione aws: SourceOrg ID. Questa condizione ti consente di negare la scrittura nel bucket centralizzato per gli account esterni alla tua organizzazione. AWS Organizations

Architettura Target

Da ogni VPC un log di flusso invia i log CloudWatch e un log di flusso invia i log al buckt S3.

Automazione e scalabilità

Ogni VPC è configurato per inviare i log al bucket S3 nell'account di registrazione centrale. Utilizza una delle seguenti soluzioni di automazione per garantire che i log di flusso siano configurati in modo appropriato:

Strumenti

Strumenti

  • Amazon CloudWatch Logs ti aiuta a centralizzare i log di tutti i tuoi sistemi, applicazioni e servizi AWS in modo da poterli monitorare e archiviare in modo sicuro.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

  • Amazon Virtual Private Cloud (Amazon VPC) ti aiuta a lanciare le risorse AWS in una rete virtuale che hai definito. Questa rete virtuale è simile a una rete tradizionale che gestiresti nel tuo data center, con i vantaggi dell'utilizzo dell'infrastruttura scalabile di AWS. Questo modello utilizza la funzionalità VPC Flow Logs per acquisire informazioni sul traffico IP in entrata e in uscita dalle interfacce di rete del tuo VPC.

Best practice

L'utilizzo dell'infrastruttura come codice (IaC) può semplificare notevolmente il processo di implementazione dei VPC Flow Logs. L'astrazione delle definizioni di distribuzione VPC per includere un costrutto di risorse per i log di flusso consentirà di implementare automaticamente VPCs i log di flusso. Questo è dimostrato nella prossima sezione.

Registri di flusso centralizzati

Sintassi di esempio per aggiungere registri di flusso centralizzati a un modulo VPC in Terraform HashiCorp

Questo codice crea un log di flusso che invia i log da un VPC a un bucket S3 centralizzato. Nota che questo schema non copre la creazione del bucket S3.

Per le istruzioni sulla policy consigliata per i bucket, consulta la sezione Informazioni aggiuntive.

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

Per ulteriori informazioni sul formato di log personalizzato, consulta la documentazione AWS.

Registri di flusso locali

Sintassi di esempio per aggiungere registri di flusso locali a un modulo VPC in Terraform con le autorizzazioni richieste

Questo codice crea un log di flusso che invia i log da un VPC a un gruppo Logs CloudWatch locale.

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 }

Epiche

AttivitàDescrizioneCompetenze richieste

Determina la strategia di crittografia e crea la policy per il bucket S3 centrale.

Il bucket centrale non supporta la chiave aws/s3 AWS KMS, quindi è necessario utilizzare SSE-S3 o una chiave gestita dal cliente AWS KMS. Se utilizzi una chiave AWS KMS, la policy chiave deve consentire agli account dei membri di utilizzare la chiave.

Conformità

Crea il bucket centrale per i log di flusso.

Crea il bucket centrale a cui verranno inviati i log di flusso e applica la strategia di crittografia scelta nel passaggio precedente. Dovrebbe trovarsi in un Log Archive o in un account con scopi simili.

Ottieni la policy sui bucket dalla sezione Informazioni aggiuntive e applicala al tuo bucket centrale dopo aver aggiornato i segnaposto con i valori specifici dell'ambiente.

Informazioni generali su AWS

Configura VPC Flow Logs per inviare i log al bucket di log di flusso centrale.

Aggiungi i log di flusso a ogni VPC da cui desideri raccogliere dati. Il modo più scalabile per farlo è utilizzare strumenti IaC come AFT o AWS Cloud Development Kit (AWS CDK). Ad esempio, puoi creare un modulo Terraform che distribuisce un VPC insieme a un log di flusso. Se necessario, aggiungi i log di flusso manualmente.

Amministratore di rete

Configura i log di flusso VPC per l'invio ai log locali. CloudWatch

(Facoltativo) Se desideri che i log di flusso siano visibili negli account in cui vengono generati, crea un altro log di flusso per inviare i dati ai CloudWatch log nell'account locale. In alternativa, puoi inviare i dati a un bucket S3 specifico dell'account nell'account locale.

Informazioni generali su AWS

Implementa l'infrastruttura VPC Flow Logs

AttivitàDescrizioneCompetenze richieste

Determina la strategia di crittografia e crea la policy per il bucket S3 centrale.

Il bucket centrale non supporta la chiave aws/s3 AWS KMS, quindi è necessario utilizzare SSE-S3 o una chiave gestita dal cliente AWS KMS. Se utilizzi una chiave AWS KMS, la policy chiave deve consentire agli account dei membri di utilizzare la chiave.

Conformità

Crea il bucket centrale per i log di flusso.

Crea il bucket centrale a cui verranno inviati i log di flusso e applica la strategia di crittografia scelta nel passaggio precedente. Dovrebbe trovarsi in un Log Archive o in un account con scopi simili.

Ottieni la policy sui bucket dalla sezione Informazioni aggiuntive e applicala al tuo bucket centrale dopo aver aggiornato i segnaposto con i valori specifici dell'ambiente.

Informazioni generali su AWS

Configura VPC Flow Logs per inviare i log al bucket di log di flusso centrale.

Aggiungi i log di flusso a ogni VPC da cui desideri raccogliere dati. Il modo più scalabile per farlo è utilizzare strumenti IaC come AFT o AWS Cloud Development Kit (AWS CDK). Ad esempio, puoi creare un modulo Terraform che distribuisce un VPC insieme a un log di flusso. Se necessario, aggiungi i log di flusso manualmente.

Amministratore di rete

Configura i log di flusso VPC per l'invio ai log locali. CloudWatch

(Facoltativo) Se desideri che i log di flusso siano visibili negli account in cui vengono generati, crea un altro log di flusso per inviare i dati ai CloudWatch log nell'account locale. In alternativa, puoi inviare i dati a un bucket S3 specifico dell'account nell'account locale.

Informazioni generali su AWS

Risorse correlate

Informazioni aggiuntive

Politica Bucket

Questo esempio di policy sui bucket può essere applicato al bucket S3 centrale per i log di flusso, dopo aver aggiunto i valori per i nomi dei segnaposto.

{ "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" } } } ] }
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.