Benutzerdefinierte Antworten für Block Aktionen - AWS WAFAWS 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.

Benutzerdefinierte Antworten für Block Aktionen

Sie können anweisen AWS WAF , für Regelaktionen oder Web-ACL-Standardaktionen, die auf eingestellt sind, eine benutzerdefinierte HTTP-Antwort zurück an den Client zu Block senden. Weitere Informationen zu Regelaktionen unter Regelaktion. Weitere Informationen zu standardmäßigen Web-ACL-Aktionen finden Sie unter Die Web-ACL-Standardaktion.

Wenn Sie die benutzerdefinierte Antwortbehandlung für eine Block Aktion definieren, definieren Sie den Statuscode, die Header und den Antworttext. Eine Liste der Statuscodes, die Sie zusammen verwenden können AWS WAF, finden Sie im folgenden Abschnitt. Unterstützte Statuscodes für benutzerdefinierte Antwort

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 Antwortheader 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

  • Umleiten des Clients auf eine andere URL Dazu geben Sie einen der 3xx-Umleitungsstatuscodes wie 301 (Moved Permanently) oder 302 (Found) und dann einen neuen Header mit dem Namen Location mit der neuen URL an.

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

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

Der Hostdienst für die AWS Ressource, mit der Sie schützen, ermöglicht AWS WAF 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 Entwicklerhandbuch für Amazon API Gateway.

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

Für AWS WAF blockierte Webanfragen ist im Folgenden die Rangfolge aufgeführt.

  1. AWS WAF benutzerdefinierte Antwort — Wenn für die AWS WAF Block Aktion eine benutzerdefinierte Antwort aktiviert ist, 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 BlockStandardantwort — Andernfalls antwortet die geschützte Ressource dem Client mit der AWS WAF Block Standardantwort403 (Forbidden).

Bei Webanfragen, die dies AWS WAF zulassen, bestimmt Ihre Konfiguration der geschützten Ressource die Antwort, die an den Client zurückgesendet wird. Sie können die Antworteinstellungen AWS WAF für zulässige Anfragen nicht konfigurieren. Die einzige Anpassung, die Sie AWS WAF für zulässige Anfragen konfigurieren können, ist das Einfügen von benutzerdefinierten Headern in die ursprüngliche Anfrage, bevor die Anfrage an die geschützte Ressource weitergeleitet wird. Diese Option wird im vorherigen Abschnitt (Benutzerdefinierte Anforderungsheader-Einfügungen 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 Text 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 per Verweis an einer anderen Stelle in der Web-ACL oder Regelgruppe verwenden, in der Sie ihn erstellt haben. In den einzelnen Block 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 Antworttextte auf Web-ACL- oder Regelgruppenebene und referenzieren sie dann aus den Aktionseinstellungen innerhalb der Web-ACL oder Regelgruppe. Dies wird im Beispiel-JSON-Code im folgenden Abschnitt gezeigt.

Beispiel: Benutzerdefinierte Antwort

Im folgenden Beispiel wird der JSON-Code für eine Regelgruppe mit benutzerdefinierten Antworteinstellungen aufgeführt. 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 } }