本文档介绍了如何创建 reCAPTCHA 防火墙政策规则。
准备工作
您必须创建防火墙政策,为网站上要保护的每个网页指定规则。您可以创建包含 reCAPTCHA for WAF 的一项或多项功能的防火墙政策。
在 reCAPTCHA 防火墙政策中,按预期优先级顺序添加规则。第一条规则的顺序最高。您还可以使用 ReorderFirewallPoliciesRequest
重新排序优先级。
对于传入的请求,当政策条件与指定路径匹配时,WAF 服务提供商会实现已定义的操作,并且不会评估后续规则。
- 根据您选择的功能,执行以下操作:
- 确定要保护的路径。
- 确定允许、重定向或阻止访问的条件。
- 确定规则的优先次序。
- 了解防火墙政策组件及其属性。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- 如需替换 gcloud CLI 以访问 reCAPTCHA API 的公开预览版,请运行以下命令:
gcloud config set api_endpoint_overrides/recaptchaenterprise https://public-preview-recaptchaenterprise.googleapis.com/
- 如需创建 reCAPTCHA 防火墙政策,请使用 gcloud recaptcha firewall-policies create 命令:
在 reCAPTCHA 防火墙政策中,按预期优先级顺序添加规则。您必须先添加优先级最高的规则。对于传入的请求,当政策条件与指定路径匹配时,WAF 服务提供商会实现已定义的操作,并且不会评估后续规则。默认规则是允许访问。
gcloud recaptcha firewall-policies create \ --actions=ACTION \ --condition=CONDITION \ --description=DESCRIPTION \ --path=PATH
请提供以下值:
- ACTION:WAF 服务提供商必须针对传入请求采取的操作。它可以包含最多一个终端操作,即强制执行响应的操作。
指定以下操作之一:
allow
:允许访问所请求的网页。这是一项终止操作。block
:拒绝访问所请求的网页。这是一项终止操作。redirect
:将传入的用户请求重定向到 reCAPTCHA 验证页面。 这是一项终止操作。substitute
:针对欺诈性用户请求提供不同于所请求页面的其他页面。这是一项终止操作。set_header
:设置自定义标头,并允许传入的用户请求继续发送到后端。然后,后端可以触发自定义保护。此操作为非终止操作。
- CONDITION:一个 CEL(通用表达式语言)条件表达式,用于指定 reCAPTCHA 防火墙政策是否适用于传入的用户请求。如果此条件的评估结果为 true,且所请求的路径与路径模式匹配,则 WAF 服务提供商会执行关联的操作。创建时,系统会检查条件字符串的 CEL 语法是否正确。如需详细了解语言定义,请参阅 CEL 语言定义。
- DESCRIPTION:reCAPTCHA 防火墙政策旨在实现的目标的说明。说明不得超过 256 个 UTF-8 字符。
- PATH:reCAPTCHA 防火墙政策适用的路径。 必须以 glob 模式指定。如需详细了解 glob,请参阅手册页面。
成功执行该命令后,系统会显示类似于以下内容的输出:
Created [100].
以下示例创建了一个 reCAPTCHA 防火墙政策,用于在得分低于 0.1 时阻止目标为
/example/page.html
的流量。gcloud recaptcha firewall-policies create \ --description="example policy" \ --path="/example/page.html" \ --condition="recaptcha.score < 0.1" \ --actions="block"
- ACTION:WAF 服务提供商必须针对传入请求采取的操作。它可以包含最多一个终端操作,即强制执行响应的操作。
指定以下操作之一: