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
In diesem Abschnitt wird erklärt, was eine geografische Übereinstimmungsaussage ist und wie sie funktioniert.
Verwenden Sie geografische Angaben oder Geo-Match-Angaben, um Webanfragen nach Herkunftsland und -region 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 Regionalcodes verwenden.
Informationen zur Verwendung von Label-Abgleichsregeln finden Sie unter Regelanweisung für Bezeichnungsübereinstimmung undVerwenden von Labels für Webanfragen in AWS WAF.
So funktioniert die Geo-Match-Anweisung
Mit der Geo-Match-Erklärung AWS WAF verwaltet jede Webanfrage wie folgt:
-
Ermittelt die Landes- und Regionalcodes der Anfrage — AWS WAF bestimmt das Land und die Region einer Anfrage anhand ihrer IP-Adresse. Standardmäßig AWS WAF verwendet die IP-Adresse des Ursprungs der Webanfrage. Sie können anweisen AWS WAF um eine IP-Adresse aus einem alternativen Anforderungsheader zu verwenden
X-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 Geo IP2 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:
Auf der ISO Website können Sie auf der ISOOnline-Browserplattform (OBP)
nach den Ländercodes suchen. Auf Wikipedia sind die Ländervorwahlen unter ISO3166-2
aufgeführt. Die Regionalcodes für ein Land sind unter aufgeführt. URL
https://en.wikipedia.org/wiki/ISO_3166-2:
Beispielsweise liegen die Regionen für die Vereinigten Staaten bei ISO3166-2:USA<ISO country code>
und für die Ukraine bei 3166-2:UA. ISO
-
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 ist
awswaf:clientip:geo:country:
. Beispiel für die Vereinigten Staaten:<ISO country code>
awswaf:clientip:geo:country:US
.Die Bezeichnung der Region lautet
awswaf:clientip:geo:region:
. Beispiel für Oregon in den Vereinigten Staaten:<ISO country code>
-<ISO region code>
awswaf:clientip:geo:region:US-OR
.Weitergeleitete IP
Das Länderlabel ist
awswaf:forwardedip:geo:country:
. Beispiel für die Vereinigten Staaten:<ISO country code>
awswaf:forwardedip:geo:country:US
.Die Bezeichnung der Region lautet
awswaf:forwardedip:geo:region:
. Beispiel für Oregon in den Vereinigten Staaten:<ISO country code>
-<ISO region code>
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 verwendet
XX
in den Beschriftungen anstelle des Werts. Die folgende Bezeichnung bezieht sich beispielsweise auf eine Client-IP, deren Landesvorwahl nicht verfügbar ist:awswaf:clientip:geo:country:XX
und die folgende Bezeichnung bezieht sich auf eine weitergeleitete IP, deren Land die Vereinigten Staaten ist, deren Regionalcode jedoch nicht verfügbar ist:awswaf:forwardedip:geo:region:US-XX
. -
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 schreiben mit Count Aktion und mit einer einzigen Übereinstimmung mit den Ländercodes, gefolgt von einer Regel zur Label-Zuordnung 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
Wenn Sie bei CloudFront Verteilungen die Funktion zur CloudFront geografischen Beschränkung verwenden, beachten Sie, dass die Funktion blockierte Anfragen nicht weiterleitet an AWS WAF. Zulässige Anfragen werden weitergeleitet an AWS WAF. Wenn Sie Anfragen auf der Grundlage der geografischen Lage und anderer Kriterien blockieren möchten, die Sie unter angeben können AWS WAF, verwenden Sie AWS WAF Geo-Match-Statement und verwenden Sie nicht die CloudFront Geo-Restriktionsfunktion.
Eigenschaften der Regelaussage
Verschachtelung – Sie können diesen Anweisungstyp verschachteln.
WCUs— WCU 1.
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 des internationalen Standards ISO 3166 handeln, zum Beispiel.
["US","CN"]
-
(Optional) Konfiguration für weitergeleitete IP-Adressen — Standardmäßig AWS WAF verwendet 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 Verwendung weitergeleiteter IP-Adressen.
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.
-
API – GeoMatchStatement
Beispiele
Sie können die Geo-Match-Erklärung 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önnen Sie eine Regel mit folgender Aktion erstellen Block und die folgenden verschachtelten Anweisungen, dargestellt in Pseudocode:
-
AND statement
-
Geomatch-Anweisung, die die Länder auflistet, die Sie blockieren möchten
-
NOT statement
-
IP-Set-Anweisung, die die IP-Adressen angibt, die Sie zulassen möchten.
-
-
Oder wenn Sie einige Regionen in bestimmten Ländern blockieren möchten, 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 anschließend 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:
-
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.
-
AND
Anweisung 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" } }