Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Istruzione regola di corrispondenza geografica
Questa sezione spiega cos'è una dichiarazione di corrispondenza geografica e come funziona.
Utilizza le istruzioni geografiche o geo match per gestire le richieste web in base al paese e alla regione di origine. Un'istruzione geo match aggiunge etichette alle richieste web che indicano il paese di origine e la regione di origine. Aggiunge queste etichette indipendentemente dal fatto che i criteri della dichiarazione corrispondano alla richiesta. Un'istruzione geo match esegue anche la corrispondenza con il paese di origine della richiesta.
Come usare l'istruzione geo match
È possibile utilizzare l'istruzione geo match per la corrispondenza di paesi o regioni, come segue:
-
Paese: puoi utilizzare una regola di geo match a sé stante per gestire le richieste in base esclusivamente al paese di origine. La dichiarazione delle regole corrisponde ai codici dei paesi. Puoi anche seguire una regola di corrispondenza geografica con una regola di corrispondenza delle etichette che corrisponde all'etichetta del paese di origine.
-
Regione: utilizza una regola di corrispondenza geografica seguita da una regola di corrispondenza delle etichette per gestire le richieste in base alla regione di origine. Non puoi utilizzare una regola di corrispondenza geografica da sola per la corrispondenza con i codici regionali.
Per informazioni sull'utilizzo delle regole di abbinamento delle etichette, consulta Dichiarazione della regola di corrispondenza delle etichette eUtilizzo delle etichette nelle richieste Web in AWS WAF.
Come funziona l'istruzione geo match
Con l'istruzione geo match, AWS WAF gestisce ogni richiesta web come segue:
-
Determina i codici nazionali e regionali della richiesta: AWS WAF determina il paese e la regione di una richiesta in base al relativo indirizzo IP. Per impostazione predefinita, AWS WAF utilizza l'indirizzo IP dell'origine della richiesta Web. Puoi istruire AWS WAF per utilizzare un indirizzo IP da un'intestazione di richiesta alternativa, ad esempio
X-Forwarded-For
abilitando la configurazione IP inoltrata nelle impostazioni della dichiarazione delle regole.AWS WAF determina la posizione delle richieste utilizzando i database MaxMind GeoIP. MaxMind riporta un'accuratezza molto elevata dei propri dati a livello nazionale, sebbene la precisione vari in base a fattori come il paese e il tipo di IP. Per ulteriori informazioni su MaxMind, consulta Geolocalizzazione MaxMind IP
. Se ritieni che uno qualsiasi dei dati GeoIP sia errato, puoi inviare una richiesta di correzione a Maxmind all'indirizzo MaxMind Correct Geo Data. IP2 AWS WAF utilizza i codici nazionali e regionali alpha-2 dello standard 3166 dell'Organizzazione internazionale per la standardizzazione (). ISO È possibile trovare i codici nelle seguenti posizioni:
Sul ISO sito Web, è possibile cercare i codici dei paesi su ISOOnline Browsing Platform (OBP)
. Su Wikipedia, i codici dei paesi sono elencati al numero ISO3166-2
. I codici regionali di un paese sono elencati in. URL
https://en.wikipedia.org/wiki/ISO_3166-2:
Ad esempio, le regioni degli Stati Uniti sono al ISO3166-2:US e per l'Ucraina al 3166-2:UA<ISO country code>
. ISO
-
Determina l'etichetta del paese e l'etichetta della regione da aggiungere alla richiesta: le etichette indicano se l'istruzione geo match utilizza l'IP di origine o una configurazione IP inoltrata.
IP di origine
L'etichetta del paese è
awswaf:clientip:geo:country:
. Esempio per gli Stati Uniti:<ISO country code>
awswaf:clientip:geo:country:US
.L'etichetta della regione è
awswaf:clientip:geo:region:
. Esempio per l'Oregon negli Stati Uniti:<ISO country code>
-<ISO region code>
awswaf:clientip:geo:region:US-OR
.IP inoltrato
L'etichetta del paese è.
awswaf:forwardedip:geo:country:
Esempio per gli Stati Uniti:<ISO country code>
awswaf:forwardedip:geo:country:US
.L'etichetta della regione è
awswaf:forwardedip:geo:region:
. Esempio per l'Oregon negli Stati Uniti:<ISO country code>
-<ISO region code>
awswaf:forwardedip:geo:region:US-OR
.
Se il codice del paese o della regione non è disponibile per l'indirizzo IP specificato di una richiesta, AWS WAF usi
XX
nelle etichette, al posto del valore. Ad esempio, la seguente etichetta è per un IP client il cui prefisso internazionale non è disponibile:awswaf:clientip:geo:country:XX
e la seguente è per un IP inoltrato il cui paese sono gli Stati Uniti, ma il cui codice regionale non è disponibile:.awswaf:forwardedip:geo:region:US-XX
-
Valuta il codice del paese della richiesta in base ai criteri della regola
L'istruzione geo match aggiunge etichette di paesi e regioni a tutte le richieste che esamina, indipendentemente dal fatto che trovi o meno una corrispondenza.
Nota
AWS WAF aggiunge qualsiasi etichetta alla fine della valutazione della richiesta web di una regola. Per questo motivo, qualsiasi corrispondenza di etichette utilizzata rispetto alle etichette di un'istruzione geo match deve essere definita in una regola separata dalla regola che contiene l'istruzione geo match.
Se vuoi controllare solo i valori della regione, puoi scrivere una regola di geo match con Count azione e con una singola corrispondenza del codice del paese, seguita da una regola di corrispondenza delle etichette per le etichette delle regioni. È necessario fornire un prefisso internazionale per la valutazione della regola di corrispondenza geografica, anche per questo approccio. Puoi ridurre la registrazione e contare le metriche specificando un paese che è molto improbabile che sia una fonte di traffico verso il tuo sito.
CloudFront distribuzioni e funzionalità di restrizione geografica CloudFront
Per CloudFront le distribuzioni, se utilizzi la funzionalità di restrizione CloudFront geografica, tieni presente che la funzionalità non inoltra le richieste bloccate a AWS WAF. Inoltra le richieste consentite a AWS WAF. Se desideri bloccare le richieste in base alla geografia e ad altri criteri che puoi specificare in AWS WAF, usa il AWS WAF dichiarazione geo match e non utilizzare la funzione di restrizione CloudFront geografica.
Caratteristiche della dichiarazione delle regole
Nestable: puoi annidare questo tipo di istruzione.
WCUs— 1WCU.
Impostazioni — Questa dichiarazione utilizza le seguenti impostazioni:
-
Prefissi nazionali: una serie di prefissi nazionali da confrontare per una corrispondenza geografica. Questi devono essere codici di paese a due caratteri tratti dai prefissi alfa-2 dello standard internazionale ISO 3166, ad esempio. ISO
["US","CN"]
-
(Facoltativo) Configurazione IP inoltrata: per impostazione predefinita, AWS WAF utilizza l'indirizzo IP nell'origine della richiesta Web per determinare il paese di origine. In alternativa, puoi configurare la regola per utilizzare un IP inoltrato in un'HTTPintestazione come invece.
X-Forwarded-For
AWS WAF utilizza il primo indirizzo IP nell'intestazione. Con questa configurazione, si specifica anche un comportamento di fallback da applicare a una richiesta Web con un indirizzo IP non valido nell'intestazione. Il comportamento di fallback imposta il risultato corrispondente per la richiesta, in modo che corrisponda o non corrisponda. Per ulteriori informazioni, consulta Utilizzo di indirizzi IP inoltrati.
Dove trovare questa dichiarazione sulle regole
-
Generatore di regole sulla console: per l'opzione Richiesta, scegli Proviene da un paese in.
-
API – GeoMatchStatement
Esempi
Puoi utilizzare l'istruzione geo match per gestire le richieste provenienti da paesi o regioni specifici. Ad esempio, se desideri bloccare le richieste provenienti da determinati paesi, ma consentire comunque le richieste provenienti da un set specifico di indirizzi IP in tali paesi, puoi creare una regola con l'azione impostata su Block e le seguenti istruzioni annidate, mostrate in pseudocodice:
-
AND Istruzione
-
Istruzione di corrispondenza geografica che elenca i paesi che desideri bloccare
-
NOT Istruzione
-
Istruzione del set di IP che specifica gli indirizzi IP che desideri consentire
-
-
Oppure, se desideri bloccare alcune regioni in determinati paesi, ma consentire comunque le richieste da altre regioni di quei paesi, puoi prima definire una regola di geo match con l'azione impostata su Count. Quindi, definisci una regola di corrispondenza delle etichette che corrisponda alle etichette geo match aggiunte e gestisca le richieste in base alle tue esigenze.
Il seguente pseudo codice descrive un esempio di questo approccio:
-
Dichiarazione Geo Match che elenca i paesi con regioni che desideri bloccare, ma con l'azione impostata su Count. Questa etichetta etichetta ogni richiesta web indipendentemente dallo stato della corrispondenza e fornisce anche le metriche di conteggio per i paesi di interesse.
-
AND
dichiarazione con azione di blocco-
Dichiarazione Label Match che specifica le etichette per i paesi che desideri bloccare
-
Dichiarazione
NOT
-
Dichiarazione Label Match che specifica le etichette delle regioni dei paesi di cui desideri consentire l'accesso
-
-
L'JSONelenco seguente mostra un'implementazione delle due regole descritte nello pseudocodice precedente. Queste regole bloccano tutto il traffico proveniente dagli Stati Uniti ad eccezione del traffico proveniente da Oregon e Washington. L'istruzione geo match aggiunge etichette di paesi e regioni a tutte le richieste che esamina. La regola label match segue la regola geo match, quindi può corrispondere alle etichette di paesi e regioni che la regola geo match ha appena aggiunto. L'istruzione geo match utilizza un indirizzo IP inoltrato, quindi l'etichetta matching specifica anche le etichette IP inoltrate.
{ "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" } }
Come altro esempio, puoi combinare la corrispondenza geografica con regole basate sulla tariffa per dare priorità alle risorse per gli utenti di un particolare paese o regione. Crei un'istruzione basata sulla tariffa diversa per ogni dichiarazione geo match o label match che utilizzi per differenziare i tuoi utenti. Imposta un limite di tariffa più alto per gli utenti nel paese o nella regione preferiti e imposta un limite di tariffa più basso per gli altri utenti.
L'JSONelenco seguente mostra una regola di geolocalizzazione seguita da regole basate sulla tariffa che limitano il tasso di traffico proveniente dagli Stati Uniti. Le regole consentono al traffico proveniente dall'Oregon di arrivare a un tasso superiore rispetto al traffico proveniente da qualsiasi altra parte del paese.
{ "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" } }