

**Wir stellen vor: ein neues Konsolenerlebnis für AWS WAF**

Sie können das aktualisierte Erlebnis jetzt verwenden, um überall in der Konsole auf AWS WAF Funktionen zuzugreifen. Weitere Informationen finden Sie unter [Arbeiten mit der Konsole](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

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.

# Dynamische Labelinterpolation
<a name="waf-dynamic-label-interpolation"></a>

Mit der dynamischen Labelinterpolation können Sie Labelwerte mithilfe von Syntax direkt in benutzerdefinierte Anforderungsheader, benutzerdefinierte Antwortheader und benutzerdefinierte Antworttexte einbetten. `${namespace:}` AWS WAF löst jeden Platzhalter bei der Auswertung anhand der der Anfrage beigefügten Labels auf, sodass Sie nicht für jeden Labelwert eine separate Regel schreiben müssen.

Die Interpolation funktioniert innerhalb der bestehenden AWS WAF API ohne neue Felder oder Konfigurationsschritte. Sie verwenden die Platzhaltersyntax in Ihren vorhandenen Zeichenkettenwerten. Bestehende statische Header-Werte funktionieren weiterhin unverändert. Die Interpolation wird nur aktiviert, wenn ein Wert Klauseln enthält`${namespace:}`.

## Wo Interpolation unterstützt wird
<a name="waf-interpolation-where-supported"></a>

Sie können die `${namespace:}` Interpolation an den folgenden Stellen verwenden:
+ **Benutzerdefinierte Anforderungsheader** — Fügen Sie aufgelöste Labelwerte in Header ein, die an Ihren Absender weitergeleitet wurden. Verwenden Sie die `${namespace:}` Syntax im Header-Wertfeld.
+ **Benutzerdefinierte Antworttexte** — Betten Sie Labelwerte und synthetische Labels in Blockseiten, Challenge-Seiten und andere benutzerdefinierte Antworten ein. Verwenden Sie die `${namespace:}` Syntax im Inhaltsfeld für den Antworttext.
+ **Benutzerdefinierte Antwort-Header** — Fügen Sie Labelwerte in Antwort-Header ein, z. B. in einen `Location` Header für Weiterleitungen. Verwenden Sie die `${namespace:}` Syntax im Wertefeld für den Antwort-Header.

## Syntax und Auflösung der Interpolation
<a name="waf-interpolation-syntax"></a>

Um Interpolation zu verwenden, fügen Sie `${namespace:}` Klauseln in Ihre Header-Werte oder den Inhalt des benutzerdefinierten Antworttexts ein. Der abschließende Doppelpunkt ist signifikant. Es weist darauf AWS WAF hin, dass alle Labels in diesem Namespace aufgelöst werden sollen, anstatt einem einzigen Label wortwörtlich zu entsprechen.

AWS WAF löst jede Klausel bei der Auswertung anhand der folgenden Regeln auf:

1. **Single Label Match** — Die Klausel wird in den Endwert des Labels aufgelöst. Wenn die Anforderung beispielsweise das Label hat`awswaf:managed:aws:bot-control:bot:category:scraping`, wird die Klausel wie folgt `${awswaf:managed:aws:bot-control:bot:category:}` aufgelöst. `scraping`

1. **Mehrere Labels** — Wenn mehrere Labels mit dem Namespace übereinstimmen, werden die Werte als kommagetrennte Liste zurückgegeben, wobei das Namespace-Präfix entfernt wird. Beispiel, `scraping,advertising`.

1. **Keine Übereinstimmung** — Die Klausel wird in eine leere Zeichenfolge aufgelöst.

**Anmerkung**  
Ein einzelner Zeichenkettenwert unterstützt bis zu 10 `${namespace:}` Platzhalter. Wenn ein Wert mehr als 10 Platzhalter enthält, werden die ersten 10 Platzhalter AWS WAF aufgelöst und alle weiteren Platzhalter bleiben in der Ausgabe als Literaltext erhalten. `${namespace:}` Dieses Limit gilt für jeden Zeichenkettenwert, nicht für jede Anfrage. Sie können problemlos bis zu 10 Platzhalter in jeder von mehreren Kopfzeilen verwenden.

**Wichtig**  
Benutzerdefinierte Beschriftungen verwenden einen Kurznamen in. `ruleLabels` Beispiel, `app:tier:enterprise`. Dem Kurznamen AWS WAF wird jedoch automatisch der Kontext des Schutzpakets (Web-ACL) vorangestellt, sodass ein vollständig qualifiziertes Label entsteht. Beispiel, `awswaf:{{ACCOUNT_ID}}:webacl:{{WEBACL_NAME}}:app:tier:enterprise`. Die Anweisung label match funktioniert mit dem kurzen Namespace, Interpolationsverweise müssen jedoch immer den vollständig qualifizierten Namespace verwenden.

## Synthetische Labels
<a name="waf-interpolation-synthetic-labels"></a>

Die Interpolation unterstützt auch synthetische Labels. Dies sind integrierte Werte, die aus dem Anforderungskontext und nicht aus dem Labelspeicher AWS WAF aufgelöst werden. Sie können synthetische Labels mit Namespace-basierten Labels in derselben Wertezeichenfolge kombinieren.


| Synthetisches Etikett | Description | 
| --- | --- | 
| ${awswaf:request\_id:} | Die eindeutige AWS WAF Anforderungs-ID. | 
| ${awswaf:ip:} | Die Client-IP-Adresse. | 
| ${awswaf:ja3:} | Der JA3-TLS-Fingerabdruck. | 
| ${awswaf:ja4:} | Der JA4-TLS-Fingerabdruck. | 

## Beispiele für dynamische Label-Interpolation
<a name="waf-interpolation-examples"></a>

**Anwendungssignalisierung mit dynamischen Headern**  
Die folgende Regel leitet mehrere Bot Control-Signal-Namespaces als separate Header an Ihren Ursprung weiter. Eine Regel deckt den gesamten Namespace ab, sodass Sie die Regel nicht aktualisieren müssen, wenn die verwaltete Regelgruppe neue Labels hinzufügt.

```
{
  "Name": "forward-waf-signals",
  "Statement": {
    "LabelMatchStatement": {
      "Scope": "NAMESPACE",
      "Key": "awswaf:managed:aws:bot-control:bot:category:"
    }
  },
  "RuleAction": {
    "Count": {
      "CustomRequestHandling": {
        "InsertHeaders": [
          { "Name": "bot-category",
            "Value": "${awswaf:managed:aws:bot-control:bot:category:}" },
          { "Name": "bot-name",
            "Value": "${awswaf:managed:aws:bot-control:bot:name:}" },
          { "Name": "bot-signals",
            "Value": "${awswaf:managed:aws:bot-control:signal:}" },
          { "Name": "client-ip",
            "Value": "${awswaf:ip:}" }
        ]
      }
    }
  }
}
```

Der `bot-signals` Header (output:`x-amzn-waf-bot-signals`) zeigt die Auflösung mehrerer Werte. Der `signal:` Namespace kann beispielsweise mehrere Labels enthalten`non_browser_user_agent,automated_browser`, die in eine durch Kommas getrennte Liste aufgelöst werden. Der `client-ip` Header (output:`x-amzn-waf-client-ip`) verwendet ein synthetisches Label.

**Benutzerdefinierte Blockseite mit Debug-Informationen**  
Mit synthetischen Labels können Sie Blockseiten erstellen, die anforderungsspezifischen Kontext enthalten. Betten Sie die IP-Adresse des Clients und die AWS WAF Anfrage-ID direkt in den Antworttext ein, damit Benutzer sie teilen können, wenn sie ein falsches Positiv melden.

```
{
  "CustomResponseBodies": {
    "BlockPage": {
      "Content": "Your request was blocked.\n\nIP: ${awswaf:ip:}\nRequest ID: ${awswaf:request_id:}\n\nIf you believe this is an error, contact support with the Request ID above.",
      "ContentType": "TEXT_PLAIN"
    }
  }
}
```

**Interpolation benutzerdefinierter Etiketten**  
Die Interpolation funktioniert mit jedem Label-Namespace, einschließlich benutzerdefinierter Labels, die Sie in Ihren eigenen Regeln definieren. Das folgende Beispiel klassifiziert Anfragen nach API-Schlüssel und leitet den Tierwert an den Ursprung weiter.

**Regel 1: Klassifizieren Sie die Stufe anhand des API-Schlüssels**  
Diese Regel ordnet Anfragen einem Unternehmens-API-Schlüssel zu und wendet ein benutzerdefiniertes Label an.

```
{
{
  "Name": "classify-tier",
  "Priority": 100,
  "Statement": {
    "ByteMatchStatement": {
      "SearchString": "pk_enterprise_",
      "FieldToMatch": { "SingleHeader": { "Name": "x-api-key" } },
      "PositionalConstraint": "STARTS_WITH",
      "TextTransformations": [{ "Priority": 0, "Type": "NONE" }]
    }
  },
  "RuleLabels": [{ "Name": "app:tier:enterprise" }],
  "Action": { "Count": {} }
}

}
```

**Regel 2: Den aufgelösten Tierwert weiterleiten**  
Diese Regel entspricht einem beliebigen Label im `app:tier` Namespace und leitet den aufgelösten Wert als Header weiter.

```
{
{
  "Name": "forward-tier",
  "Priority": 200,
  "Statement": {
    "LabelMatchStatement": {
      "Scope": "NAMESPACE",
      "Key": "app:tier:"
    }
  },
  "Action": {
    "Count": {
      "CustomRequestHandling": {
        "InsertHeaders": [{
          "Name": "customer-tier",
          "Value": "${awswaf:{{ACCOUNT_ID}}:webacl:{{WEBACL_NAME}}:app:tier:}"
        }]
      }
    }
  }
}
```

Die erste Regel wendet das Label an. `app:tier:enterprise` Die zweite Regel entspricht einem beliebigen Label im `app:tier` Namespace und leitet den aufgelösten Wert als Header weiter. `customer-tier` Der Name des Ausgabe-Headers lautet. `x-amzn-waf-customer-tier` Sie können weitere Klassifizierungsregeln für andere Ebenen hinzufügen, z. B. `app:tier:standard` oder`app:tier:trial`. Die Weiterleitungsregel übernimmt sie ohne Änderungen.

Ein einsatzfähiges Beispiel, das all diese Muster demonstriert, finden Sie im Beispiel [AWS WAF Dynamic Label Interpolation](https://github.com/aws-samples/sample-aws-waf-dynamic-labels) unter. GitHub