本頁說明如何使用 Google Cloud 控制台或 Google Cloud CLI,為安全狀態分析建立、查看、更新及刪除自訂模組。
如需更多簡介資訊,請參閱「安全狀態分析自訂模組總覽」。
事前準備
如要使用自訂模組,必須符合下列先決條件:
- 您必須啟用安全狀態分析。如要瞭解如何啟用「安全狀態分析」,請參閱「啟用或停用內建服務」。
- 使用者帳戶必須獲得一或多個包含必要權限的身分與存取權管理 (IAM) 角色。詳情請參閱「必要 IAM 權限」。
- 如果您打算撰寫自己的自訂模組,並使用
gcloud指令將模組上傳至 Security Command Center,則需要 Google Cloud CLI。如要瞭解如何安裝 gcloud CLI,請參閱「安裝 gcloud CLI」。 - 如果尚未啟用 Security Command Center API,請先啟用,才能使用安全狀態分析的自訂模組。您可以在 Google Cloud 控制台的 API 程式庫頁面上啟用 Security Command Center API。
- 如要瞭解安全狀態分析的用量限制,請參閱自訂模組配額。
必要 IAM 權限
如要使用自訂模組,您需要下列 Identity and Access Management (IAM) 權限:
| 權限 | 角色 |
|---|---|
| securitycenter.securityhealthanalyticscustommodules.create securitycenter.securityhealthanalyticscustommodules.update securitycenter.securityhealthanalyticscustommodules.delete |
roles/securitycenter.settingsEditor roles/securitycenter.admin |
| securitycenter.securityhealthanalyticscustommodules.get securitycenter.securityhealthanalyticscustommodules.list |
roles/securitycenter.settingsViewer roles/securitycenter.adminViewer roles/securitycenter.admin |
| securitycenter.securityhealthanalyticscustommodules.test | roles/securitycenter.securityHealthAnalyticsCustomModulesTester roles/securitycenter.adminViewer roles/securitycenter.adminEditor roles/securitycenter.admin |
如要進一步瞭解 IAM 權限和角色,以及如何授予這些權限和角色,請參閱「使用 Google Cloud 控制台授予 IAM 角色」。
建立自訂模組
本節說明如何使用Google Cloud 控制台、gcloud CLI 或 Terraform 建立自訂模組。
如要在建立程序中測試自訂模組,您必須在 YAML 檔案中準備測試資源定義。如需操作說明,請參閱「在 YAML 檔案中建立測試資源」。
如要建立自訂模組,請從下列分頁標籤中選取要使用的方法:
Google Cloud 控制台
如要在 Google Cloud 控制台中建立自訂模組,請完成下列步驟:
前往Google Cloud 控制台的 Security Command Center「設定」頁面。
按照系統提示,選取要建立自訂模組的機構、資料夾或專案。
在「安全狀態分析」資訊卡中,按一下「管理設定」。
按一下「模組」分頁標籤。
按一下「建立模組」。 「Create module for Security Health Analytics」(為安全狀態分析建立模組) 頁面隨即開啟。
在「設定模組」面板中,定義顯示名稱、要掃描的資源和偵測邏輯:
在「Module name」欄位中,指定模組名稱。 名稱長度必須介於 1 至 128 個字元之間,只能使用英數字元或底線,而且開頭須為小寫英文字母。這個名稱會成為偵測工具產生的發現項目類別。模組建立完成後即無法變更名稱。
在「新增資源類型」下方,指定要掃描的一到五種資源類型。您無法多次指定資源類型。
如需支援的資源類型清單,請參閱「支援的資源類型」。
在運算式編輯器中,撰寫 CEL 運算式,對您在上一個步驟中指定的資源的一或多個屬性執行布林值檢查。如要觸發發現結果,運算式必須解析為
TRUE。舉例來說,如果CryptoKey資源已定義輪替週期,且輪替週期超過 2,592,000 秒 (30 天),下列運算式就會觸發發現項目:has(resource.rotationPeriod) && (resource.rotationPeriod > duration('2592000s'))如要瞭解詳情,請參考下列資源:
點選「下一步」。「定義發現項目詳細資料」面板隨即開啟。
在「定義發現項目詳細資料」面板中,說明自訂模組偵測到的問題,包括嚴重程度、問題內容、修正方式,以及要納入發現項目做為自訂來源屬性的任何資料:
在「嚴重程度」欄位中,指定問題的嚴重程度。 您可以指定
Low、Medium、High或Critical。預設為Medium。如要瞭解嚴重程度,請參閱「發現項目的嚴重性分類」。
在「發現說明」欄位中,說明自訂模組偵測到的問題。這項說明會顯示在每個發現項目例項中,協助安全團隊瞭解並解決偵測到的問題。
在「尋找後續步驟」欄位中,說明安全團隊可採取哪些步驟,修正或解決偵測到的問題。
每個發現項目例項都會顯示步驟。請提供具體步驟,協助安全團隊盡快解決問題。
選用:在「自訂發現項目屬性」欄位中,指定最多 10 個名稱/值組合,定義要隨每個發現項目例項傳回的自訂來源屬性。這項資訊會以來源屬性的形式,在發現項目的 JSON 中傳回,並顯示在Google Cloud 控制台的發現項目詳細資料中,位於「來源屬性」分頁。以鍵/值組合形式指定文字或屬性值:
- 在「屬性名稱」欄位中,指定自訂來源資源的名稱。名稱必須符合下列規則:
- 名稱開頭必須為小寫字母。
- 名稱只能使用英數字元或底線。
- 名稱長度必須介於 1 至 128 個字元之間。
- 每個名稱都不得與其他來源屬性重複。
- 在「屬性值」欄位中,指定下列其中一個值,且不得超過 1024 個字元:
- 以半形引號括住的文字字串。引號也算在 1024 個字元的限制內。例如:
"This string provides additional useful information." - 掃描資源的任何屬性。
舉例來說,如果您要檢查
CryptoKey資源,可以指定resource.rotationPeriod。系統會傳回rotationPeriod屬性的值。
- 以半形引號括住的文字字串。引號也算在 1024 個字元的限制內。例如:
- 在「屬性名稱」欄位中,指定自訂來源資源的名稱。名稱必須符合下列規則:
點選「下一步」。「啟用模組」面板隨即開啟。
選用:使用「啟用模組」面板的下拉式選單,指定在建立自訂模組時啟用或停用該模組。自訂模組預設會在建立時啟用。如果您指定「停用」,日後可以在「安全狀態分析」設定頁面的「模組」分頁中啟用模組。
點選「下一步」。「測試模組」面板隨即開啟。
選用:建議您先測試自訂模組,再建立模組。
如要測試自訂模組,請按照下列步驟操作:
建立 YAML 檔案,其中包含自訂模組檢查的資源測試資源定義。
如要瞭解如何建立測試資料檔案,請參閱「在 YAML 檔案中建立測試資源」。
在「Upload the YAML file」(上傳 YAML 檔案) 下方,按一下「Browse」(瀏覽),上傳含有測試資源定義的 YAML 檔案。上傳檔案後,系統會自動開始測試。
在「測試結果預覽」下方查看結果。
- 如果 YAML 檔案中有語法或其他錯誤,瀏覽器頁面底部附近會顯示浮動錯誤訊息。
如果測試成功,測試會傳回下列資訊:
- 自訂模組的顯示名稱。
- 您在測試資料檔案的
resource屬性中指定的任意名稱。 - 自訂模組的建立位置 (組織、資料夾或專案)。
測試結果不會儲存或寫入 Security Command Center。
詳情請參閱「測試自訂模組」。
點按「Create」(建立)。系統會將您帶回「模組」頁面,您應該會看到自己建立的模組,狀態為「已啟用」。
新的自訂模組不會立即供安全狀態分析在掃描中使用。詳情請參閱「偵測延遲時間」。
gcloud CLI
如要使用 gcloud 指令建立自訂模組,您必須先在 YAML 檔案中編碼自訂模組的定義,包括偵測邏輯和輸出屬性的 CEL 運算式。
定義完成後,請使用 gcloud CLI 指令將定義上傳至 Security Command Center。
- 根據「為安全狀態分析編寫自訂模組」中的操作說明,在 YAML 檔案中編寫自訂模組定義。
- 將 YAML 檔案儲存到 gcloud CLI 執行個體可存取的位置。
將自訂定義上傳至 Security Command Center:
gcloud scc custom-modules sha create \ PARENT_FLAG=PARENT_ID \ --display-name="MODULE_DISPLAY_NAME" \ --enablement-state="ENABLEMENT_STATE" \ --custom-config-from-file=MODULE_FILE_NAME.yaml
更改下列內容:
PARENT_FLAG:建立自訂模組的層級,可以是--organization、--folder或--project。PARENT_ID:您要建立自訂模組的機構、資料夾或專案 ID。ENABLEMENT_STATE:enabled或disabled。MODULE_DISPLAY_NAME:自訂模組傳回發現項目時要顯示的發現項目類別名稱。名稱長度必須介於 1 至 128 個字元之間,只能使用英數字元或底線,而且開頭須為小寫英文字母。MODULE_FILE_NAME:包含自訂模組定義的 YAML 檔案路徑和檔案名稱。
Terraform
為機構建立自訂模組:
為資料夾建立自訂模組:
為專案建立自訂模組:
偵測延遲
建立或更新自訂模組定義後,可能需要幾小時,新的或更新的自訂模組才能用於掃描。
建立或修改自訂模組不會觸發掃描作業。 自訂模組可供使用後,安全狀態分析不會立即使用,而是等到第一批掃描作業或目標資源的設定變更觸發即時掃描時,才會開始使用自訂模組。
如要進一步瞭解安全狀態分析掃描類型,請參閱「安全狀態分析掃描類型」。
更新自訂模組
您可以更新安全狀態分析自訂模組的大部分屬性。
自訂模組的下列屬性無法變更:
- 顯示名稱。
- 自訂模組 ID。
- 自訂模組的完整資源名稱。
更新自訂模組時,系統不會同時更新該模組先前產生的任何發現項目。如果模組變更導致產生的發現項目有所變更,發現項目只會在下次執行安全狀態分析批次或即時掃描後,反映這些變更。
如要修改自訂模組,可以使用 Google Cloud 控制台或 gcloud CLI。點選下列任一分頁標籤,查看相關操作說明。
Google Cloud 控制台
如要在 Google Cloud 控制台中更新現有的自訂模組,請按照下列步驟操作:
前往Google Cloud 控制台的 Security Command Center「設定」頁面。
在專案選取器中,選取最初建立自訂模組的機構、資料夾或專案。您無法在其他位置編輯自訂模組。
在「安全狀態分析」資訊卡中,按一下「管理設定」。
選取「模組」分頁標籤。系統會顯示所有安全狀態分析偵測模組。
使用模組清單頂端的篩選器欄位,或捲動畫面,找出要修改的自訂模組。
在自訂模組列的右側,按一下「動作」選單圖示 。
在「動作」選單中,按一下「編輯」圖示 (edit)。「查看模組」頁面隨即開啟,並顯示「設定模組」分頁。
視需要編輯「查看模組」頁面中每個分頁的自訂模組欄位。
選用:建議先測試更新內容,再儲存變更。
如要測試自訂模組,請按照下列步驟操作:
建立 YAML 檔案,其中包含自訂模組檢查的資源測試資源定義。
如要瞭解如何建立測試資料檔案,請參閱「在 YAML 檔案中建立測試資源」。
在「Upload the YAML file」(上傳 YAML 檔案) 下方,按一下「Browse」(瀏覽),上傳含有測試資源定義的 YAML 檔案。上傳檔案後,系統會自動開始測試。
在「測試結果預覽」下方查看結果。
- 如果 YAML 檔案中有語法或其他錯誤,瀏覽器頁面底部附近會顯示浮動錯誤訊息。
如果測試成功,測試會傳回下列資訊:
- 自訂模組的顯示名稱。
- 您在測試資料檔案的
resource屬性中指定的任意名稱。 - 自訂模組的建立位置 (組織、資料夾或專案)。
測試結果不會儲存或寫入 Security Command Center。
詳情請參閱「測試自訂模組」。
按一下頁面底部的「儲存」。變更會套用至自訂模組。
gcloud CLI
如要使用 gcloud CLI 更新自訂模組,請先編輯自訂模組的 YAML 定義,然後使用 gcloud 指令更新安全狀態分析中的自訂模組。
編輯自訂模組定義。如要瞭解如何編寫自訂模組定義,請參閱「編寫安全狀態分析的自訂模組」。
將編輯後的 YAML 檔案儲存到 gcloud CLI 可存取的位置。
發出下列指令,更新安全狀態分析中的自訂模組:
gcloud scc custom-modules sha update MODULE_ID \ PARENT_FLAG=PARENT_ID \ --enablement-state="ENABLED" \ --custom-config-from-file=MODULE_FILE_NAME.yaml
更改下列內容:
MODULE_ID:自訂模組的 ID 或完整資源名稱。PARENT_FLAG:建立自訂模組的層級,可以是--organization、--folder或--project。PARENT_ID:自訂模組建立所在的機構、資料夾或專案 ID。MODULE_FILE_NAME:包含自訂模組定義的 YAML 檔案路徑和檔案名稱。
查看自訂模組
選取分頁,瞭解如何查看自訂模組定義。
Google Cloud 控制台
如要在 Google Cloud 控制台中查看自訂模組,請按照下列步驟操作:
前往 Security Command Center 設定中的「安全狀態分析」頁面。
按一下「模組」分頁標籤。「模組」面板隨即開啟。
如有需要,請使用模組清單頂端的篩選器欄位,找出要修改的自訂模組。
如要查看自訂模組定義的詳細資料,請按一下自訂模組列右側的「動作選單」圖示 。
在「動作」選單中,按一下「編輯」圖示 。 edit「查看模組」頁面隨即開啟,並顯示「設定模組」分頁。
按一下「查看模組」頁面上的分頁標籤,即可查看自訂模組定義的所有欄位。
gcloud CLI
如要查看自訂模組的詳細資料,請輸入下列指令:
gcloud scc custom-modules sha get MODULE_ID \ PARENT_FLAG=PARENT_ID
更改下列內容:
MODULE_ID:自訂模組的 ID 或完整資源名稱。PARENT_FLAG:建立自訂模組的層級,可以是--organization、--folder或--project。PARENT_ID:自訂模組建立所在的機構、資料夾或專案 ID。
列出自訂模組
選取分頁標籤,瞭解如何顯示自訂模組清單。
Google Cloud 控制台
前往 Security Command Center 設定中的「安全狀態分析」頁面。
按一下「模組」分頁標籤。「模組」面板隨即開啟。
按一下模組清單頂端的篩選器欄位,即可顯示篩選器類型清單。
選取「類型」,然後輸入
Custom。模組清單會更新,只顯示自訂模組。
gcloud CLI
如要查看自訂模組清單,請輸入下列指令:
gcloud scc custom-modules sha list \ PARENT_FLAG=PARENT_ID
更改下列內容:
PARENT_FLAG:建立自訂模組的層級,可以是--organization、--folder或--project。PARENT_ID:自訂模組建立所在的機構、資料夾或專案 ID。
刪除自訂模組
您可以從建立自訂模組的機構、資料夾或專案,或是上層機構或資料夾中刪除該模組。您無法從繼承自訂模組的資料夾或專案中刪除該模組。
如要瞭解如何刪除自訂模組,請選取下列其中一個分頁標籤。
Google Cloud 控制台
前往Google Cloud 控制台的 Security Command Center「設定」頁面。
系統顯示提示時,請選取組織、資料夾或專案。
在「安全狀態分析」資訊卡中,按一下「管理設定」。
選取「模組」分頁標籤。系統會顯示所有安全狀態分析偵測模組。
使用模組清單頂端的篩選器欄位,或捲動畫面,找出要修改的自訂模組。
在自訂模組列的右側,按一下「動作」選單圖示 。
在「動作」選單中,按一下「刪除」,系統會開啟「刪除自訂模組」對話方塊。
在對話方塊中按一下「刪除」。
gcloud CLI
如要刪除自訂模組,請輸入下列指令:
gcloud scc custom-modules sha delete MODULE_ID \ PARENT_FLAG=PARENT_ID
更改下列內容:
MODULE_ID:自訂模組的 ID 或完整資源名稱。PARENT_FLAG:建立自訂模組的層級,可以是--organization、--folder或--project。PARENT_ID:自訂模組建立所在的機構、資料夾或專案 ID。
在下一次批次掃描中,安全狀態分析會將已刪除自訂模組的發現項目標示為無效。
查看結果
您可以在Google Cloud 控制台或 Security Command Center API 中,查看自訂模組產生的發現項目。
控制台
-
前往 Google Cloud 控制台的 Security Command Center「發現項目」頁面。
- 選取 Google Cloud 專案或機構。
- 在「快速篩選器」部分的「來源顯示名稱」子部分,選取「安全狀態分析 Custom」。發現項目查詢結果會更新,只顯示來自這個來源的發現項目。
- 如要查看特定發現項目的詳細資料,請按一下「類別」欄中的發現項目名稱。 系統會開啟發現項目的詳細資料面板,並顯示「摘要」分頁。
- 在「摘要」分頁中,查看發現項目的詳細資料,包括偵測到的內容、受影響的資源,以及 (如適用) 可採取哪些步驟修正發現項目。
- 選用:如要查看發現項目的完整 JSON 定義,請按一下「JSON」分頁。
gcloud CLI
如要查看調查結果,請按照下列步驟操作:
- 開啟終端機視窗。
如要取得安全狀態分析的來源 ID,請執行下列指令:
gcloud scc sources describe organizations/ORGANIZATION_ID \ --source-display-name='Security Health Analytics Custom'
顯示輸出內容應會如下所示。在本範例中,
SOURCE_ID是伺服器指派給安全來源的 ID。description: ... displayName: Security Health Analytics Custom name: organizations/ORGANIZATION_ID/sources/SOURCE_ID
如要列出自訂模組產生的所有發現項目,請執行下列指令:
gcloud scc findings list ORGANIZATION_ID --source=SOURCE_ID
如要列出特定自訂模組的發現項目,請執行下列指令:
gcloud scc findings list ORGANIZATION_ID --source=SOURCE_ID --filter="category=\"MODULE_NAME\""
後續步驟
您可以像管理 Security Command Center 中的所有發現項目一樣,管理自訂模組產生的發現項目。如需操作說明,請參閱下列資訊: