本頁面說明如何設定 POST 主體內容剖析功能。這項選用功能可搭配 Google Cloud Armor 安全性政策使用。
根據預設,Google Cloud Armor 會評估 POST 主體的完整內容,並以統一字串 (須遵守主體大小限制) 比對預先設定的網頁應用程式防火牆規則中的簽章。如果要求包含 JSON 等替代編碼,訊息的結構化元件 (非使用者指定) 可能會觸發與預先設定的 WAF 簽章相符的項目。為避免雜訊並降低誤判風險,如果受保護的工作負載符合下列條件,建議您設定 Google Cloud Armor,針對任何支援的內容類型啟用替代剖析方式:
- 提供 REST API
- 使用 GraphQL
- 接收任何含有 JSON 編碼內容的要求。
您可以針對每項安全性政策,啟用或停用 POST 要求 JSON 主體內容的剖析功能。如果 Content-Type
標頭設為 application/json
,請在 Google Cloud CLI 中使用 --json-parsing
旗標。
這項功能預設為停用。標記的語法如下:
--json-parsing=[STANDARD | STANDARD_WITH_GRAPHQL | DISABLED]
這個旗標僅適用於 gcloud compute security-policies update
。除非您在檔案中建立安全性政策,然後匯入該檔案,否則無法使用這個選項建立新的安全性政策。詳情請參閱「匯入安全性政策」。
使用 JSON 剖析
在下列範例中,您會設定自訂 Content-Type
標頭值清單,並套用替代剖析方式。這個範例會更新安全性政策 POLICY_NAME
,啟用 JSON 剖析功能,並指定內容類型 application/json
、application/vnd.api+json
、application/vnd.collection+json
和 application/vnd.hyper+json
:
gcloud compute security-policies update POLICY_NAME \ --json-parsing STANDARD \ --json-custom-content-types "application/json,application/vnd.api+json,application/vnd.collection+json,application/vnd.hyper+json"
使用 GraphQL 剖析
如要設定 GraphQL 剖析功能,請更新安全性政策,將 --json-parsing
標記設為 STANDARD_WITH_GRAPHQL
:
gcloud compute security-policies update POLICY_NAME \ --json-parsing STANDARD_WITH_GRAPHQL
記錄
系統會透過 Cloud Logging 記錄每個經過 Google Cloud Armor 安全性政策評估的 HTTP(S) 要求。記錄檔會提供詳細資料,例如套用的安全性政策名稱、相符的規則,以及是否強制執行規則。系統預設會停用新後端服務資源的記錄要求。如要記錄 Google Cloud Armor 要求,您必須為受安全性政策保護的每個後端服務啟用 HTTP(S) 記錄設定。 詳情請參閱「全域外部應用程式負載平衡器記錄與監控」。
限制
設定 JSON 剖析時,請注意下列限制:
Google Cloud Armor 預設會檢查前 8 KB 的
HTTP POST
主體。您可以將這個限制設為 8 KB、16 KB、32 KB、48 KB 或 64 KB。如果 JSON 內容超過設定的檢查上限,Google Cloud Armor 會將 JSON 剖析至上限,然後由任何預先設定的 WAF 規則檢查。如要進一步瞭解如何在使用預先設定的網頁應用程式防火牆規則時,設定要求主體的檢查限制,請參閱「POST 和 PATCH 主體檢查限制」。
如果 JSON 剖析器未傳回任何結果,系統可能會嘗試剖析 URI。如果 URI 剖析器未傳回任何名稱/值參數,或只傳回部分名稱/值參數,系統可能會將整個或部分字串視為檢查的參數名稱。