Anweisung für Regel zur geographischen Übereinstimmung - 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.

Anweisung für Regel zur geographischen Übereinstimmung

Verwenden Sie geografische Angaben oder Geo-Match-Angaben, um Webanfragen basierend auf dem Herkunftsland und der Herkunftsregion zu verwalten. Eine Geo-Match-Anweisung fügt Webanfragen Labels hinzu, die das Herkunftsland und die Herkunftsregion angeben. Diese Bezeichnungen werden unabhängig davon hinzugefügt, ob die Kriterien für die Aussage mit der Anfrage übereinstimmen. Eine Geo-Match-Anweisung führt auch einen Abgleich mit dem Herkunftsland der Anfrage durch.

Wie benutzt man die Geo-Match-Erklärung

Sie können die Geo-Match-Anweisung wie folgt für den Länder- oder Regionalabgleich verwenden:

  • Land — Sie können eine Geo-Match-Regel als eigenständige Geo-Match-Regel verwenden, um Anfragen zu verwalten, die ausschließlich auf ihrem Herkunftsland basieren. Die Regelaussage stimmt mit den Ländercodes überein. Sie können auch einer Geo-Match-Regel mit einer Label-Match-Regel folgen, die mit dem Herkunftsland-Label übereinstimmt.

  • Region — Verwenden Sie eine Geo-Match-Regel, gefolgt von einer Label-Match-Regel, um Anfragen auf der Grundlage ihrer Herkunftsregion zu verwalten. Sie können eine Geo-Match-Regel nicht allein für den Abgleich mit Regionscodes verwenden.

Informationen zur Verwendung von Label-Abgleichsregeln finden Sie unter Regelanweisung für Bezeichnungsübereinstimmung undAWS WAF Labels auf Webanfragen.

So funktioniert die Geo-Match-Anweisung

AWS WAF Verwaltet mit der Geo-Match-Anweisung jede Webanfrage wie folgt:

  1. Ermittelt die Landes- und Regionalcodes der Anfrage — AWS WAF bestimmt das Land und die Region einer Anfrage anhand ihrer IP-Adresse. AWS WAF Verwendet standardmäßig die IP-Adresse des Ursprungs der Webanfrage. Sie können anweisen AWS WAF , eine IP-Adresse aus einem alternativen Anforderungsheader zu verwendenX-Forwarded-For, indem Sie beispielsweise die Konfiguration für weitergeleitete IP-Adressen in den Einstellungen für die Regelanweisung aktivieren.

    AWS WAF bestimmt den Speicherort von Anfragen mithilfe von MaxMind GeoIP-Datenbanken. MaxMind meldet eine sehr hohe Genauigkeit ihrer Daten auf Landesebene, obwohl die Genauigkeit je nach Faktoren wie Land und Art des geistigen Eigentums variiert. Weitere Informationen MaxMind dazu finden Sie unter MaxMind IP-Geolokalisierung. Wenn Sie der Meinung sind, dass einige der GeoIP-Daten falsch sind, können Sie unter MaxMind Correct GeoIP2 Data eine Korrekturanfrage an Maxmind stellen.

    AWS WAF verwendet die Alpha-2-Länder- und Regionscodes der Norm 3166 der Internationalen Organisation für Normung (ISO). Sie finden die Codes an den folgenden Stellen:

  2. Bestimmt das Landes- und Regionslabel, das der Anfrage hinzugefügt werden soll — Die Beschriftungen geben an, ob die Geo-Match-Anweisung die Quell-IP oder eine weitergeleitete IP-Konfiguration verwendet.

    • Herkunfts-IP

      Das Länderlabel istawswaf:clientip:geo:country:<ISO country code>. Beispiel für die Vereinigten Staaten:awswaf:clientip:geo:country:US.

      Die Bezeichnung der Region lautetawswaf:clientip:geo:region:<ISO country code>-<ISO region code>. Beispiel für Oregon in den Vereinigten Staaten:awswaf:clientip:geo:region:US-OR.

    • Weitergeleitete IP

      Das Länderlabel istawswaf:forwardedip:geo:country:<ISO country code>. Beispiel für die Vereinigten Staaten:awswaf:forwardedip:geo:country:US.

      Die Bezeichnung der Region lautetawswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>. Beispiel für Oregon in den Vereinigten Staaten:awswaf:forwardedip:geo:region:US-OR.

    Wenn der Landes- oder Regionalcode für die angegebene IP-Adresse einer Anfrage nicht verfügbar ist, AWS WAF wird er XX in den Labels anstelle des Werts verwendet. Das folgende Label bezieht sich beispielsweise auf eine Client-IP, deren Landescode nicht verfügbar ist: awswaf:clientip:geo:country:XX und das Folgende gilt für eine weitergeleitete IP, deren Land die Vereinigten Staaten ist, deren Regionalcode jedoch nicht verfügbar ist:awswaf:forwardedip:geo:region:US-XX.

  3. Prüft den Ländercode der Anfrage anhand der Regelkriterien

Die Geo-Match-Anweisung fügt allen Anfragen, die geprüft werden, Länder- und Regionskennzeichnungen hinzu, unabhängig davon, ob eine Übereinstimmung gefunden wird.

Anmerkung

AWS WAF fügt am Ende der Auswertung der Webanforderung einer Regel alle Bezeichnungen hinzu. Aus diesem Grund muss jeder Labelabgleich, den Sie mit den Beschriftungen aus einer Geo-Match-Anweisung verwenden, in einer anderen Regel definiert werden als die Regel, die die Geo-Match-Anweisung enthält.

Wenn Sie nur Regionswerte überprüfen möchten, können Sie eine Geo-Match-Regel mit Count Aktion und einer einzigen Übereinstimmung mit der Landesvorwahl schreiben, gefolgt von einer Label-Abgleichsregel für die Regions-Labels. Sie müssen einen Ländercode angeben, damit die Geo-Match-Regel ausgewertet werden kann, auch bei diesem Ansatz. Sie können die Anzahl von Protokollierungs- und Zählmetriken reduzieren, indem Sie ein Land angeben, von dem es sehr unwahrscheinlich ist, dass Besucher auf Ihre Website gelangen.

CloudFront Verteilungen und die Funktion zur CloudFront geografischen Beschränkung

Beachten Sie bei CloudFront Verteilungen, wenn Sie die CloudFront Funktion zur geografischen Beschränkung verwenden, dass die Funktion blockierte Anfragen nicht weiterleitet. AWS WAF Zulässige Anfragen werden weitergeleitet an AWS WAF. Wenn Sie Anfragen aufgrund der geografischen Lage und anderer Kriterien, die Sie angeben können, blockieren möchten AWS WAF, verwenden Sie die AWS WAF Geo-Match-Anweisung und nicht die Funktion zur CloudFront geografischen Beschränkung.

Eigenschaften der Geo-Match-Aussage

Verschachtelung – Sie können diesen Anweisungstyp verschachteln.

WCUs – 1 WCU.

Einstellungen — Diese Anweisung verwendet die folgenden Einstellungen:

  • Ländercodes — Eine Reihe von Ländercodes, die für einen Geo-Match verglichen werden können. Dabei muss es sich um zweistellige Ländercodes aus den ISO-Alpha-2-Ländercodes der internationalen Norm ISO 3166 handeln, zum Beispiel. ["US","CN"]

  • (Optional) Konfiguration für weitergeleitete IP-Adressen — AWS WAF Verwendet standardmäßig die IP-Adresse im Ursprung der Webanfrage, um das Herkunftsland zu ermitteln. Alternativ können Sie die Regel so konfigurieren, dass X-Forwarded-For stattdessen eine weitergeleitete IP in einem HTTP-Header verwendet wird. AWS WAF verwendet die erste IP-Adresse im Header. Mit dieser Konfiguration geben Sie auch ein Fallback-Verhalten an, das auf eine Webanfrage mit einer falsch formatierten IP-Adresse im Header angewendet wird. Das Fallback-Verhalten legt das Übereinstimmungsergebnis für die Anforderung fest, auf Übereinstimmgung oder keine Übereinstimmung. Weitere Informationen finden Sie unter Weitergeleitete IP-Adresse.

Wo finde ich diese Regelaussage
  • Rule Builder in der Konsole – Wählen Sie für Request option (Anforderungsoption) die Option Originates from a country in (Ursprung aus einem Land in) aus.

  • APIGeoMatchStatement

Beispiele

Sie können das Geo-Match-Statement verwenden, um Anfragen aus bestimmten Ländern oder Regionen zu verwalten. Wenn Sie beispielsweise Anfragen aus bestimmten Ländern blockieren möchten, aber dennoch Anfragen von einer bestimmten Gruppe von IP-Adressen in diesen Ländern zulassen möchten, könnten Sie eine Regel mit der Einstellung der Aktion auf Block und den folgenden verschachtelten Anweisungen erstellen, die in Pseudocode dargestellt werden:

  • AND-Anweisung

    • Geomatch-Anweisung, die die Länder auflistet, die Sie blockieren möchten

    • NOT-Anweisung

      • IP-Set-Anweisung, die die IP-Adressen angibt, die Sie zulassen möchten.

Oder wenn Sie einige Regionen in bestimmten Ländern blockieren, aber dennoch Anfragen aus anderen Regionen in diesen Ländern zulassen möchten, können Sie zunächst eine Geo-Match-Regel definieren, bei der die Aktion auf eingestellt ist. Count Definieren Sie dann eine Label-Match-Regel, die mit den hinzugefügten Geo-Match-Labels übereinstimmt und die Anfragen nach Bedarf bearbeitet.

Der folgende Pseudocode beschreibt ein Beispiel für diesen Ansatz:

  1. Geo-Match-Statement, in dem die Länder mit Regionen aufgeführt sind, die Sie blockieren möchten, deren Aktion jedoch auf Count gesetzt ist. Dadurch wird jede Webanfrage unabhängig vom Abgleichstatus gekennzeichnet und Sie erhalten außerdem Zählwerte für die Länder, für die Sie von Interesse sind.

  2. ANDAnweisung mit Block-Aktion

    • Label Match-Anweisung, die die Labels für die Länder angibt, die Sie blockieren möchten

    • NOT-Anweisung

      • Label Match-Anweisung, die die Bezeichnungen der Regionen in den Ländern angibt, die Sie durchlassen möchten

Die folgende JSON-Liste zeigt eine Implementierung der beiden Regeln, die im vorherigen Pseudocode beschrieben wurden. Diese Regeln blockieren den gesamten Verkehr aus den Vereinigten Staaten mit Ausnahme des Verkehrs aus Oregon und Washington. In der Geo-Match-Anweisung werden allen Anfragen, die geprüft werden, Länder- und Regionsetiketten hinzugefügt. Die Label-Match-Regel wird nach der Geo-Match-Regel ausgeführt, sodass sie mit den Land- und Regionsbezeichnungen abgeglichen werden kann, die die Geo-Match-Regel gerade hinzugefügt hat. Die Geo-Match-Anweisung verwendet eine weitergeleitete IP-Adresse, sodass beim Labelabgleich auch weitergeleitete IP-Labels angegeben werden.

{ "Name": "geoMatchForLabels", "Priority": 10, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "X-Forwarded-For", "FallbackBehavior": "MATCH" } } }, "Action": { "Count": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "geoMatchForLabels" } }, { "Name": "blockUSButNotOROrWA", "Priority": 11, "Statement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:forwardedip:geo:country:US" } }, { "NotStatement": { "Statement": { "OrStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:forwardedip:geo:region:US-OR" } }, { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:forwardedip:geo:region:US-WA" } } ] } } } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "blockUSButNotOROrWA" } }

Als weiteres Beispiel können Sie Geo-Matching mit ratenbasierten Regeln kombinieren, um Ressourcen für Benutzer in einem bestimmten Land oder einer bestimmten Region zu priorisieren. Sie erstellen für jede Geo-Match- oder Label-Match-Aussage, die Sie zur Differenzierung Ihrer Benutzer verwenden, eine andere ratenbasierte Abrechnung. Legen Sie ein höheres Ratenlimit für Benutzer im bevorzugten Land oder der bevorzugten Region und ein niedrigeres Ratenlimit für andere Benutzer fest.

Die folgende JSON-Liste zeigt eine Geo-Match-Regel, gefolgt von ratenbasierten Regeln, die den Traffic aus den USA begrenzen. Die Regeln ermöglichen es, dass Verkehr aus Oregon mit einer höheren Rate eingeht als Verkehr aus anderen Teilen des Landes.

{ "Name": "geoMatchForLabels", "Priority": 190, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ] } }, "Action": { "Count": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "geoMatchForLabels" } }, { "Name": "rateLimitOregon", "Priority": 195, "Statement": { "RateBasedStatement": { "Limit": 3000, "AggregateKeyType": "IP", "ScopeDownStatement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:clientip:geo:region:US-OR" } } } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "rateLimitOregon" } }, { "Name": "rateLimitUSNotOR", "Priority": 200, "Statement": { "RateBasedStatement": { "Limit": 100, "AggregateKeyType": "IP", "ScopeDownStatement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:clientip:geo:country:US" } }, { "NotStatement": { "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:clientip:geo:region:US-OR" } } } } ] } } } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "rateLimitUSNotOR" } }