本文說明如何建立 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 服務供應商必須對傳入要求採取的動作。最多可包含一個終端動作,也就是強制回應的動作。指定下列其中一項動作: