修正 Security Command Center 錯誤

本頁面提供參考指南和技術清單,協助您修正 SCC 錯誤。

事前準備

您必須具備適當的 Identity and Access Management (IAM) 角色,才能查看或編輯調查結果,以及存取或修改 Google Cloud 資源。如果在Google Cloud 控制台中存取 Security Command Center 時發生權限錯誤,請向管理員尋求協助。如要瞭解角色,請參閱存取權控管。如要解決資源錯誤,請參閱受影響產品的說明文件。

在 Google Cloud 控制台中查看發現項目

SCC 錯誤是設定錯誤,會導致 Security Command Center 無法正常運作。Security Command Center 來源會產生這些發現。

只要為機構或專案設定 Security Command Center,系統就會在偵測到錯誤時產生錯誤發現項目。您可以在 Google Cloud 控制台中查看 SCC 錯誤。

請按照下列步驟,在 Google Cloud 控制台中查看結果:

標準或進階

  1. 在 Google Cloud 控制台中,前往 Security Command Center 的「發現項目」頁面。

    前往「發現項目」

  2. 選取 Google Cloud 專案或機構。
  3. 在「快速篩選器」部分的「來源顯示名稱」子部分中,選取「Security Command Center」。發現項目查詢結果會更新,只顯示來自這個來源的發現項目。
  4. 如要查看特定發現項目的詳細資料,請按一下「類別」欄中的發現項目名稱。 系統會開啟發現項目的詳細資料面板,並顯示「摘要」分頁。
  5. 在「摘要」分頁中,查看發現項目的詳細資料,包括偵測到的內容、受影響的資源,以及 (如有) 可採取哪些步驟來修正發現項目。
  6. 選用:如要查看調查結果的完整 JSON 定義,請按一下「JSON」JSON分頁。

Enterprise

  1. 在 Google Cloud 控制台中,前往 Security Command Center 的「發現項目」頁面。

    前往 Enterprise 層級的「發現項目」

  2. 選取 Google Cloud 機構。
  3. 在「匯總」部分中,按一下展開「來源顯示名稱」子部分。
  4. 選取「Security Command Center」。發現項目查詢結果會更新,只顯示來自這個來源的發現項目。
  5. 如要查看特定發現項目的詳細資料,請按一下「類別」欄中的發現項目名稱。 系統會開啟發現項目的詳細資料面板,並顯示「摘要」分頁。
  6. 在「摘要」分頁中,查看發現項目的詳細資料,包括偵測到的內容、受影響的資源,以及 (如有) 可採取哪些步驟來修正發現項目。
  7. 選用:如要查看調查結果的完整 JSON 定義,請按一下「JSON」JSON分頁。

修正錯誤後停用 SCC 錯誤

修正 SCC error 發現項目後,Security Command Center 會在下次掃描時,自動將該發現項目的狀態設為「已修正」INACTIVE。Security Command Center 將已修正的發現項目狀態設為 INACTIVE 的時間,取決於您修正發現項目的時間,以及偵測到錯誤的掃描作業排程。

如要瞭解 SCC error 發現項目的掃描頻率,請參閱「錯誤偵測器」中的發現項目摘要。

修正 SCC 錯誤

本節包含所有 SCC 錯誤的修正說明。

API disabled

API 中的類別名稱API_DISABLED

專案已停用下列其中一項服務:

停用的服務無法產生調查結果。

如要修正這項發現,請按照下列步驟操作:

  1. 查看調查結果,判斷停用的 API。
  2. 啟用 API:

瞭解這類發現項目支援的資產和掃描設定

APS no resource value configs match any resources

API 中的類別名稱APS_NO_RESOURCE_VALUE_CONFIGS_MATCH_ANY_RESOURCES

資源值設定是為攻擊路徑模擬作業定義,但與環境中的任何資源例項都不相符。模擬作業改用預設的高價值資源集。

資源值設定可能因下列原因而與任何資源不符,這些原因會顯示在Google Cloud 控制台的發現項目說明中:

  • 沒有任何資源值設定與資源例項相符。
  • 指定 NONE 的一或多項資源價值設定會覆寫所有其他有效設定。
  • 所有已定義的資源值設定都會指定 NONE 值。

如要修正這項發現,請按照下列步驟操作:

  1. 前往 Security Command Center「設定」中的「攻擊路徑模擬」頁面:

    前往「設定」

  2. 選取您的機構。「攻擊路徑模擬」頁面隨即開啟,並顯示現有設定。

  3. 在「資源價值設定」清單的「資源價值」欄中,檢查 None 的值。

  4. 針對指定 None 的任何設定,請執行下列操作:

    1. 按一下任何資源值設定的名稱,即可顯示設定規格。
    2. 如有需要,請編輯資源屬性規格,減少符合設定的資源執行個體數量。
  5. 如果問題不是由過於廣泛的 None 規格所致,請執行下列操作:

    1. 按一下指定 HIGHMEDIUMLOW 值的每個設定名稱,即可顯示資源屬性規格。
    2. 檢查設定,並視需要編輯設定,修正範圍、資源類型、標記或標籤規格,以符合預期資源。
  6. 如有需要,請建立新的資源值設定

您所做的變更會套用至下次模擬攻擊路徑。

瞭解這類發現項目支援的資產和掃描設定

APS resource value assignment limit exceeded

API 中的類別名稱APS_RESOURCE_VALUE_ASSIGNMENT_LIMIT_EXCEEDED

在上次攻擊路徑模擬中,資源價值設定識別出的高價值資源執行個體數量,超過高價值資源集中的 1,000 個資源執行個體上限。因此,Security Command Center 會從高價值資源集中排除超出上限的執行個體。

如要修正這項發現,可以嘗試下列動作:

  • 使用標記標籤,減少特定資源類型或指定範圍內的相符項目數量。標記或標籤必須先套用至資源執行個體,才能與資源值設定相符。
  • 建立資源值設定,將資源值 NONE 指派給另一個設定中指定的資源子集。

    指定 NONE 值會覆寫所有其他設定,並將資源執行個體從高價值資源集中排除。

  • 縮減資源值設定中的範圍資源屬性規格。

  • 刪除指派 LOW 值的資源值設定。

如需建立、編輯或刪除資源價值設定的操作說明,請參閱「定義及管理高價值資源集」。

瞭解這類發現項目支援的資產和掃描設定

CIEM service account missing permissions

API 中的類別名稱CIEM_SERVICE_ACCOUNT_MISSING_PERMISSIONS

CIEM 服務使用的服務帳戶缺少權限。CIEM 無法產生一或多個發現類別。

如要修正這項發現,請還原 CIEM 服務帳戶所需的身分與存取權管理角色:

  1. 前往 Google Cloud 控制台的「IAM」頁面。

    前往「身分與存取權管理」頁面

  2. 選取貴機構的 CIEM 服務帳戶。服務帳戶的 ID 是電子郵件地址,格式如下:

    service-org-ORGANIZATION_ID@gcp-sa-ciem.iam.gserviceaccount.com
    

    ORGANIZATION_ID 替換為貴機構的數字 ID。

    如果未列出服務帳戶,請按一下頁面頂端的「授予存取權」,然後輸入服務帳戶做為新的主體。

  3. 將 CIEM 服務代理角色 (roles/ciem.serviceAgent) 授予服務帳戶。如果您使用自訂角色,請確認角色包含下列權限:

    • cloudasset.assets.exportResource
    • cloudasset.assets.exportIamPolicy
  4. 按一下 [儲存]

CIEM AWS CloudTrail configuration error

API 中的類別名稱AWS_CLOUDTRAIL_CONFIGURATION_ERROR

部分或所有 CIEM AWS 發現項目未傳送至 Security Command Center。AWS CloudTrail 饋給失敗,且因設定錯誤而無法成功擷取資料。

這項發現可能有三種原因:

  • 缺少 AWS CloudTrail 動態饋給

    如要修正這個問題,請在 Security Operations 控制台中建立及設定動態饋給,以便擷取 AWS CloudTrail 日誌。將「Ingestion label」(擷取標籤) 鍵/值組合設為 CIEMTRUE

    如需建立動態饋給的操作說明,請參閱 Google SecOps 說明文件中的「建立動態饋給」。

  • 動態饋給設定錯誤

    確認你已正確設定動態饋給。

    如要設定資訊提供,請參閱 Google SecOps 說明文件中的「在 Google Security Operations 中設定資訊提供,以便擷取 AWS 記錄」。

  • AWS CloudTrail 設定不完整

    如要修正這個問題,請在 AWS CloudTrail 設定中設定 S3 值區,記錄所有要使用 CIEM 的 AWS 帳戶中的資料事件管理事件

    如要設定 CloudTrail,請參閱 Google SecOps 說明文件中的「設定 AWS CloudTrail (或其他服務)」。

GKE service account missing permissions

API 中的類別名稱GKE_SERVICE_ACCOUNT_MISSING_PERMISSIONS

Container Threat Detection 無法為 Google Kubernetes Engine 叢集產生發現項目,因為叢集中的 GKE 預設服務帳戶缺少權限。這會導致叢集無法順利啟用 Container Threat Detection。

如要修正這項發現,請還原 GKE 預設服務帳戶,並確認該服務帳戶具有 Kubernetes Engine 服務代理程式 (roles/container.serviceAgent) 角色。

瞭解這類發現項目支援的資產和掃描設定

KTD blocked by admission controller

API 中的類別名稱KTD_BLOCKED_BY_ADMISSION_CONTROLLER

由於第三方許可控制器會阻止部署必要的 Kubernetes DaemonSet 物件,因此無法在叢集上啟用 Container Threat Detection。

如要修正這項發現項目,請確認叢集上執行的許可控制器允許 Container Threat Detection 建立必要的 Kubernetes 物件。

檢查許可控制器

檢查叢集中的准入控制器是否拒絕部署 Container Threat Detection DaemonSet 物件。

  1. 在 Google Cloud 控制台的發現詳細資料中,查看發現說明,並檢查 Kubernetes 隨附的錯誤訊息。Kubernetes 錯誤訊息應類似下列訊息:

    generic::failed_precondition: incompatible admission webhook:
    admission webhook "example.webhook.sh" denied the request:
    [example-constraint] you must provide labels: {"example-required-label"}.
    
  2. 在包含叢集的專案管理員活動 Cloud 稽核記錄中,找出調查結果詳細資料「說明」欄位中顯示的錯誤訊息。

  3. 如果准入控制器運作正常,但拒絕部署 Container Threat Detection DaemonSet 物件,請將准入控制器設定為允許Container Threat Detection 服務代理程式管理 kube-system 命名空間中的物件。

    Container Threat Detection 服務代理必須能夠管理特定 Kubernetes 物件。

如要進一步瞭解如何搭配使用許可控制器與 Container Threat Detection,請參閱「PodSecurityPolicy 和許可控制器」。

確認修正結果

修正錯誤後,Security Command Center 會自動嘗試啟用 Container Threat Detection。等待啟用程序完成後,請按照下列步驟檢查 Container Threat Detection 是否已啟用:

  1. 前往控制台的 Kubernetes Engine「工作負載」頁面。

    前往 Kubernetes 工作負載

  2. 視需要選取「顯示系統工作負載」

  3. 在「Workloads」(工作負載) 頁面中,先依叢集名稱篩選工作負載。

  4. 找出 container-watcher 工作負載。如果顯示 container-watcher 且狀態為 OK,表示容器威脅偵測功能已啟用。

KTD image pull failure

API 中的類別名稱KTD_IMAGE_PULL_FAILURE

無法在叢集上啟用 Container Threat Detection,因為系統無法從 gcr.io (Container Registry 映像檔主機) 提取 (下載) 必要容器映像檔。

容器映像檔的提取或下載作業可能會因多種原因而失敗。

請確認下列事項:

  • 確認虛擬私有雲網路、DNS 或防火牆設定未封鎖叢集對 gcr.io 映像檔主機的網路存取權。
  • 如果叢集是私人的,請務必啟用私人 Google 存取權,允許存取 gcr.io 映像檔主機。
  • 如果網路設定和 Private Google Access 不是造成失敗的原因,請參閱 GKE 疑難排解說明文件,瞭解 ImagePullBackOffErrImagePull 錯誤。

瞭解這類發現項目支援的資產和掃描設定

KTD service account missing permissions

API 中的類別名稱KTD_SERVICE_ACCOUNT_MISSING_PERMISSIONS

Google Cloud 控制台中發現項目詳細資料所列的 Container Threat Detection 服務帳戶缺少必要權限。部分或所有 Container Threat Detection 發現項目未傳送至 Security Command Center。

如要修正這項發現,請按照下列步驟操作:

  1. 將「Container Threat Detection 服務代理」角色 (roles/containerthreatdetection.serviceAgent) 授予服務帳戶。詳情請參閱「授予單一角色」。

    或者,如要使用自訂角色,請確認該角色具備Container Threat Detection 服務代理角色中的權限

  2. 確認沒有任何 IAM 拒絕政策,禁止服務帳戶使用 Container Threat Detection 服務代理人角色中的任何權限。如有拒絕政策封鎖存取權,請在拒絕政策中將服務帳戶新增為例外主體

如要進一步瞭解 Container Threat Detection 服務帳戶、角色和所需權限,請參閱必要的 IAM 權限

瞭解這類發現項目支援的資產和掃描設定

Misconfigured Cloud Logging Export

API 中的類別名稱MISCONFIGURED_CLOUD_LOGGING_EXPORT

設定持續匯出至 Cloud Logging 的專案無法使用。因此 Security Command Center 無法將發現項目傳送至 Cloud Logging。

如要修正這項發現,請採取下列任一做法:

瞭解這類發現項目支援的資產和掃描設定

VPC Service Controls Restriction

API 中的類別名稱VPC_SC_RESTRICTION

由於專案受到服務範圍保護,Security Health Analytics 無法為該專案產生特定發現項目。您必須授予 Security Command Center 服務帳戶服務周邊的連入存取權。

服務帳戶的 ID 是電子郵件地址,格式如下:

service-RESOURCE_KEYWORD-RESOURCE_ID@security-center-api.iam.gserviceaccount.com

更改下列內容:

  • RESOURCE_KEYWORD:關鍵字 orgproject,視服務帳戶所屬的資源而定
  • RESOURCE_ID:下列其中一項:

    • 如果服務帳戶屬於機構,則為機構 ID
    • 如果服務帳戶屬於專案,則為 專案編號

如果您同時擁有機構層級和專案層級的服務帳戶,請對這兩者套用修正措施。

如要修正這項發現,請按照下列步驟操作。

步驟 1:判斷哪個服務周邊控管措施封鎖了 Security Health Analytics

  1. 取得 VPC Service Controls 專屬 ID,以及與該發現項目相關聯的專案 ID:

    1. 如要查看調查結果的詳細資料,請按一下類別名稱。
    2. 在「說明」欄位中,複製 VPC Service Controls 專屬 ID,例如 5e4GI409D6BTWfOp_6C-uSwmTpOQWcmW82sfZW9VIdRhGO5pXyCJPQ
    3. 在「Resource path」(資源路徑) 欄位中,複製專案的 ID。
  2. 取得存取權政策 ID 和服務範圍名稱:

    1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

      前往「Logs Explorer」頁面

    2. 在工具列上,選取與調查結果相關聯的專案。

    3. 在搜尋框中輸入錯誤的專屬 ID。

      依錯誤 UID 搜尋

      如果查詢結果中未顯示錯誤,請在「直方圖」中延長時間軸,然後重新執行查詢。

    4. 按一下顯示的錯誤。

    5. 按一下「Expand nested fields」(展開巢狀欄位)

    6. 複製 servicePerimeterName 欄位的值。這個值的格式如下:

      accessPolicies/ACCESS_POLICY/servicePerimeters/SERVICE_PERIMETER
      

      在本例中,服務安全防護範圍的完整資源名稱為 accessPolicies/540107806624/servicePerimeters/vpc_sc_misconfigured

      • ACCESS_POLICY 是存取權政策 ID,例如 540107806624
      • SERVICE_PERIMETER 是服務範圍的名稱,例如 vpc_sc_misconfigured

        服務安全防護範圍的完整資源名稱

    7. 如要取得與存取權政策 ID 相對應的顯示名稱,請使用 gcloud CLI。

      如果無法進行機構層級查詢,請要求管理員執行這個步驟。

      gcloud access-context-manager policies list \
          --organization ORGANIZATION_ID
      

      ORGANIZATION_ID 替換為貴機構的數字 ID。

      您會看到類似以下的輸出內容:

      NAME          ORGANIZATION  SCOPES                 TITLE           ETAG
      540107806624  549441802605                         default policy  2a9a7e30cbc14371
      352948212018  549441802605  projects/393598488212  another_policy  d7b47a9ecebd4659
      

      顯示名稱是與存取權政策 ID 相對應的標題。 記下存取權政策的顯示名稱和服務安全防護範圍的名稱。下一節會用到這些資訊。

步驟 2:建立授予專案存取權的輸入規則

您必須具備 VPC Service Controls 的機構層級存取權,才能查看這個部分。如果沒有機構層級存取權,請管理員執行這些步驟。

在下列步驟中,您會在步驟 1 中識別的服務周邊建立連入規則。

如要授予服務帳戶服務範圍的連入存取權,請按照下列步驟操作。

  1. 前往 VPC Service Controls。

    前往 VPC Service Controls

  2. 在工具列中選取您的 Google Cloud 機構。

  3. 在下拉式清單中,選取包含要授予存取權的服務範圍的存取政策。

    存取權政策清單

    與存取權政策相關聯的服務範圍會顯示在清單中。

  4. 按一下服務安全防護範圍的名稱。

  5. 按一下「編輯範圍」

  6. 在導覽選單中,按一下「Ingress Policy」(輸入政策)

  7. 按一下 [新增規則]

  8. 請按照下列步驟設定規則:

    API 用戶端的「來源」屬性

    1. 在「來源」中,選取「所有來源」
    2. 在「身分」部分,選取「所選身分」
    3. 在「新增使用者/服務帳戶」欄位中,按一下「選取」
    4. 輸入服務帳戶的電子郵件地址。如果您同時擁有機構層級和專案層級的服務帳戶,請一併新增。
    5. 按一下 [儲存]

    GCP 服務/資源的 TO 屬性

    1. 在「Project」(專案) 部分,選取「All projects」(所有專案),或選取調查結果中指定的專案。

    2. 在「服務」中,選取「所有服務」,或選取出現 VPC Service Controls 違規事項的特定服務。

    如果服務範圍限制存取必要服務,Security Health Analytics 就無法產生該服務的發現項目。

  9. 按一下導覽選單中的「儲存」

詳情請參閱「設定輸入和輸出政策」。

瞭解這類發現項目支援的資產和掃描設定

Security Command Center service account missing permissions

API 中的類別名稱SCC_SERVICE_ACCOUNT_MISSING_PERMISSIONS

Security Command Center 的服務代理缺少正常運作所需的權限。

服務帳戶的 ID 是電子郵件地址,格式如下:

service-RESOURCE_KEYWORD-RESOURCE_ID@security-center-api.iam.gserviceaccount.com

更改下列內容:

  • RESOURCE_KEYWORD:關鍵字 orgproject,視服務帳戶所屬的資源而定
  • RESOURCE_ID:下列其中一項:

    • 如果服務帳戶屬於機構,則為機構 ID
    • 如果服務帳戶屬於專案,則為 專案編號

如果您同時擁有機構層級和專案層級的服務帳戶,請對這兩者套用修正措施。

如要修正這項發現,請按照下列步驟操作:

  1. 將 Security Center 服務代理程式 (roles/securitycenter.serviceAgent) 角色授予服務帳戶。

    詳情請參閱「授予單一角色」。

    或者,如要使用自訂角色,請確認該角色具備「Security Center 服務代理」角色中的權限。

  2. 請確認沒有任何 IAM 拒絕政策,禁止服務帳戶使用必要角色中的任何權限。如有拒絕政策封鎖存取權,請在拒絕政策中將服務帳戶新增為例外主體

瞭解這類發現項目支援的資產和掃描設定

後續步驟

瞭解 Security Command Center 錯誤