Senden von benutzerdefinierten Antworten für Block actions - AWS WAF, AWS Firewall Manager, und AWS Shield Advanced

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.

Senden von benutzerdefinierten Antworten für Block actions

In diesem Abschnitt wird erklärt, wie man Anweisungen erteilt AWS WAF um eine benutzerdefinierte HTTP Antwort für Regelaktionen oder ACL Web-Standardaktionen zurück an den Client zu senden, die auf gesetzt sind Block. Weitere Informationen zu Regelaktionen finden Sie unterVerwenden von Regelaktionen in AWS WAF. Weitere Informationen zu ACL Standard-Webaktionen finden Sie unterEinstellung der ACL Web-Standardaktion in AWS WAF.

Wenn Sie eine benutzerdefinierte Antwortbehandlung für eine definieren Block Aktion definieren Sie den Statuscode, die Header und den Antworttext. Für eine Liste von Statuscodes, die Sie verwenden können AWS WAF, siehe den folgenden Abschnitt,Unterstützte Statuscodes für benutzerdefinierte Antworten.

Anwendungsfälle

Zu den Anwendungsfällen für benutzerdefinierte Antworten gehören:

  • Senden eines nicht standardmäßigen Statuscodes an den Client zurück

  • Senden benutzerdefinierter Antwort-Header zurück an den Client. Sie können einen beliebigen Header-Namen angeben, mit Ausnahme content-type von.

  • Senden einer statischen Fehlerseite an den Client zurück

  • Den Client zu einem anderen umleiten. URL Dazu geben Sie einen der Statuscodes für die 3xx Umleitung an, z. B. 301 (Moved Permanently) oder, und geben dann einen neuen Header an302 (Found), der Location mit dem neuen benannt wird. URL

Interaktion mit Antworten, die Sie in Ihrer geschützten Ressource definieren

Benutzerdefinierte Antworten, die Sie angeben für AWS WAF Block Aktionen haben Vorrang vor allen Antwortspezifikationen, die Sie in Ihrer geschützten Ressource definieren.

Der Host-Service für AWS Ressource, mit der Sie schützen AWS WAF ermöglicht möglicherweise eine benutzerdefinierte Antwortbehandlung für Webanfragen. Beispiele sind unter anderem:

  • Bei Amazon CloudFront können Sie die Fehlerseite anhand des Statuscodes anpassen. Weitere Informationen finden Sie unter Generieren benutzerdefinierter Fehlerantworten im Amazon CloudFront Developer Guide.

  • Mit Amazon API Gateway können Sie den Antwort- und Statuscode für Ihr Gateway definieren. Weitere Informationen finden Sie unter Gateway-Antworten in API Gateway im Amazon API Gateway Developer Guide.

Sie können nicht kombinieren AWS WAF benutzerdefinierte Antworteinstellungen mit benutzerdefinierten Antworteinstellungen im geschützten Bereich AWS Ressource. Die Antwortspezifikation für jede einzelne Webanfrage stammt entweder vollständig von AWS WAF oder vollständig aus der geschützten Ressource.

Für Webanfragen, die AWS WAF Im Folgenden wird die Rangfolge von Blöcken dargestellt.

  1. AWS WAF benutzerdefinierte Antwort — Wenn AWS WAF Block Für die Aktion ist eine benutzerdefinierte Antwort aktiviert, sendet die geschützte Ressource die konfigurierte benutzerdefinierte Antwort zurück an den Client. Alle Antworteinstellungen, die Sie möglicherweise in der geschützten Ressource selbst definiert haben, haben keine Auswirkungen.

  2. Benutzerdefinierte Antwort, die in der geschützten Ressource definiert ist – Wenn für die geschützte Ressource benutzerdefinierte Antworteinstellungen angegeben wurden, verwendet die geschützte Ressource diese Einstellungen für die Antwort an den Client.

  3. AWS WAF default Block Antwort — Andernfalls antwortet die geschützte Ressource dem Client mit AWS WAF default Block Antwort403 (Forbidden).

Für Webanfragen, die AWS WAF erlaubt, Ihre Konfiguration der geschützten Ressource bestimmt die Antwort, die sie an den Client zurücksendet. Sie können die Antworteinstellungen nicht konfigurieren in AWS WAF für zulässige Anfragen. Die einzige Anpassung, die Sie konfigurieren können AWS WAF Bei zulässigen Anfragen werden benutzerdefinierte Header in die ursprüngliche Anfrage eingefügt, bevor die Anfrage an die geschützte Ressource weitergeleitet wird. Diese Option wird im vorherigen Abschnitt (Einfügen von benutzerdefinierten Anforderungsheadern für nicht blockierende Aktionen) beschrieben.

Benutzerdefinierte Antwort-Header

Sie können einen beliebigen Header-Namen angeben, mit Ausnahme content-type von.

Benutzerdefinierte Antworttexte

Sie definieren den Hauptteil einer benutzerdefinierten Antwort im Kontext der Web ACL - oder Regelgruppe, in der Sie sie verwenden möchten. Nachdem Sie einen benutzerdefinierten Antworttext definiert haben, können Sie ihn als Referenz an einer beliebigen Stelle in der Web ACL - oder Regelgruppe verwenden, in der Sie ihn erstellt haben. In der Einzelperson Block In den Aktionseinstellungen verweisen Sie auf den benutzerdefinierten Text, den Sie verwenden möchten, und definieren den Statuscode und die Kopfzeile der benutzerdefinierten Antwort.

Wenn Sie eine benutzerdefinierte Antwort in der Konsole erstellen, können Sie aus Antworttexten auswählen, die Sie bereits definiert haben, oder Sie können einen neuen Text erstellen. Außerhalb der Konsole definieren Sie Ihre benutzerdefinierten Antworttextkörper auf Web ACL - oder Regelgruppenebene und verweisen dann in den Aktionseinstellungen innerhalb der Web ACL - oder Regelgruppe auf sie. Dies wird im Beispiel JSON im folgenden Abschnitt veranschaulicht.

Beispiel: Benutzerdefinierte Antwort

Das folgende Beispiel listet die JSON für eine Regelgruppe mit benutzerdefinierten Antworteinstellungen auf. Der benutzerdefinierte Antworttext wird für die gesamte Regelgruppe definiert und dann durch Schlüssel in der Regelaktion referenziert.

{ "ARN": "test_rulegroup_arn", "Capacity": 1, "CustomResponseBodies": { "CustomResponseBodyKey1": { "Content": "This is a plain text response body.", "ContentType": "TEXT_PLAIN" } }, "Description": "This is a test rule group.", "Id": "test_rulegroup_id", "Name": "TestRuleGroup", "Rules": [ { "Action": { "Block": { "CustomResponse": { "CustomResponseBodyKey": "CustomResponseBodyKey1", "ResponseCode": 404, "ResponseHeaders": [ { "Name": "BlockActionHeader1Name", "Value": "BlockActionHeader1Value" } ] } } }, "Name": "GeoMatchRule", "Priority": 1, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ] } }, "VisibilityConfig": { "CloudWatchMetricsEnabled": true, "MetricName": "TestRuleGroupReferenceMetric", "SampledRequestsEnabled": true } } ], "VisibilityConfig": { "CloudWatchMetricsEnabled": true, "MetricName": "TestRuleGroupMetric", "SampledRequestsEnabled": true } }