使用要求記錄

Google Cloud Armor 會記錄安全性政策名稱、相符規則優先順序、相關聯的動作和相關資訊,做為外部應用程式負載平衡器和外部 Proxy 網路負載平衡器記錄的一部分。新後端服務的記錄功能預設為停用,因此您必須啟用記錄功能,才能記錄 Google Cloud Armor 的完整記錄資訊。

Google Cloud Armor 記錄檔是 Cloud Load Balancing 記錄檔的一部分。 也就是說,Google Cloud Armor 記錄檔的產生作業會受到負載平衡器設定的記錄檔取樣率影響。如果降低負載平衡器的取樣率,Google Cloud Armor 要求的記錄檔也會以該降低的取樣率取樣。此外,如果您使用跨專案服務參照,系統會在包含負載平衡器前端和網址對應的主專案或服務專案下產生記錄。因此,建議前端專案的管理員將讀取記錄和指標的權限授予後端專案的管理員。

透過記錄功能,您可以查看 Google Cloud Armor 安全性政策評估的每項要求,以及根據優先順序最高的相符規則採取的結果或動作。舉例來說,如要查看遭拒的要求,可以使用 jsonPayload.enforcedSecurityPolicy.outcome="DENY"jsonPayload.statusDetails="denied_by_security_policy" 等篩選器。

如要啟用外部應用程式負載平衡器的記錄功能,請參閱「全域外部應用程式負載平衡器的記錄與監控功能」頁面上的「記錄」。 如果是外部 Proxy 網路負載平衡器,可以使用 Google Cloud CLI 指令,如先前「外部應用程式負載平衡器的記錄與監控功能」頁面所列。您無法使用 Google Cloud 控制台,為外部 Proxy 網路負載平衡器啟用記錄功能。

此外,您也可以設定不同的記錄層級,評估安全性政策及其規則是否正常運作。如需完整資訊,請參閱「詳細記錄」。

安全性政策記錄項目

記錄檔探索工具中的下列記錄項目適用於 Google Cloud Armor 安全性政策和規則記錄。項目包含 jsonPayload 中的下列結構。HTTP 要求詳細資料會顯示在 httpRequest 訊息中。

  • statusDetails:回應代碼的文字說明。
    • redirected_by_security_policy:要求已由重新導向規則 (GOOGLE_RECAPTCHAEXTERNAL_302) 重新導向。
    • denied_by_security_policy:負載平衡器因 Google Cloud Armor 安全性政策而拒絕要求。
    • body_denied_by_security_policy:由於 Google Cloud Armor 安全性政策,負載平衡器拒絕了要求主體。
  • enforcedSecurityPolicy:強制執行的安全性政策規則。
    • name:安全性政策的名稱。
    • priority:安全性政策中相符規則的優先順序 (數值)。
    • adaptiveProtection:自動部署的 Adaptive Protection 規則相關資訊 (如適用)。
      • autoDeployAlertId:Adaptive Protection 偵測到的事件快訊 ID。
    • configuredAction:相符規則中已設定的動作名稱,例如 ALLOWDENYGOOGLE_RECAPTCHAEXTERNAL_302THROTTLE (適用於節流規則)、RATE_BASED_BAN (適用於以速率為準的禁止規則)。
    • rateLimitAction:當系統比對到節流規則或根據頻率封鎖規則時,速率限制動作的相關資訊。
      • key:速率限制鍵值 (最多 36 個位元組)。如果金鑰類型為 ALL,或金鑰類型為 HTTP-HEADERHTTP-COOKIE,且要求中沒有指定的標頭或 Cookie,則會省略這個欄位。
      • outcome:可能的值如下:
        • "RATE_LIMIT_THRESHOLD_CONFORM"如果低於設定的速率限制閾值。
        • "RATE_LIMIT_THRESHOLD_EXCEED" (如果超過設定的速率限制門檻)。
        • "BAN_THRESHOLD_EXCEED" 如果高於設定的禁止門檻。
    • outcome:執行設定動作的結果,例如 ACCEPTDENYREDIRECTEXEMPT
    • preconfiguredExprIds:觸發規則的所有預先設定網路應用程式防火牆規則運算式 ID。
    • threatIntelligence:如果適用,會顯示 Google Threat Intelligence 中相符的 IP 位址清單資訊。
      • categories:相符的 IP 位址清單名稱。
    • addressGroup:相符地址群組的相關資訊 (如適用)。
      • names:相符的地址群組名稱。
  • previewSecurityPolicy:如果要求符合專為預覽設定的規則,則會填入 (只有在預覽規則優先順序高於強制執行規則時才會提供)。
    • name:安全性政策的名稱
    • priority:安全性政策中相符規則的優先順序 (數值)。
    • configuredAction:相符規則中已設定的動作名稱,例如 ALLOWDENYGOOGLE_RECAPTCHAEXTERNAL_302THROTTLE (適用於節流規則)、RATE_BASED_BAN (適用於以速率為準的禁止規則)。
    • rateLimitAction:當系統比對到節流規則或根據頻率封鎖規則時,速率限制動作的相關資訊。
      • key:速率限制鍵值 (最多 36 個位元組)。如果金鑰類型為 ALL,或金鑰類型為 HTTP-HEADERHTTP-COOKIE,且要求中沒有指定的標頭或 Cookie,則會省略這個欄位。
      • outcome:可能的值如下:
        • "RATE_LIMIT_THRESHOLD_CONFORM"如果低於設定的速率限制閾值。
        • "RATE_LIMIT_THRESHOLD_EXCEED" (如果超過設定的速率限制門檻)。
        • "BAN_THRESHOLD_EXCEED" 如果高於設定的禁止門檻。
    • outcome:執行設定動作的結果,例如 ACCEPTDENYREDIRECTEXEMPT
    • preconfiguredExprIds:觸發規則的所有預先設定網路應用程式防火牆規則運算式 ID。
    • threatIntelligence:如果適用,則為來自威脅情報的相符 IP 位址清單相關資訊。
      • categories:相符的 IP 位址清單名稱。
    • addressGroup:相符地址群組的相關資訊 (如適用)。
      • names:相符的地址群組名稱。
  • enforcedEdgeSecurityPolicy:強制執行的 Edge 安全性政策規則。
    • name:安全性政策的名稱。
    • priority:安全性政策中相符規則的優先順序。
    • configuredAction:相符規則中已設定的動作名稱,例如 ALLOWDENY
    • outcome:執行設定動作的結果,例如 ACCEPTDENY
  • previewEdgeSecurityPolicy:如果要求符合專為預覽設定的邊緣安全政策規則,則會填入。只有在預覽規則優先順序高於強制執行規則時,才會出現 previewEdgeSecurityPolicy 記錄項目。
    • name:安全性政策的名稱。
    • priority:安全性政策中相符規則的優先順序 (數值)。
    • configuredAction:相符規則中已設定的動作名稱,例如 ALLOWDENY
    • outcome:執行設定動作的結果,例如 ACCEPTDENY

查看記錄

您只能在Google Cloud 控制台中查看 Google Cloud Armor 安全性政策的記錄。

主控台

  1. 在 Google Cloud 控制台中,前往「Google Cloud Armor policies」(Google Cloud Armor 政策)

    前往 Google Cloud Armor 政策

  2. 按一下「動作」

  3. 選取「查看記錄」

要求記錄資料

與 Google Cloud Armor 搭配使用時,jsonPayload 具有下列額外欄位:

  • securityPolicyRequestData:要求在安全政策處理期間的相關資料,無論最終符合哪一項規則。
    • recaptchaActionToken:與 reCAPTCHA 動作權杖相關的資料。
      • score:內嵌在 reCAPTCHA 動作權杖中的使用者合法性分數。只有在要求附加 reCAPTCHA 動作權杖,且系統根據安全性政策規則成功解碼時,才會顯示這項屬性。詳情請參閱「強制執行 reCAPTCHA 評估」。
    • recaptchaSessionToken:與 reCAPTCHA 工作階段權杖相關的資料。
      • score:內嵌在 reCAPTCHA 工作階段權杖中的使用者合法性分數。只有在要求附上 reCAPTCHA 工作階段權杖,且系統根據安全性政策規則成功解碼時,才會顯示這項資訊。
    • tlsJa4Fingerprint:如果用戶端使用 HTTPSHTTP/2HTTP/3 連線,則為 JA4 TTL/SSL 指紋。只有在指紋可用,且有安全性政策評估要求時才會顯示 (無論政策中的運算式是否與要求相符)。
    • tlsJa3Fingerprint:如果用戶端使用 HTTPSHTTP/2HTTP/3 連線,則為 JA3 TTL/SSL 指紋。只有在指紋可用,且有安全性政策評估要求時才會顯示 (無論政策中的運算式是否與要求相符)。

記錄範例

以下是封鎖要求的節流規則記錄詳細資料範例:

jsonPayload: {
 enforcedSecurityPolicy: {
  priority: 100
  name: "sample-prod-policy"
  configuredAction: "THROTTLE"
  outcome: "DENY"
  rateLimitAction: {
    key:"sample-key"
    outcome:"RATE_LIMIT_THRESHOLD_EXCEED"
  }
 }
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:16:48.185763Z"

以下是封鎖要求的速率型禁止規則記錄詳細資料範例:

jsonPayload: {
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 enforcedSecurityPolicy: {
  priority: 150
  name: "sample-prod-policy"
  outcome: "DENY"
  configuredAction: "RATE_BASED_BAN"
  rateLimitAction: {
    key:"sample-key"
    outcome:"BAN_THRESHOLD_EXCEED"
  }
 }
 statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:27:17.393244Z"

後續步驟