Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Instrucción de regla de coincidencia geográfica
En esta sección se explica qué es una declaración de coincidencia geográfica y cómo funciona.
Utilice instrucciones de concordancia geográfica para administrar las solicitudes web en función del país y la región de origen. Una instrucción de concordancia geográfica agrega etiquetas a las solicitudes web que indican el país de origen y la región de origen. Añade estas etiquetas independientemente de si los criterios de la instrucción coinciden con los de la solicitud. Una instrucción de coincidencia geográfica también realiza una comparación con el país de origen de la solicitud.
¿Cómo usar la instrucción de coincidencia geográfica
Puede usar la instrucción de coincidencia geográfica para la coincidencia de países o regiones, de la siguiente manera:
-
País: puede usar una regla de coincidencia geográfica por sí sola para gestionar las solicitudes en función únicamente de su país de origen. La instrucción de regla coincide con los códigos de país. También puede seguir una regla de coincidencia geográfica con una regla de coincidencia de etiquetas que coincida con la etiqueta del país de origen.
-
Región: use una regla de coincidencia geográfica seguida de una regla de coincidencia de etiquetas para gestionar las solicitudes en función de su región de origen. No puede usar una regla de coincidencia geográfica por sí sola para hacer coincidir los códigos de región.
Para obtener información sobre el uso de las reglas de coincidencia de etiquetas, consulte Instrucción de regla de coincidencia de etiquetas y Uso de etiquetas en las solicitudes web en AWS WAF.
Cómo funciona la instrucción de coincidencia geográfica
Con la declaración de coincidencia geográfica, AWS WAF gestiona cada solicitud web de la siguiente manera:
-
Determina los códigos de país y región de la solicitud: AWS WAF determina el país y la región de una solicitud en función de su dirección IP. De forma predeterminada, AWS WAF utiliza la dirección IP del origen de la solicitud web. Puedes dar instrucciones AWS WAF para usar una dirección IP de un encabezado de solicitud alternativo, por ejemplo
X-Forwarded-For
, habilitando la configuración de IP reenviada en la configuración de la declaración de reglas.AWS WAF determina la ubicación de las solicitudes mediante bases de datos de MaxMind GeoIP. MaxMind informa de una precisión muy alta de sus datos a nivel de país, aunque la precisión varía según factores como el país y el tipo de IP. Para obtener más información MaxMind, consulte Geolocalización MaxMind IP
. Si cree que alguno de los datos de GeoIP es incorrecto, puede enviar una solicitud de corrección a Maxmind en MaxMind Correct Geo Data. IP2 AWS WAF utiliza los códigos de país y región alfa-2 del estándar 3166 de la Organización Internacional de Normalización ()ISO. Puede encontrar los códigos en las siguientes ubicaciones:
En el ISO sitio web, puede buscar los códigos de país en la plataforma de navegación en ISO línea
(). OBP En Wikipedia, los códigos de los países aparecen en ISO3166-2
. Los códigos de región de un país aparecen en. URL
https://en.wikipedia.org/wiki/ISO_3166-2:
Por ejemplo, las regiones de Estados Unidos están en ISO3166-2:US y en Ucrania están en 3166-2:UA<ISO country code>
. ISO
-
Determina la etiqueta de país y la etiqueta de región que se van a agregar a la solicitud: las etiquetas indican si la instrucción de coincidencia geográfica utiliza la configuración de IP de origen o de IP reenviada.
ID de origen
La etiqueta del país es
awswaf:clientip:geo:country:
. Ejemplo para los Estados Unidos:<ISO country code>
awswaf:clientip:geo:country:US
.La etiqueta de la región es
awswaf:clientip:geo:region:
. Ejemplo para los Oregón, en Estados Unidos:<ISO country code>
-<ISO region code>
awswaf:clientip:geo:region:US-OR
.IP reenviada
La etiqueta del país es
awswaf:forwardedip:geo:country:
. Ejemplo para los Estados Unidos:<ISO country code>
awswaf:forwardedip:geo:country:US
.La etiqueta de la región es
awswaf:forwardedip:geo:region:
. Ejemplo para los Oregón, en Estados Unidos:<ISO country code>
-<ISO region code>
awswaf:forwardedip:geo:region:US-OR
.
Si el código de país o región no está disponible para la dirección IP especificada de una solicitud, AWS WAF usa
XX
en las etiquetas, en lugar del valor. Por ejemplo, la siguiente etiqueta es para la IP de un cliente cuyo código de país no está disponible:awswaf:clientip:geo:country:XX
y la siguiente es para una IP reenviada cuyo país es Estados Unidos, pero cuyo código de región no está disponible:awswaf:forwardedip:geo:region:US-XX
. -
Evalúa el código de país de la solicitud según los criterios de la regla
La instrucción de coincidencia geográfica agrega etiquetas de país y región a todas las solicitudes que inspecciona, independientemente de si encuentra o no una coincidencia.
nota
AWS WAF añade cualquier etiqueta al final de la evaluación de la solicitud web de una regla. Por este motivo, cualquier coincidencia de etiquetas que utilice con las etiquetas de una instrucción de coincidencia geográfica debe definirse en una regla independiente de la regla que contiene la instrucción de coincidencia geográfica.
Si desea inspeccionar solo los valores de las regiones, puede escribir una regla de coincidencia geográfica con Count acción y con una única coincidencia de códigos de país, seguida de una regla de coincidencia de etiquetas para las etiquetas de las regiones. Debe proporcionar un código de país para que la regla de coincidencia geográfica lo evalúe, incluso para este enfoque. Puede reducir el registro y las métricas de recuento especificando un país que muy probablemente no sea un origen de tráfico para su sitio.
CloudFront distribuciones y la función de restricción CloudFront geográfica
En el caso de CloudFront las distribuciones, si utilizas la función de restricción CloudFront geográfica, ten en cuenta que la función no reenvía las solicitudes bloqueadas a AWS WAF. Reenvía las solicitudes permitidas a AWS WAF. Si quieres bloquear las solicitudes en función de la zona geográfica y de otros criterios que puedes especificar en AWS WAF, utilice la AWS WAF sentencia de coincidencia geográfica y no utilice la función de restricción CloudFront geográfica.
Características de la declaración de reglas
Se puede anidar: puede anidar este tipo de instrucción.
WCUs— 1WCU.
Configuración: esta instrucción utiliza la siguiente configuración:
-
Códigos de país: conjunto de códigos de países que se pueden comparar para obtener una coincidencia geográfica. Deben ser códigos de país de dos caracteres de los códigos de país ISO alfa-2 de la norma internacional ISO 3166, por ejemplo.
["US","CN"]
-
(Opcional) Configuración de IP reenviada: de forma predeterminada, AWS WAF utiliza la dirección IP del origen de la solicitud web para determinar el país de origen. Como alternativa, puedes configurar la regla para que, en su
X-Forwarded-For
lugar, utilice una IP reenviada en un HTTP encabezado. AWS WAF usa la primera dirección IP del encabezado. Con esta configuración, también se especifica un comportamiento alternativo para aplicarlo a una solicitud web con una dirección IP con un formato incorrecto en el encabezado. El comportamiento alternativo establece que el resultado de la solicitud coincide o no coincide. Para obtener más información, consulte Uso de direcciones IP reenviadas.
Dónde encontrar esta instrucción de regla
-
Generador de reglas en la consola: en Opción de la solicitud, elija Se origina desde un país de.
-
API – GeoMatchStatement
Ejemplos
Puede utilizar la instrucción de coincidencia geográfica para administrar las solicitudes de países o regiones específicos. Por ejemplo, si quieres bloquear las solicitudes de determinados países, pero aun así permitir las solicitudes de un conjunto específico de direcciones IP en esos países, puedes crear una regla con la acción establecida en Block y las siguientes sentencias anidadas, que se muestran en pseudocódigo:
-
AND statement
-
Instrucción de coincidencia geográfica en la que se enumeran los países que desea bloquear
-
NOT statement
-
Instrucción de conjuntos de IP que especifica las direcciones IP que desea permitir
-
-
O bien, si quieres bloquear algunas regiones de determinados países y, al mismo tiempo, permitir solicitudes de otras regiones de esos países, puedes definir primero una regla de coincidencia geográfica con la acción establecida en Count. A continuación, defina una regla de coincidencia de etiquetas que coincida con las etiquetas de coincidencia geográfica añadidas y gestione las solicitudes según sea necesario.
El siguiente pseudocódigo describe un ejemplo de este enfoque:
-
Instrucción de coincidencia geográfica en la que se enumeran los países cuyas regiones quiere bloquear, pero con la acción configurada como Recuento. Esto etiqueta todas las solicitudes web, independientemente del estado de coincidencia, y también proporciona métricas de recuento de los países de interés.
-
Instrucción
AND
con acción de bloqueo-
Instrucción de concordancia de etiquetas que especifica las etiquetas de los países que desea bloquear
-
NOT
instrucción-
Instrucción de coincidencia de etiquetas que especifica las etiquetas de las regiones de los países por los que quiere permitir el paso
-
-
La siguiente JSON lista muestra una implementación de las dos reglas descritas en el pseudocódigo anterior. Estas reglas bloquean todo el tráfico procedente de los Estados Unidos, excepto el tráfico procedente de Oregón y Washington. La instrucción de coincidencia geográfica agrega etiquetas de país y región a todas las solicitudes que inspecciona. La regla de coincidencia de etiquetas se ejecuta después de la regla de coincidencia geográfica, por lo que puede coincidir con las etiquetas de país y región que la regla de coincidencia geográfica acaba de agregar. La instrucción de coincidencia geográfica utiliza una dirección IP reenviada, por lo que la coincidencia de etiquetas también especifica las etiquetas de IP reenviadas.
{ "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" } }
Como otro ejemplo, puede combinar la coincidencia geográfica con reglas basadas en tasas para priorizar los recursos para los usuarios de un país o región en particular. Puede crear una instrucción basada en tasas diferente para cada instrucción de coincidencia geográfica o de etiquetas que utilice para diferenciar a sus usuarios. Establezca un límite de frecuencia mayor para los usuarios del país o región preferido y un límite de frecuencia menor para otros usuarios.
La siguiente JSON lista muestra una regla de coincidencia geográfica seguida de reglas basadas en tarifas que limitan la velocidad del tráfico procedente de los Estados Unidos. Las normas permiten que el tráfico procedente de Oregón entre a una tasa mayor que el tráfico procedente de cualquier otro lugar del país.
{ "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" } }