Istruzione regola di corrispondenza geografica - AWS WAFAWS Firewall Manager, e AWS Shield Advanced

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

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 eAWS WAF etichette sulle richieste web.

Come funziona l'istruzione geo match

Con l'istruzione geo match, AWS WAF gestisce ogni richiesta web come segue:

  1. Determina i codici del paese e dell'area geografica 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. È possibile indicare di AWS WAF 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 GeoIP2 Data.

    AWS WAF utilizza i codici alfa-2 per paese e regione dello standard 3166 dell'Organizzazione internazionale per la standardizzazione (ISO). È possibile trovare i codici nelle seguenti posizioni:

  2. 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:<ISO country code>. Esempio per gli Stati Uniti:awswaf:clientip:geo:country:US.

      L'etichetta della regione èawswaf:clientip:geo:region:<ISO country code>-<ISO region code>. Esempio per l'Oregon negli Stati Uniti:awswaf:clientip:geo:region:US-OR.

    • IP inoltrato

      L'etichetta del paese è. awswaf:forwardedip:geo:country:<ISO country code> Esempio per gli Stati Uniti:awswaf:forwardedip:geo:country:US.

      L'etichetta della regione èawswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>. Esempio per l'Oregon negli Stati Uniti: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 utilizza 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

  3. 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 desideri controllare solo i valori delle regioni, puoi scrivere una regola di corrispondenza geografica 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 codice del paese per la valutazione della regola di geo match, 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 AWS WAF, usa l'istruzione AWS WAF geo match e non utilizzare la funzione di restrizione CloudFront geografica.

Caratteristiche dell'istruzione Geo Match

Nestable: puoi annidare questo tipo di istruzione.

WCU: 1 WCU.

Impostazioni: questa istruzione 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 codici ISO alfa-2 dei paesi dello standard internazionale ISO 3166, ad esempio,. ["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'intestazione HTTP 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 Indirizzo IP inoltrato.

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 uno specifico set di indirizzi IP in tali paesi, puoi creare una regola con l'azione impostata su Block e le seguenti istruzioni annidate, mostrate in pseudocodice:

  • Dichiarazione AND

    • Istruzione di corrispondenza geografica che elenca i paesi che desideri bloccare

    • Dichiarazione NOT

      • 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 di corrispondenza geografica aggiunte e gestisca le richieste in base alle tue esigenze.

Il seguente pseudo codice descrive un esempio di questo approccio:

  1. 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.

  2. ANDdichiarazione 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

Il seguente elenco JSON 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.

Il seguente elenco JSON mostra una regola di geo match seguita da regole basate sulla tariffa che limitano la velocità di traffico proveniente dagli Stati Uniti. Le regole consentono al traffico proveniente dall'Oregon di arrivare a un tasso più elevato 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" } }