本頁面提供參考指南和技術清單,協助您修正 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 控制台中查看結果:
標準或進階
- 在 Google Cloud 控制台中,前往 Security Command Center 的「發現項目」頁面。
- 選取 Google Cloud 專案或機構。
- 在「快速篩選器」部分的「來源顯示名稱」子部分中,選取「Security Command Center」。發現項目查詢結果會更新,只顯示來自這個來源的發現項目。
- 如要查看特定發現項目的詳細資料,請按一下「類別」欄中的發現項目名稱。 系統會開啟發現項目的詳細資料面板,並顯示「摘要」分頁。
- 在「摘要」分頁中,查看發現項目的詳細資料,包括偵測到的內容、受影響的資源,以及 (如有) 可採取哪些步驟來修正發現項目。
- 選用:如要查看調查結果的完整 JSON 定義,請按一下「JSON」JSON分頁。
Enterprise
- 在 Google Cloud 控制台中,前往 Security Command Center 的「發現項目」頁面。
- 選取 Google Cloud 機構。
- 在「匯總」部分中,按一下展開「來源顯示名稱」子部分。
- 選取「Security Command Center」。發現項目查詢結果會更新,只顯示來自這個來源的發現項目。
- 如要查看特定發現項目的詳細資料,請按一下「類別」欄中的發現項目名稱。 系統會開啟發現項目的詳細資料面板,並顯示「摘要」分頁。
- 在「摘要」分頁中,查看發現項目的詳細資料,包括偵測到的內容、受影響的資源,以及 (如有) 可採取哪些步驟來修正發現項目。
- 選用:如要查看調查結果的完整 JSON 定義,請按一下「JSON」JSON分頁。
修正錯誤後停用 SCC 錯誤
修正 SCC error
發現項目後,Security Command Center 會在下次掃描時,自動將該發現項目的狀態設為「已修正」INACTIVE
。Security Command Center 將已修正的發現項目狀態設為 INACTIVE
的時間,取決於您修正發現項目的時間,以及偵測到錯誤的掃描作業排程。
如要瞭解 SCC error
發現項目的掃描頻率,請參閱「錯誤偵測器」中的發現項目摘要。
修正 SCC 錯誤
本節包含所有 SCC 錯誤的修正說明。
API disabled
API 中的類別名稱:API_DISABLED
專案已停用下列其中一項服務:
停用的服務無法產生調查結果。
如要修正這項發現,請按照下列步驟操作:
- 查看調查結果,判斷停用的 API。
啟用 API:
APS no resource value configs match any resources
API 中的類別名稱:APS_NO_RESOURCE_VALUE_CONFIGS_MATCH_ANY_RESOURCES
資源值設定是為攻擊路徑模擬作業定義,但與環境中的任何資源例項都不相符。模擬作業改用預設的高價值資源集。
資源值設定可能因下列原因而與任何資源不符,這些原因會顯示在Google Cloud 控制台的發現項目說明中:
- 沒有任何資源值設定與資源例項相符。
- 指定
NONE
的一或多項資源價值設定會覆寫所有其他有效設定。 - 所有已定義的資源值設定都會指定
NONE
值。
如要修正這項發現,請按照下列步驟操作:
前往 Security Command Center「設定」中的「攻擊路徑模擬」頁面:
選取您的機構。「攻擊路徑模擬」頁面隨即開啟,並顯示現有設定。
在「資源價值設定」清單的「資源價值」欄中,檢查
None
的值。針對指定
None
的任何設定,請執行下列操作:- 按一下任何資源值設定的名稱,即可顯示設定規格。
- 如有需要,請編輯資源屬性規格,減少符合設定的資源執行個體數量。
如果問題不是由過於廣泛的
None
規格所致,請執行下列操作:- 按一下指定
HIGH
、MEDIUM
或LOW
值的每個設定名稱,即可顯示資源屬性規格。 - 檢查設定,並視需要編輯設定,修正範圍、資源類型、標記或標籤規格,以符合預期資源。
- 按一下指定
如有需要,請建立新的資源值設定。
您所做的變更會套用至下次模擬攻擊路徑。
瞭解這類發現項目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 服務帳戶所需的身分與存取權管理角色:
前往 Google Cloud 控制台的「IAM」頁面。
選取貴機構的 CIEM 服務帳戶。服務帳戶的 ID 是電子郵件地址,格式如下:
service-org-ORGANIZATION_ID@gcp-sa-ciem.iam.gserviceaccount.com
將
ORGANIZATION_ID
替換為貴機構的數字 ID。如果未列出服務帳戶,請按一下頁面頂端的「授予存取權」,然後輸入服務帳戶做為新的主體。
將 CIEM 服務代理角色 (
roles/ciem.serviceAgent
) 授予服務帳戶。如果您使用自訂角色,請確認角色包含下列權限:cloudasset.assets.exportResource
cloudasset.assets.exportIamPolicy
按一下 [儲存]。
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」(擷取標籤) 鍵/值組合設為
CIEM
和TRUE
。如需建立動態饋給的操作說明,請參閱 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 物件。
在 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"}.
在包含叢集的專案管理員活動 Cloud 稽核記錄中,找出調查結果詳細資料「說明」欄位中顯示的錯誤訊息。
如果准入控制器運作正常,但拒絕部署 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 是否已啟用:
前往控制台的 Kubernetes Engine「工作負載」頁面。
視需要選取「顯示系統工作負載」。
在「Workloads」(工作負載) 頁面中,先依叢集名稱篩選工作負載。
找出
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 疑難排解說明文件,瞭解
ImagePullBackOff
和ErrImagePull
錯誤。
KTD service account missing permissions
API 中的類別名稱:KTD_SERVICE_ACCOUNT_MISSING_PERMISSIONS
Google Cloud 控制台中發現項目詳細資料所列的 Container Threat Detection 服務帳戶缺少必要權限。部分或所有 Container Threat Detection 發現項目未傳送至 Security Command Center。
如要修正這項發現,請按照下列步驟操作:
將「Container Threat Detection 服務代理」角色 (
roles/containerthreatdetection.serviceAgent
) 授予服務帳戶。詳情請參閱「授予單一角色」。或者,如要使用自訂角色,請確認該角色具備Container Threat Detection 服務代理角色中的權限。
確認沒有任何 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
:關鍵字org
或project
,視服務帳戶所屬的資源而定 -
RESOURCE_ID
:下列其中一項:- 如果服務帳戶屬於機構,則為機構 ID
- 如果服務帳戶屬於專案,則為 專案編號
如果您同時擁有機構層級和專案層級的服務帳戶,請對這兩者套用修正措施。
如要修正這項發現,請按照下列步驟操作。
步驟 1:判斷哪個服務周邊控管措施封鎖了 Security Health Analytics
取得 VPC Service Controls 專屬 ID,以及與該發現項目相關聯的專案 ID:
- 如要查看調查結果的詳細資料,請按一下類別名稱。
- 在「說明」欄位中,複製 VPC Service Controls 專屬 ID,例如
5e4GI409D6BTWfOp_6C-uSwmTpOQWcmW82sfZW9VIdRhGO5pXyCJPQ
。 - 在「Resource path」(資源路徑) 欄位中,複製專案的 ID。
取得存取權政策 ID 和服務範圍名稱:
前往 Google Cloud 控制台的「Logs Explorer」頁面。
在工具列上,選取與調查結果相關聯的專案。
在搜尋框中輸入錯誤的專屬 ID。
如果查詢結果中未顯示錯誤,請在「直方圖」中延長時間軸,然後重新執行查詢。
按一下顯示的錯誤。
按一下「Expand nested fields」(展開巢狀欄位)。
複製
servicePerimeterName
欄位的值。這個值的格式如下:accessPolicies/ACCESS_POLICY/servicePerimeters/SERVICE_PERIMETER
在本例中,服務安全防護範圍的完整資源名稱為
accessPolicies/540107806624/servicePerimeters/vpc_sc_misconfigured
。ACCESS_POLICY
是存取權政策 ID,例如540107806624
。SERVICE_PERIMETER
是服務範圍的名稱,例如vpc_sc_misconfigured
。
如要取得與存取權政策 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 中識別的服務周邊建立連入規則。
如要授予服務帳戶服務範圍的連入存取權,請按照下列步驟操作。
前往 VPC Service Controls。
在工具列中選取您的 Google Cloud 機構。
在下拉式清單中,選取包含要授予存取權的服務範圍的存取政策。
與存取權政策相關聯的服務範圍會顯示在清單中。
按一下服務安全防護範圍的名稱。
按一下「編輯範圍」
在導覽選單中,按一下「Ingress Policy」(輸入政策)。
按一下 [新增規則]。
請按照下列步驟設定規則:
API 用戶端的「來源」屬性
- 在「來源」中,選取「所有來源」。
- 在「身分」部分,選取「所選身分」。
- 在「新增使用者/服務帳戶」欄位中,按一下「選取」。
- 輸入服務帳戶的電子郵件地址。如果您同時擁有機構層級和專案層級的服務帳戶,請一併新增。
- 按一下 [儲存]。
GCP 服務/資源的 TO 屬性
在「Project」(專案) 部分,選取「All projects」(所有專案),或選取調查結果中指定的專案。
在「服務」中,選取「所有服務」,或選取出現 VPC Service Controls 違規事項的特定服務。
如果服務範圍限制存取必要服務,Security Health Analytics 就無法產生該服務的發現項目。
按一下導覽選單中的「儲存」。
詳情請參閱「設定輸入和輸出政策」。
瞭解這類發現項目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
:關鍵字org
或project
,視服務帳戶所屬的資源而定 -
RESOURCE_ID
:下列其中一項:- 如果服務帳戶屬於機構,則為機構 ID
- 如果服務帳戶屬於專案,則為 專案編號
如果您同時擁有機構層級和專案層級的服務帳戶,請對這兩者套用修正措施。
如要修正這項發現,請按照下列步驟操作:
將 Security Center 服務代理程式 (
roles/securitycenter.serviceAgent
) 角色授予服務帳戶。詳情請參閱「授予單一角色」。
或者,如要使用自訂角色,請確認該角色具備「Security Center 服務代理」角色中的權限。
請確認沒有任何 IAM 拒絕政策,禁止服務帳戶使用必要角色中的任何權限。如有拒絕政策封鎖存取權,請在拒絕政策中將服務帳戶新增為例外主體。
後續步驟
瞭解 Security Command Center 錯誤。