

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren Sie VPC Flow Logs für die Zentralisierung über AWS-Konten
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts"></a>

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

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

In einer AWS Virtual Private Cloud (VPC) kann die Funktion VPC Flow Logs nützliche Daten für betriebliche und sicherheitstechnische Problembehebungen liefern. Es gibt jedoch Einschränkungen bei der Verwendung von VPC Flow Logs in einer Umgebung mit mehreren Konten. Insbesondere kontenübergreifende Flow-Logs von Amazon CloudWatch Logs werden nicht unterstützt. Stattdessen können Sie die Protokolle zentralisieren, indem Sie einen Amazon Simple Storage Service (Amazon S3) -Bucket mit der entsprechenden Bucket-Richtlinie konfigurieren.

**Anmerkung**  
In diesem Muster werden die Anforderungen für das Senden von Flow-Protokollen an einen zentralen Ort beschrieben. Wenn Sie jedoch möchten, dass Protokolle auch lokal in Mitgliedskonten verfügbar sind, können Sie für jede VPC mehrere Flow-Logs erstellen. Benutzer, die keinen Zugriff auf das Log Archive-Konto haben, können Datenverkehrsprotokolle zur Fehlerbehebung einsehen. Alternativ können Sie ein einzelnes Flow-Protokoll für jede VPC konfigurieren, die CloudWatch Protokolle an Logs sendet. Anschließend können Sie einen Amazon Data Firehose-Abonnementfilter verwenden, um die Protokolle an einen S3-Bucket weiterzuleiten. Weitere Informationen finden Sie im Abschnitt [Verwandte Ressourcen](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources).

## Voraussetzungen und Einschränkungen
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Eine AWS Organizations Organisation mit einem Konto, das zur Zentralisierung von Protokollen verwendet wird (z. B. Log Archive)

**Einschränkungen**

Wenn Sie den verwalteten Schlüssel AWS Key Management Service (AWS KMS) verwenden`aws/s3`, um Ihren zentralen Bucket zu verschlüsseln, empfängt er keine Logs von einem anderen Konto. Stattdessen wird Ihnen ein `Unsuccessful` Fehlercode 400 mit einer Meldung wie `"LogDestination: <bucketName> is undeliverable"` für Ihren angegebenen `ResourceId` angezeigt. Das liegt daran, dass die AWS verwalteten Schlüssel eines Kontos nicht von mehreren Konten gemeinsam genutzt werden können. Die Lösung besteht darin, entweder die von Amazon S3 verwaltete Verschlüsselung (SSE-S3) oder einen vom AWS KMS Kunden verwalteten Schlüssel zu verwenden, den Sie mit Mitgliedskonten teilen können.

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

**Zielarchitektur**

In der folgenden Abbildung werden zwei Flow-Logs für jede VPC bereitgestellt. Einer sendet Protokolle an eine lokale CloudWatch Protokollgruppe. Die andere sendet Protokolle an einen S3-Bucket in einem zentralen Protokollierungskonto. Die Bucket-Richtlinie ermöglicht es dem Log-Lieferdienst, Logs in den Bucket zu schreiben.

**Anmerkung**  
Seit November 2023 unterstützt es AWS jetzt den [Bedingungsschlüssel aws: SourceOrg ID](https://aws.amazon.com/about-aws/whats-new/2023/11/organization-wide-iam-condition-keys-restrict-aws-service-to-service-requests/). Mit dieser Bedingung können Sie Konten außerhalb Ihrer AWS Organizations Organisation das Schreiben in den zentralen Bucket verweigern.

![Von jeder VPC sendet ein Flow-Protokoll Protokolle an CloudWatch und ein anderes sendet Protokolle an den S3-Bucket.](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/718c29f4-a035-47ab-9c58-bd7d5c1ca77e/images/0b502d82-a6ce-4832-b854-99181d2ed834.png)


**Automatisierung und Skalierung**

Jede VPC ist so konfiguriert, dass sie Protokolle an den S3-Bucket im zentralen Protokollierungskonto sendet. Verwenden Sie eine der folgenden Automatisierungslösungen, um sicherzustellen, dass die Flow-Logs ordnungsgemäß konfiguriert sind:
+ [CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)
+ [AWS Control Tower Account Factory für Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html)
+ [Eine AWS Config Regel mit Korrektur](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/)

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

**Tools**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) hilft Ihnen dabei, die Protokolle all Ihrer Systeme und Anwendungen zu zentralisieren, AWS-Services sodass Sie sie überwachen und sicher archivieren können.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk entspricht einem herkömmlichen Netzwerk, wie Sie es in Ihrem Rechenzentrum betreiben würden, mit den Vorteilen der Verwendung der skalierbaren Infrastruktur von AWS. Dieses Muster verwendet die Funktion [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html), um Informationen über den IP-Verkehr zu und von Netzwerkschnittstellen in Ihrer VPC zu erfassen.

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

Die Verwendung von Infrastructure as Code (IaC) kann den Bereitstellungsprozess von VPC Flow Logs erheblich vereinfachen. Wenn Sie Ihre VPC-Bereitstellungsdefinitionen so abstrahieren, dass sie ein Flow-Log-Ressourcenkonstrukt enthalten, werden Ihre VPCs With-Flow-Logs automatisch bereitgestellt. Dies wird im nächsten Abschnitt demonstriert.

**Zentralisierte Flussprotokolle**

Beispielsyntax für das Hinzufügen von zentralisierten Flow-Logs zu einem VPC-Modul in HashiCorp Terraform: Dieser Code erstellt ein Flow-Log, das Protokolle von einer VPC an einen zentralen S3-Bucket sendet. Beachten Sie, dass dieses Muster nicht die Erstellung des S3-Buckets abdeckt. Empfohlene Bucket-Policy-Anweisungen finden Sie im Abschnitt [Zusätzliche Informationen](#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.
}
```

Weitere Informationen zum benutzerdefinierten Protokollformat finden Sie in der [Amazon VPC-Dokumentation](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html#flow-logs-custom).

**Lokale Datenflussprotokolle**

Beispielsyntax für das Hinzufügen von lokalen Flow-Logs zu einem VPC-Modul in Terraform mit den erforderlichen Berechtigungen: Dieser Code erstellt ein Flow-Log, das Protokolle von einer VPC an eine lokale Logs-Gruppe sendet. 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
}
```

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

### Stellen Sie die VPC Flow Logs-Infrastruktur bereit
<a name="deploy-vpc-flow-logs-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ermitteln Sie die Verschlüsselungsstrategie und erstellen Sie die Richtlinie für den zentralen S3-Bucket. | Der zentrale Bucket unterstützt den AWS KMS `aws/s3` Schlüssel nicht, daher müssen Sie entweder SSE-S3 oder einen vom AWS KMS Kunden verwalteten Schlüssel verwenden. Wenn Sie einen AWS KMS Schlüssel verwenden, muss die Schlüsselrichtlinie den Mitgliedskonten die Verwendung des Schlüssels ermöglichen. | Compliance | 
| Erstellen Sie den zentralen Flow-Log-Bucket. | Erstellen Sie den zentralen Bucket, an den die Flow-Logs gesendet werden, und wenden Sie die Verschlüsselungsstrategie an, die Sie im vorherigen Schritt ausgewählt haben. Dies sollte sich in einem Log-Archiv oder einem Konto mit ähnlichem Zweck befinden.<br />Rufen Sie die Bucket-Richtlinie im Abschnitt [Zusätzliche Informationen](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional) ab und wenden Sie sie auf Ihren zentralen Bucket an, nachdem Sie die Platzhalter mit Ihren umgebungsspezifischen Werten aktualisiert haben. | Allgemeines AWS | 
| Konfigurieren Sie VPC Flow Logs so, dass Protokolle an den zentralen Flow-Log-Bucket gesendet werden. | Fügen Sie jeder VPC, von der Sie Daten sammeln möchten, Flow-Logs hinzu. Der skalierbarste Weg, dies zu tun, ist die Verwendung von IaC-Tools wie AFT oder. AWS Cloud Development Kit (AWS CDK) Sie können beispielsweise ein Terraform-Modul erstellen, das eine VPC zusammen mit einem Flow-Log bereitstellt. Bei Bedarf fügen Sie die Flow-Logs manuell hinzu. | Netzwerkadministrator | 
| Konfigurieren Sie VPC Flow Logs so, dass sie an lokale CloudWatch Logs gesendet werden. | (Optional) Wenn Sie möchten, dass Flow-Protokolle in den Konten sichtbar sind, in denen die Protokolle generiert werden, erstellen Sie ein weiteres Flow-Protokoll, um Daten an CloudWatch Logs im lokalen Konto zu senden. Alternativ können Sie die Daten an einen kontospezifischen S3-Bucket im lokalen Konto senden. | Allgemeines AWS | 

## Zugehörige Ressourcen
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources"></a>
+ [So erleichtern Sie die Datenanalyse und erfüllen Sicherheitsanforderungen mithilfe zentralisierter Flow-Protokolldaten](https://aws.amazon.com/blogs/security/how-to-facilitate-data-analysis-and-fulfill-security-requirements-by-using-centralized-flow-log-data/) (AWS Blogbeitrag)
+ [So aktivieren Sie VPC Flow Logs automatisch mithilfe von AWS Config Regeln](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/) (AWS Blogbeitrag)

## Zusätzliche Informationen
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional"></a>

**Bucket-Richtlinie**

Dieses Beispiel für eine Bucket-Richtlinie kann auf Ihren zentralen S3-Bucket für Flow-Logs angewendet werden, nachdem Sie Werte für Platzhalternamen hinzugefügt haben.

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