如何使用 AWS WAF 允许或阻止来自特定国家/地区或地理位置的请求?
简短描述
使用地理匹配规则语句阻止特定国家/地区访问您的网站,或仅允许特定国家/地区访问您的网站。
要根据来源国允许某些 Web 请求,请为要允许的国家/地区添加地理匹配规则语句。然后,为要阻止的国家/地区添加第二个地理匹配规则语句。
**注意:**如果您使用 CloudFront 地理限制阻止某个国家/地区访问您的内容,则该国家/地区的任何请求都会被阻止,不会转发给 AWS WAF。如果您想要使用其他 AWS WAF 标准允许或阻止基于地理位置的请求,请改用 AWS WAF 地理匹配规则语句。
解决方法
要使用 AWS WAF 允许或阻止来自特定国家/地区或地理位置的请求,请执行以下操作:
1. 打开 AWS WAF 控制台。
2. 在导航窗格中的 AWS WAF 下,选择 Web ACL。
3. 对于 Region(区域),选择您创建 Web ACL 的 AWS 区域。
**注意:**如果您的 Web ACL 是为 Amazon CloudFront 设置的,请选择 Global(全球)。
4. 选择您的 Web ACL。
5. 选择 Rules(规则),然后选择 Add Rules, Add my own rules and rule groups(添加规则、添加我自己的规则和规则组)。
6. 对于 Rule Builder(规则生成器),为您的规则输入一个名称。
**注意:**名称必须包含 1 到 128 个有效字符,例如 A 到 Z、a 到 z、0 到 9、-(连字符)和 _(下划线)。
7. 对于 If a request(如果是请求),选择 matches the statement(与语句匹配)。
8. 对于 Choose an inspection(选择检验)选项,请选择 Originates from a country(来源于某个国家/地区)。
9. 对于 Choose country codes(选择国家/地区代码),请选择要检查请求的国家/地区。
10. (可选)选择 Source IP address(源 IP 地址)或** IP address in header**(标头中的 IP 地址),用于确定来源国。
**警告:**当请求通过 CDN 或其他代理网络路由时,源 IP 地址将标识代理。然后,原始 IP 地址将在
标头中发送。使用 IP address in header(标头中的 IP 地址)要注意,因为代理可能不会一致地处理标头,并且可能会修改标头以绕过检查。
11. 对于 Action(操作),请选择 Allow(允许)以允许请求或 Block(阻止)以阻止来自步骤 9 中所选国家/地区的请求。
**注意:**选择阻止或允许请求时,请考虑为 Web ACL 设置的默认操作。如果默认操作为 Block(阻止),则来自所有国家/地区的请求都将被阻止,但此步骤中明确允许的国家/地区除外。这是管理允许的地理请求的最简单配置,但是此配置不提供检查请求内容的机会。
如果默认操作为Allow(允许),那么您可以创建一个否定(NOT)规则来指定不得阻止的国家/地区。对此规则的操作必须为阻止。这创建了一条规则,该规则不会阻止来自您想要允许的国家/地区的请求,但也不会明确允许这些请求。请求必须等待通过其他用户定义的规则(例如检查恶意内容),然后才能被默认操作允许。这是一种更稳健的配置。
12. 选择 Add Rule(添加规则)。
13. (可选)对于 Set Rule Priority(设置规则优先级),请选择您的规则,然后移动其优先级。规则将按照出现的顺序进行处理。
有关更多信息,请参阅 Web ACL 中规则和规则组的处理顺序。
14. 选择 Save(保存)。