建立 reCAPTCHA 防火牆政策規則

本文說明如何建立 reCAPTCHA 防火牆政策規則。

事前準備

您必須建立防火牆政策,為網站上要保護的每個網頁指定規則。您可以透過 reCAPTCHA for WAF 的一或多項功能建立防火牆政策。

在 reCAPTCHA 防火牆政策中,依預期優先順序新增規則。第一條規則的順序最高,你也可以使用 ReorderFirewallPoliciesRequest 重新排序優先順序。對於傳入要求,當政策條件與指定路徑相符時,WAF 服務供應商會實作定義的動作,且不會評估後續規則。

  1. 根據您選擇的功能,執行下列操作:
    • 找出要保護的路徑。
    • 找出允許、重新導向或封鎖存取權的條件。
    • 為規則設定優先順序。
  2. 瞭解防火牆政策元件及其屬性
  3. In the Google Cloud console, activate Cloud Shell.

    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.

  4. 如要覆寫 gcloud CLI,存取 reCAPTCHA API 的公開預先發布版,請執行下列指令:
        gcloud config set api_endpoint_overrides/recaptchaenterprise https://public-preview-recaptchaenterprise.googleapis.com/
        
  5. 如要建立 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:設定自訂標頭,並允許傳入的使用者要求繼續前往後端。後端隨後即可觸發自訂保護措施。這項操作不會終止程序。
    • CONDITIONCEL (一般運算語言) 條件運算式,用於指定 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"
       

後續步驟