

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 su Account AWS
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts"></a>

*Benjamin Morris e Aman Kaur Gandhi, Amazon Web Services*

## Riepilogo
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-summary"></a>

In un cloud privato AWS virtuale (VPC), 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.](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources)

## Prerequisiti e limitazioni
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Un' AWS Organizations organizzazione con un account utilizzato per centralizzare i registri (ad esempio, Log Archive)

**Limitazioni**

Se utilizzi la chiave gestita 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 dato. `ResourceId` Questo perché le chiavi AWS gestite 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 AWS KMS dal cliente che puoi condividere con gli account dei membri.

## Architecture
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-architecture"></a>

**Architettura 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](https://aws.amazon.com/about-aws/whats-new/2023/11/organization-wide-iam-condition-keys-restrict-aws-service-to-service-requests/). Questa condizione ti consente di negare la scrittura nel bucket centralizzato per gli account esterni alla tua organizzazione. AWS Organizations 

![\[Da ogni VPC un log di flusso invia i log CloudWatch e un altro li invia al bucket S3.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/718c29f4-a035-47ab-9c58-bd7d5c1ca77e/images/0b502d82-a6ce-4832-b854-99181d2ed834.png)


**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:
+ [CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)
+ [AWS Control Tower Account Factory per Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html)
+ [Qualsiasi AWS Config regola con correzione](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/)

## Tools (Strumenti)
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-tools"></a>

**Strumenti**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) ti aiuta a centralizzare i log di tutti i tuoi sistemi e applicazioni, Servizi AWS così puoi monitorarli e archiviarli in modo sicuro.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è 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)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una comune rete da gestire all'interno del proprio data center, ma con i vantaggi dell'infrastruttura scalabile di AWS. Questo modello utilizza la funzionalità [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) per acquisire informazioni sul traffico IP in entrata e in uscita dalle interfacce di rete del tuo VPC.

## Best practice
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-best-practices"></a>

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 log di flusso centralizzati a un modulo VPC in HashiCorp Terraform: questo codice crea un log di flusso che invia i log da un VPC a un bucket S3 centralizzato. Nota che questo modello non copre la creazione del bucket S3. Per le istruzioni sulle politiche relative ai bucket consigliate, consulta la sezione Informazioni [aggiuntive](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional).

```
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 di [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html#flow-logs-custom).

**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 di log locale. CloudWatch 

```
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
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-epics"></a>

### Implementa l'infrastruttura VPC Flow Logs
<a name="deploy-vpc-flow-logs-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Determina la strategia di crittografia e crea la policy per il bucket S3 centrale. | Il bucket centrale non supporta la AWS KMS `aws/s3` chiave, quindi è necessario utilizzare SSE-S3 o una chiave gestita dal cliente. AWS KMS Se si utilizza una AWS KMS chiave, la politica 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](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional) 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
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources"></a>
+ [Come facilitare l'analisi dei dati e soddisfare i requisiti di sicurezza utilizzando dati di log di flusso centralizzati](https://aws.amazon.com/blogs/security/how-to-facilitate-data-analysis-and-fulfill-security-requirements-by-using-centralized-flow-log-data/) (post AWS sul blog)
+ [Come abilitare automaticamente i log di flusso VPC utilizzando AWS Config le regole (AWS post sul blog](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/))

## Informazioni aggiuntive
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional"></a>

**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"
                }
            }
        }
    ]
}
```