

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.

# Aktivieren der Zugriffsprotokolle für Ihren Application Load Balancer
<a name="enable-access-logging"></a>

Wenn Sie die Zugriffsprotokolle für Ihren Load Balancer aktivieren, müssen Sie den Namen des S3-Bucket angeben, in dem der Load Balancer die Protokolle speichert. Der Bucket muss über eine Bucket-Richtlinie verfügen, die Elastic Load Balancing die Berechtigung zum Schreiben in den Bucket gewährt.

**Topics**
+ [Schritt 1: Einen S3-Bucket erstellen](#access-log-create-bucket)
+ [Schritt 2: Hinzufügen von Richtlinien zu Ihrem S3-Bucket](#attach-bucket-policy)
+ [Schritt 3: Konfigurieren von Zugriffsprotokollen](#enable-access-logs)
+ [Schritt 4: Überprüfen der Bucket-Berechtigungen](#verify-bucket-permissions)
+ [Fehlerbehebung](#bucket-permissions-troubleshooting)

## Schritt 1: Einen S3-Bucket erstellen
<a name="access-log-create-bucket"></a>

Wenn Sie Zugriffsprotokolle aktivieren, müssen Sie einen S3-Bucket für die Zugriffsprotokolle angeben. Sie können einen vorhandenen Bucket verwenden oder einen Bucket speziell für Zugriffsprotokolle erstellen. Der Bucket muss die folgenden Anforderungen erfüllen.

**Voraussetzungen**
+ Der Bucket muss sich in derselben Region wie der Load Balancer befinden. Der Bucket und der Load Balancer können verschiedenen Konten gehören.
+ Die einzige serverseitige Verschlüsselungsoption, die unterstützt wird, ist Amazon S3-managed Schlüssel (SSE-S3). Weitere Informationen finden Sie unter [Amazon S3-managed Verschlüsselungsschlüssel (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html).

**Erstellen eines S3-Buckets mithilfe der Amazon-S3-Konsole**

1. Öffnen Sie die Amazon S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie **Create Bucket** (Bucket erstellen) aus.

1. Führen Sie auf der Seite **Create bucket (Bucket erstellen)** die folgenden Schritte aus:

   1. Geben Sie unter **Bucket Name (Bucket-Name)** einen Namen für den Bucket ein. Dieser Name muss unter den in Amazon S3 vorhandenen Bucket-Namen eindeutig sein. In einigen Regionen kann es zusätzliche Einschränkungen für Bucket-Namen geben. Weitere Informationen finden Sie unter [Einschränkungen und Einschränkungen für Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) in der *Amazon S3-Benutzerhandbuch*.

   1. Wählen Sie unter **AWS -Region** die Region aus, in der Sie Ihren Load Balancer erstellt haben.

   1. Für **Standardverschlüsselung**, wählen **Amazon S3-managed Schlüssel (SSE-S3)**.

   1. Wählen Sie **Create Bucket** (Bucket erstellen) aus.

## Schritt 2: Hinzufügen von Richtlinien zu Ihrem S3-Bucket
<a name="attach-bucket-policy"></a>

Der S3-Bucket muss über eine Bucket-Richtlinie verfügen, die Elastic Load Balancing die Berechtigung zum Schreiben von Zugriffsprotokollen in den Bucket gewährt. Bucket-Richtlinien sind eine Sammlung von JSON-Anweisungen, die in der Sprache der Zugriffsrichtlinie geschrieben sind, um Zugriffsberechtigungen für Ihre Buckets zu definieren. Jeder Anweisung enthält Informationen über eine einzelne Berechtigung und besteht aus einer Reihe von Elementen.

Wenn Sie einen vorhandenen Bucket verwenden, dem bereits eine Richtlinie angehängt ist, können Sie die Anweisung für Zugriffsprotokolle von Elastic Load Balancing zu der Richtlinie hinzufügen. Wenn Sie dies tun, empfehlen wir, dass Sie eine Beurteilung der daraus resultierenden Berechtigungen vornehmen, um sicherzustellen, dass sie für die Benutzer geeignet sind, die Zugriff auf die Bucket-Zugriffsprotokolle benötigen.

### Bucket-Richtlinie
<a name="bucket-policy-logdelivery"></a>

Diese Richtlinie gewährt dem Protokolllieferdienst Berechtigungen.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{prefix}}/AWSLogs/{{123456789012}}/*"
    }
  ]
}
```

Für `Resource`, geben Sie den ARN des Speicherorts für die Zugriffsprotokolle ein. Verwenden Sie dabei das Format, das in der Beispielrichtlinie gezeigt wird. Geben Sie immer die Konto-ID des Kontos mit dem Load Balancer in den Ressourcenpfad des S3-Bucket-ARN ein. Dadurch wird sichergestellt, dass nur Load Balancer des angegebenen Kontos Zugriffsprotokolle in den S3-Bucket schreiben können.

Der von Ihnen angegebene ARN hängt davon ab, ob Sie bei der Aktivierung von Zugriffsprotokollen ein Präfix angeben möchten [Schritt 3](#enable-access-logs).

**Beispiel für einen S3-Bucket-ARN mit einem Präfix**  
Der Name des S3-Buckets lautet amzn-s3-demo-logging-bucket und das Präfix ist logging-prefix.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**AWS GovCloud (US)** — Das folgende Beispiel verwendet die ARN-Syntax für AWS GovCloud (US) Regions.

```
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**Beispiel für einen S3-Bucket-ARN ohne Präfix**  
Der Name des S3-Buckets lautet amzn-s3-demo-logging-bucket. Der S3-Bucket-ARN enthält keinen Präfixteil.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

**AWS GovCloud (US)** — Das folgende Beispiel verwendet die ARN-Syntax für AWS GovCloud (US) Regions.

```
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

### Legacy-Bucket-Richtlinie
<a name="legacy-bucket-policy"></a>

Bisher benötigten wir für Regionen, die vor August 2022 verfügbar waren, eine Richtlinie, die Berechtigungen für ein Elastic Load Balancing-Konto gewährte, das für die Region spezifisch war. Diese alte Richtlinie wird weiterhin unterstützt, wir empfehlen jedoch, sie durch die oben genannte neuere Richtlinie zu ersetzen. Wenn Sie es vorziehen, die alte Richtlinie, die hier nicht aufgeführt ist, weiterhin zu verwenden, können Sie dies tun.

 Als Referenz finden Sie hier die IDs der Elastic Load Balancing-Konten, die Sie in angeben müssen `Principal` in der alten Richtlinie. Beachten Sie, dass Regionen, die nicht in dieser Liste aufgeführt sind, die alte Richtlinie nicht unterstützen.
+ USA Ost (Nord-Virginia) – 127311923021
+ USA Ost (Ohio) – 033677994240
+ USA West (Nordkalifornien) – 027434742980
+ USA West (Oregon) – 797873946194
+ Afrika (Kapstadt) – 098369216593
+ Asien-Pazifik (Hongkong) – 754344448648
+ Asien-Pazifik (Jakarta) – 589379963580
+ Asien-Pazifik (Mumbai) – 718504428378
+ Asien-Pazifik (Osaka) – 383597477331
+ Asien-Pazifik (Seoul) – 600734575887
+ Asien-Pazifik (Singapur) – 114774131450
+ Asien-Pazifik (Sydney) – 783225319266
+ Asien-Pazifik (Tokio) – 582318560864
+ Kanada (Zentral) – 985666609251
+ Europa (Frankfurt) – 054676820928
+ Europa (Irland) – 156460612806
+ Europa (London) – 652711504416
+ Europa (Mailand) – 635631232127
+ Europa (Paris) – 009996457667
+ Europa (Stockholm) – 897822967062
+ Naher Osten (Bahrain) – 076674570225
+ Südamerika (São Paulo) – 507241528517
+ AWS GovCloud (US-East) — 190560391635
+ AWS GovCloud (US-West) — 048591011584

### Outposts-Zonen
<a name="bucket-policy-outposts"></a>

Die folgende Richtlinie erteilt Berechtigungen für den angegebenen Protokoll-Bereitstellungsdienst. Verwenden Sie diese Richtlinie für Load Balancer in Outposts-Zonen.

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "logdelivery.elb.amazonaws.com"
    },
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{prefix}}/AWSLogs/{{123456789012}}/*",
    "Condition": {
        "StringEquals": {
            "s3:x-amz-acl": "bucket-owner-full-control"
        }
    }
}
```

Für `Resource`, geben Sie den ARN des Speicherorts für die Zugriffsprotokolle ein. Verwenden Sie dabei das Format, das in der Beispielrichtlinie gezeigt wird. Geben Sie immer die Konto-ID des Kontos mit dem Load Balancer in den Ressourcenpfad des S3-Bucket-ARN ein. Dadurch wird sichergestellt, dass nur Load Balancer des angegebenen Kontos Zugriffsprotokolle in den S3-Bucket schreiben können.

Der S3-Bucket-ARN, den Sie angeben, hängt davon ab, ob Sie beabsichtigen, ein Präfix hinzuzufügen, wenn Sie Zugriffsprotokolle aktivieren [Schritt 3](#enable-access-logs).

**Beispiel für einen S3-Bucket-ARN mit einem Präfix**  
Der Name des S3-Buckets lautet amzn-s3-demo-logging-bucket und das Präfix ist logging-prefix.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**Beispiel für einen S3-Bucket-ARN ohne Präfix**  
Der Name des S3-Buckets lautet amzn-s3-demo-logging-bucket. Der S3-Bucket-ARN enthält keinen Präfixteil.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

### Bewährte Methoden für die Gewährleistung der Sicherheit
<a name="bucket-policy-security-best-practices"></a>
+ Verwenden Sie den vollständigen Ressourcenpfad, einschließlich des Konto-ID-Teils des S3-Bucket-ARN. Verwenden Sie keine Platzhalter (\*) im Konto-ID-Teil des S3-Bucket-ARN.

  ```
  "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{prefix}}/AWSLogs/{{123456789012}}/*"
  ```
+ Verwenden `aws:SourceArn` um sicherzustellen, dass nur Load Balancer aus der angegebenen Region und dem angegebenen Konto Ihren Bucket verwenden können.

  ```
  "Condition": {
      "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticloadbalancing:{{region}}:{{123456789012}}:loadbalancer/*"
      }
  }
  ```
+ Verwenden `aws:SourceOrgId` mit `aws:SourceArn` um sicherzustellen, dass nur Load Balancer der angegebenen Organisation Ihren Bucket verwenden können.

  ```
  "Condition": {
      "StringEquals": {
          "aws:SourceOrgId": "{{o-1234567890}}"
      },
      "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticloadbalancing:*:*:loadbalancer/*"
      }
  }
  ```
+ Wenn Sie eine haben `Deny` Eine Anweisung, die den Zugriff auf Dienstprinzipale, mit Ausnahme der ausdrücklich erlaubten, verhindern soll, fügen Sie unbedingt hinzu `logdelivery.elasticloadbalancing.amazonaws.com` zur Liste der erlaubten Dienstprinzipale. Zum Beispiel, wenn Sie das verwendet haben `aws:PrincipalServiceNamesList` Zustand, hinzufügen `logdelivery.elasticloadbalancing.amazonaws.com` wie folgt:

  ```
  {
    "Effect": "Deny",
    "Principal": "*",
    "Condition": {
        "StringNotEqualsIfExists": {
            "aws:PrincipalServiceNamesList": [
                "logdelivery.elasticloadbalancing.amazonaws.com",
                "{{service}}.amazonaws.com"
            ]
        }
    }
  }
  ```

  Wenn du das benutzt hast `NotPrincipal` Element, füge hinzu `logdelivery.elasticloadbalancing.amazonaws.com` wie folgt. Beachten Sie, dass wir empfehlen, das zu verwenden `aws:PrincipalServiceName` oder `aws:PrincipalServiceNamesList` Bedingungsschlüssel, um Dienstprinzipale explizit zuzulassen, anstatt den `NotPrincipal` Element. Weitere Informationen finden Sie unter [NotPrincipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html).

  ```
  {
    "Effect": "Deny",
    "NotPrincipal": {
      "Service": [
         "logdelivery.elasticloadbalancing.amazonaws.com",
         "{{service}}.amazonaws.com"
      ]
    }
  },
  ```

Nachdem Sie Ihre Bucket-Richtlinie erstellt haben, verwenden Sie eine Amazon S3-Schnittstelle, z. B. die Amazon S3-Konsole oder AWS CLI Befehle, um Ihre Bucket-Richtlinie an Ihren S3-Bucket anzuhängen.

------
#### [ Console ]

**Um Ihre Bucket-Richtlinie an Ihren S3-Bucket anzuhängen**

1. Öffnen Sie die Amazon S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie den Namen des Buckets aus, um seine Detailseite zu öffnen.

1. Wählen Sie **Berechtigungen** und anschließend **Bucket-Richtlinie**, **Bearbeiten** aus.

1. Aktualisieren Sie die Bucket-Richtlinie, um die erforderlichen Berechtigungen zu gewähren.

1. Wählen Sie **Änderungen speichern ** aus.

------
#### [ AWS CLI ]

**Um Ihre Bucket-Richtlinie an Ihren S3-Bucket anzuhängen**  
Verwenden Sie das [Put-Bucket-Richtlinie](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html) Befehl. In diesem Beispiel wurde die Bucket-Richtlinie in der angegebenen JSON-Datei gespeichert.

```
aws s3api put-bucket-policy \
    --bucket {{amzn-s3-demo-bucket}} \
    --policy file://{{access-log-policy.json}}
```

------

## Schritt 3: Konfigurieren von Zugriffsprotokollen
<a name="enable-access-logs"></a>

Verwenden Sie das folgende Verfahren, um Zugriffsprotokolle zu konfigurieren, um Anforderungsinformationen zu erfassen und Protokolldateien an Ihren S3-Bucket zu senden.

**Voraussetzungen**  
Der Bucket muss die in [Schritt 1](#access-log-create-bucket) beschriebenen Anforderungen erfüllen und Sie müssen eine Bucket-Richtlinie wie in [Schritt 2](#attach-bucket-policy) beschrieben anhängen. Wenn Sie ein Präfix angeben, darf es die Zeichenfolge „AWSLogs“ nicht enthalten.

**So verwalten Sie den S3-Bucket für Ihre Zugriffsprotokolle**  
Stellen Sie sicher, dass Sie die Zugriffsprotokolle deaktivieren, bevor Sie den Bucket löschen, den Sie für Zugriffsprotokolle konfiguriert haben. Andernfalls kann Elastic Load Balancing keine Zugriffsprotokolle für Ihren Load Balancer in diesem neuen Bucket schreiben, wenn es einen neuen Bucket mit demselben Namen und den erforderlichen Bucket-Richtlinien in einem AWS-Konto gibt, dessen Eigentümer nicht Sie sind.

------
#### [ Console ]

**So aktivieren Sie Zugriffsprotokolle**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Klicken Sie im Navigationsbereich auf **Load Balancers**.

1. Wählen Sie den Namen Ihres Load Balancers aus, um die Detailseite zu öffnen.

1. Klicken Sie auf der Registerkarte **Attribute** auf **Bearbeiten**.

1. Aktivieren Sie für die **Überwachung** die Option **Zugriffsprotokolle**.

1. Geben Sie für **S3-URI** den S3-URI für Ihre Protokolldateien ein. Der URI, den Sie angeben, hängt davon ab, ob Sie ein Präfix verwenden.
   + URI mit einem Präfix: s3://{{amzn-s3-demo-logging-bucket}}/{{logging-prefix}}
   + URI ohne Präfix: s3://{{amzn-s3-demo-logging-bucket}}

1. Wählen Sie **Änderungen speichern ** aus.

------
#### [ AWS CLI ]

**So aktivieren Sie Zugriffsprotokolle**  
Benutze den [Load-Balancer-Attribute modifizieren](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html) Befehl mit den zugehörigen Attributen.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn {{load-balancer-arn}} \
    --attributes \
        Key=access_logs.s3.enabled,Value=true \
        Key=access_logs.s3.bucket,Value={{amzn-s3-demo-logging-bucket}} \
        Key=access_logs.s3.prefix,Value={{logging-prefix}}
```

------
#### [ CloudFormation ]

**So aktivieren Sie Zugriffsprotokolle**  
Aktualisieren Sie den [AWS::ElasticLoadBalancingV2:LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html) Ressource, um die zugehörigen Attribute einzubeziehen.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "access_logs.s3.enabled"
          Value: "true"
        - Key: "access_logs.s3.bucket"
          Value: "{{amzn-s3-demo-logging-bucket}}"
        - Key: "access_logs.s3.prefix"
          Value: "{{logging-prefix}}"
```

------

## Schritt 4: Überprüfen der Bucket-Berechtigungen
<a name="verify-bucket-permissions"></a>

Nachdem Zugriffsprotokolle für den Load Balancer aktiviert ist, überprüft Elastic Load Balancing den S3-Bucket und erstellt eine Testdatei, um sicherzustellen, dass die Bucket-Richtlinie die erforderlichen Berechtigungen angibt. Sie können die Amazon-S3-Konsole verwenden, um sicherzustellen, dass die Testdatei erstellt wurde. Die Testdatei ist keine tatsächliche Zugriffsprotokolldatei; sie enthält keine Beispieldatensätze.

**Um zu überprüfen, ob in Ihrem Bucket mithilfe der Amazon S3-Konsole eine Testdatei erstellt wurde**

1. Öffnen Sie die Amazon S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie den Namen des Buckets aus, den Sie für Zugriffsprotokolle angegeben haben.

1. Navigieren Sie zur Testdatei, `ELBAccessLogTestFile`. Der Standort hängt davon ab, ob Sie ein Präfix verwenden.
   + Standort mit einem Präfix: {{amzn-s3-demo-logging-bucket}}/{{logging-prefix}}/AWS-Protokolle/{{123456789012}}/ELBAccessLogTestFile
   + Standort ohne Präfix: {{amzn-s3-demo-logging-bucket}}/AWSLogs/{{123456789012}}/ELBAccessLogTestFile

## Fehlerbehebung
<a name="bucket-permissions-troubleshooting"></a>

Wenn Sie einen Fehler aufgrund Zugriffsverweigerung erhalten, kann dies die folgenden möglichen Ursachen haben.
+ Die Bucket-Policy gewährt Elastic Load Balancing nicht die Berechtigung, Zugriffsprotokolle in den Bucket zu schreiben. Stellen Sie sicher, dass Sie die richtige Bucket-Richtlinie für die Region verwenden. Stellen Sie sicher, dass der Ressourcen-ARN denselben Bucket-Namen verwendet, den Sie bei der Aktivierung von Zugriffsprotokollen angegeben haben. Stellen Sie sicher, dass der Ressourcen-ARN kein Präfix enthält, wenn Sie bei der Aktivierung von Zugriffsprotokollen kein Präfix angegeben haben.
+ Der Bucket verwendet eine nicht unterstützte serverseitige Verschlüsselungsoption. Der Bucket muss Amazon verwenden S3-managed Schlüssel (SSE-S3).