整合 Cloud Armor 與 Google SecOps

本文說明如何將 Google Cloud Armor 與 Google Security Operations 整合。

用途

Cloud Armor 整合功能支援下列用途:

  • 自動封鎖威脅:在事件發生期間更新安全性政策規則,立即在 Google Cloud 邊緣封鎖惡意 IP 位址或範圍。

  • 安全性政策管理:列出、擷取及更新環境中的安全性政策和規則,確保 WAF 防護機制一致。

  • 動態 DDoS 緩解:透過程式輔助方式調整安全性政策設定,因應巨流量或通訊協定攻擊。

  • 鑑識稽核:擷取現有安全性政策的設定詳細資料,將邊緣保護措施與內部安全性警示建立關聯。

事前準備

在 Google SecOps 中設定 Cloud Armor 整合之前,請先完成下列必要步驟:

  1. 建立及設定自訂 Identity and Access Management 角色。

  2. 建立服務帳戶。

  3. 選擇並設定下列其中一種驗證方式:

    • 選項 1:Workload Identity (建議):這個方法會使用服務帳戶模擬功能,產生短期權杖。

    • 方法 2:服務帳戶 JSON 金鑰:這個方法會使用靜態、長期有效的密鑰檔案。

建立及設定 IAM 角色

如要為整合項目提供必要權限,請在 Google Cloud 專案中建立自訂角色:

  1. 前往 Google Cloud 控制台的「Roles」(角色)。

    前往「Roles」(角色)

  2. 按一下「add」「Create custom role」(建立自訂角色)。

  3. 提供標題、說明和專屬 ID。

  4. 將「Role Launch Stage」(角色推出階段) 設為「General Availability」(正式發布)。

  5. 為角色新增下列權限:

    • compute.backendBuckets.setSecurityPolicy
    • compute.backendServices.setSecurityPolicy
    • compute.regionBackendServices.setSecurityPolicy
    • compute.regionSecurityPolicies.create
    • compute.regionSecurityPolicies.get
    • compute.regionSecurityPolicies.list
    • compute.regionSecurityPolicies.update
    • compute.securityPolicies.create
    • compute.securityPolicies.get
    • compute.securityPolicies.list
    • compute.securityPolicies.update
  6. 點選「建立」。

建立服務帳戶

  1. 在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。

    前往「Service Accounts」(服務帳戶)

  2. 按一下「add」「Create service account」(建立服務帳戶)。

  3. 輸入名稱和說明,然後按一下「Create and continue」(建立並繼續)。

  4. 在「Grant this service account access to project」(將專案存取權授予這個服務帳戶) 步驟中,指派您建立的自訂 IAM 角色。

  5. 點按「Done」(完成)。記下服務帳戶的電子郵件地址。

設定 Workload Identity 憑證

建議使用 Workload Identity,因為這項功能會透過服務帳戶模擬,使用短期權杖。

找出專屬執行個體身分

建立連線時,必須授予 Google SecOps 執行個體權限,才能模擬服務帳戶。

  1. 在 Google SecOps 中,依序前往 「Content Hub」 >「Response Integrations」。

  2. 選取「Cloud Armor」整合,然後在 Workload Identity Email 輸入服務帳戶電子郵件地址。

  3. 依序點選「儲存」 > 「測試」。測試失敗。

  4. 按一下「Test」(測試) 旁的 close_small 按鈕,然後找出開頭為 gke-init-python@... 或 soar-python@... 的身分電子郵件。

  5. 複製這個專屬電子郵件地址。

在 Google Cloud中授權執行個體身分

  1. 在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。

    前往「Service Accounts」(服務帳戶)

  2. 選取目標服務帳戶,然後依序前往 「Permissions」(權限) >「Grant Access」(授予存取權)。

  3. 將不重複的電子郵件地址貼到「New principals」(新增主體) 欄位,並指派「Service Account Token Creator」(服務帳戶權杖建立者) 角色 (roles/iam.serviceAccountTokenCreator)。

設定 JSON 金鑰

靜態、長期有效的密鑰檔案需要手動輪替。只有在無法使用 Workload Identity 驗證時,才應採用這個方法。

  1. 在 Google Cloud 控制台中,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶),然後選取 服務帳戶。

    前往「Service Accounts」(服務帳戶)

  2. 前往「金鑰」分頁,依序點選「新增金鑰」 > 「建立新的金鑰」。

  3. 選取「JSON」,然後點選「建立」。金鑰檔案會下載到您的電腦。

整合參數

Cloud Armor 整合需要下列參數:

參數 說明
API Root

這是必填欄位。

Cloud Armor 服務的 API 根目錄。

預設值為 https://compute.googleapis.com/compute/v1/。

Project ID

選填。

Cloud Armor 的目標專案 ID。

如未提供任何值,整合作業會從服務帳戶憑證擷取 ID。

Workload Identity Email

選填。

服務帳戶的用戶端電子郵件地址。請設定這項參數,以便進行 Workload Identity 驗證。

如果設定,系統會忽略 User Service Account。

User Service Account

選填。

服務帳戶金鑰 JSON 檔案的完整內容。請設定這個參數,以便進行服務帳戶金鑰驗證。

如果設定,整合作業會忽略 Workload Identity Email。

Verify SSL

這是必填欄位。

如果選取,整合功能會在連線至 Google Cloud 伺服器時驗證 SSL 憑證。

(預設為啟用)。

如要瞭解如何在 Google SecOps 中設定整合功能,請參閱「設定整合功能」。

如有需要,您可以在後續階段進行變更。設定整合執行個體後,即可在應對手冊中使用。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。

動作

如要進一步瞭解動作,請參閱「 在工作區回應待處理動作」和「在案件中執行手動動作」。

為安全性政策新增規則

在 Cloud Armor 服務中,為安全性政策新增規則。

實體

這項動作不會對實體執行。

動作輸入內容

如要設定動作,請使用下列參數:

參數
Policy Name 必要

要新增規則的安全性政策名稱。

Region 選用

要新增規則的政策區域。

如未提供任何值,系統會將規則新增至全域層級安全性政策。

Rule JSON 必要

要新增規則的 JSON 定義。

如要進一步瞭解如何將規則新增至政策,請參閱「方法:securityPolicies.addRule」。

動作輸出內容

動作輸出類型
案件總覽附件 不適用
案件總覽連結 不適用
案件總覽表格 不適用
補充資訊表格 不適用
JSON 結果 可用
指令碼執行結果 可用
指令碼執行結果
指令碼結果名稱 值
is_success True 或 False
JSON 結果
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
案件總覽

這項動作會提供下列輸出訊息:

輸出訊息 訊息說明
Successfully added a new rule to the security policy! 動作成功。
Error executing action "Add a Rule to a Security Policy". Reason: ERROR_REASON

動作失敗。

請檢查伺服器連線、輸入參數、憑證、區域名稱、JSON 檔案內容或政策名稱。

建立安全性政策

在 Cloud Armor 服務中建立安全性政策。

實體

這項動作不會對實體執行。

動作輸入內容

如要設定動作,請使用下列參數:

參數
Region 選用

要建立政策的區域。

如未提供任何值,系統會建立全域層級安全性政策。

Policy JSON 必要

要建立的政策 JSON 定義。

如要進一步瞭解政策,請參閱「REST 資源:securityPolicies」。

動作輸出內容

動作輸出類型
案件總覽附件 不適用
案件總覽連結 不適用
案件總覽表格 不適用
補充資訊表格 不適用
JSON 結果 可用
指令碼執行結果 可用
指令碼執行結果
指令碼結果名稱 值
is_success True 或 False
JSON 結果
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
案件總覽

這項動作會提供下列輸出訊息:

輸出訊息 訊息說明
Successfully created a new security policy! 動作成功。
Error executing action "Create a Security Policy". Reason: ERROR_REASON

動作失敗。

請檢查伺服器連線、輸入參數、憑證、區域名稱或 JSON 檔案內容。

乒乓

使用整合設定頁面提供的參數,測試與 Cloud Armor 服務的連線能力。

實體

這項動作不會對實體執行。

動作輸入內容

不適用

動作輸出內容

動作輸出類型
案件總覽附件 不適用
案件總覽連結 不適用
案件總覽表格 不適用
補充資訊表格 不適用
JSON 結果 不適用
指令碼執行結果 可用
指令碼執行結果
指令碼結果名稱 值
is_success True 或 False
案件總覽

這項動作會提供下列輸出訊息:

輸出訊息 訊息說明
Successfully connected to the Google Cloud Armor service with the provided connection parameters! 動作成功。
Failed to connect to the Google Cloud Armor service! Error is ERROR_REASON

動作失敗。

請檢查伺服器連線、輸入參數或憑證。

更新安全性政策

更新 Cloud Armor 服務中的現有安全性政策。

這項動作無法更新政策中的規則。如要為相關政策新增規則,請使用「Add a Rule to a Security Policy」(在安全性政策中新增規則) 動作。

實體

這項動作不會對實體執行。

動作輸入內容

如要設定動作,請使用下列參數:

參數
Policy Name 必要

要新增規則的安全性政策名稱。

Region 選用

更新政策的區域。

如未提供任何值,系統會建立全域層級安全性政策。

Rule JSON 必要

要更新的政策 JSON 定義。

如要進一步瞭解政策更新,請參閱「方法:securityPolicies.patch 」。

您無法透過這項操作更新規則。 如要為政策新增規則,請使用「Add a Rule to a Security Policy」(為安全性政策新增規則) 動作。

動作輸出內容

動作輸出類型
案件總覽附件 不適用
案件總覽連結 不適用
案件總覽表格 不適用
補充資訊表格 不適用
JSON 結果 可用
指令碼執行結果 可用
指令碼執行結果
指令碼結果名稱 值
is_success True 或 False
JSON 結果
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
案件總覽

這項動作會提供下列輸出訊息:

輸出訊息 訊息說明
Successfully added comment to the identity protection detection with ID DETECTION_ID in CrowdStrike 動作成功。
Error executing action "Update a Security Policy". Reason: ERROR_REASON

動作失敗。

請檢查伺服器連線、輸入參數或憑證。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。