法規遵循管理工具內建多項雲端控管機制,可新增至架構並部署至環境。如有需要,您可以建立及管理自訂雲端控管機制,並更新內建雲端控管機制。
事前準備
請先完成這些工作,再完成本頁其餘工作。
設定權限
-
如要取得管理雲端控管架構所需的權限,請要求管理員在組織或專案中授予您下列 IAM 角色:
- Compliance Manager 管理員 (
roles/cloudsecuritycompliance.admin) -
如要建立或修改以組織政策為基礎的雲端控管機制,請具備下列其中一項權限:
- 組織政策管理員 (
roles/orgpolicy.policyAdmin) - Assured Workloads 管理員 (
roles/assuredworkloads.admin) - Assured Workloads 編輯者 (
roles/assuredworkloads.editor)
- 組織政策管理員 (
-
如要建立或修改以專案政策為基礎的雲端控管機制:專案 IAM 管理員 (
roles/resourcemanager.projectIamAdmin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
- Compliance Manager 管理員 (
設定 Google Cloud CLI
在 Google Cloud 控制台啟用 Cloud Shell。
Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。
如要設定 gcloud CLI,使用服務帳戶模擬功能向 Google API 進行驗證,而非使用使用者憑證,請執行下列指令:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
詳情請參閱「服務帳戶模擬」。
查看雲端控管機制
請完成下列步驟,查看內建雲端控管機制和已建立的自訂雲端控管機制。
控制台
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「設定」分頁中,按一下「Cloud 控制項」。系統會顯示可用的雲端控管機制。
資訊主頁會顯示哪些架構包含雲端控管機制,以及雲端控管機制套用至多少資源 (組織、資料夾和專案)。
如要查看雲端控管機制的詳細資料,請按一下控管機制名稱。
CLI
您可以查看特定雲端控制項的資訊,或列出組織中的所有雲端控制項。
查看雲端控管機制的詳細資料
如要查看特定雲端控管機制的詳細資料,請執行 gcloud
compliance-manager cloud-controls describe 指令:
gcloud compliance-manager cloud-controls describe CLOUD_CONTROL \
--location=LOCATION \
--organization=ORGANIZATION \
[--major-revision-id=MAJOR_REVISION_ID]
替換下列值:
CLOUD_CONTROL:雲端控管機制名稱ORGANIZATION:組織 IDLOCATION:儲存雲端控制項的區域MAJOR_REVISION_ID是選用旗標,用於指定要查看的 CloudControl 版本。如未加入旗標,系統會傳回最新版本。
舉例來說,如要查看名稱為 builtin-block-external-ip-addresses-for-vm-access 且主要修訂版本編號為 1 的雲端控管機制,請執行下列指令:
gcloud compliance-manager cloud-controls describe \
builtin-block-external-ip-addresses-for-vm-access \
--organization=3589215982 \
--location=global \
--major-revision-id=1
詳情請參閱「gcloud compliance-manager cloud-controls describe」。
取得雲端控管機制清單
如要取得組織中的雲端控管機制清單,請執行 gcloud
compliance-manager cloud-controls list 指令:
gcloud compliance-manager cloud-controls list \
--location=LOCATION \
--organization=ORGANIZATION
替換下列值:
ORGANIZATION:組織 IDLOCATION:儲存雲端控管機制的區域
舉例來說,如要查看組織 3589215982 中儲存在全域位置的所有雲端控管機制,請執行下列指令:
gcloud compliance-manager cloud-controls list \
--organization=3589215982 \
--location=global
如要瞭解選用旗標,請參閱「gcloud compliance-manager cloud-controls list」。
建立自訂雲端控管機制
建立自訂雲端控管機制時,您會將規則套用至任何 Cloud Asset Inventory 資源類型。
控制台
使用控制台時,您可以建立自訂雲端控管機制,並設定一項規則,套用至一個 Cloud Asset Inventory 資源類型。
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「設定」分頁中,按一下「Cloud 控制項」。畫面上會顯示可用的雲端控制項清單。
使用 Gemini 或手動建立雲端控管機制:
使用 Gemini
請 Gemini 生成雲端控管機制。Gemini 會根據提示提供專屬 ID、名稱、相關偵測邏輯和可能的修復步驟。
查看建議並進行必要變更。
儲存自訂雲端控管機制。
手動建立
在「Cloud control ID」(CloudControl ID) 中,提供控管機制的專屬 ID。
輸入名稱和說明,協助貴組織的使用者瞭解自訂雲端控管機制的用途。
選用:選取控制項的類別。按一下「繼續」。
為自訂雲端控管機制選取可用的資源類型。法規遵循管理工具支援所有資源類型。如要查看資源名稱,請參閱「資產類型」。
以一般運算語言 (CEL) 格式提供 CloudControl 的偵測邏輯。
CEL 運算式可讓您定義如何評估資源屬性。如需更多資訊和範例,請參閱「編寫自訂雲端控制項規則」。按一下「Continue」(繼續)。
如果評估規則無效,系統會顯示錯誤。
選取適當的發現項目嚴重性。
請撰寫修復操作說明,讓貴組織的事件應變人員和管理員能解決雲端控管機制的任何發現項目。按一下「繼續」。
檢查輸入內容,然後按一下「建立」。
CLI
使用 gcloud CLI 時,您最多可以建立含有三項規則的自訂雲端控制項。每項規則只能套用至一種資源類型。
如要建立自訂雲端控管機制,請執行 gcloud compliance-manager
cloud-controls create 指令:
gcloud compliance-manager cloud-controls create CLOUD_CONTROL \
--location=LOCATION \
--organization=ORGANIZATION \
[--display-name=DISPLAY_NAME] \
[--description=DESCRIPTION] \
[--categories=[CATEGORIES,...]] \
[--finding-category=FINDING_CATEGORY] \
[--parameter-spec=[defaultValue=DEFAULTVALUE],[description=DESCRIPTION],[displayName=DISPLAYNAME],[isRequired=ISREQUIRED],[name=NAME],[substitutionRules=SUBSTITUTIONRULES],[validation=VALIDATION],[valueType=VALUETYPE]] \
[--remediation-steps=REMEDIATION_STEPS] \
[--rules=[celExpression=CELEXPRESSION],[description=DESCRIPTION],[ruleActionTypes=RULEACTIONTYPES]] \
[--severity=SEVERITY] \
[--supported-cloud-providers=[SUPPORTED_CLOUD_PROVIDERS,…]] \
[--supported-target-resource-types=[SUPPORTED_TARGET_RESOURCE_TYPES,…]]
替換下列值:
CLOUD_CONTROL:雲端控制項的專屬英數字元名稱ORGANIZATION:組織 IDLOCATION:儲存雲端控制項的區域DISPLAY_NAME:雲端控管機制的人類可讀名稱DESCRIPTION:雲端控制項用途的選用說明CATEGORIES,…:選用參數,定義雲端控管機制所屬的類別。如需允許的類別清單,請參閱「gcloud compliance-manager cloud-controls create」。FINDING_CATEGORY:雲端控制項產生發現項目時,Security Command Center 發現項目資訊主頁中顯示的值--parameter-spec=[defaultValue=DEFAULTVALUE], \ [description=DESCRIPTION], \ [displayName= DISPLAYNAME], \ [isRequired=ISREQUIRED], \ [name=NAME], \ [substitutionRules=SUBSTITUTIONRULES], \ [validation=VALIDATION], \ [valueType=VALUETYPE]...]
是雲端控管機制的選用參數資訊,格式如下:
DEFAULTVALUE:如果使用者在部署架構時未自訂參數,則會套用這項資料。支援的值類型為boolValue、numberValue、stringListValue或stringValue。DESCRIPTION:控制項的選用說明ISREQUIRED:如果控制項需要設定參數,則為trueNAME:參數名稱SUBSTITUTIONRULES:法規遵循管理員插入參數自訂值的方式和位置。使用 proto 點標記法 (例如rules[0].org_policy_constraint...) 指定規則中的目標路徑。請選擇下列其中一個選項:attributeSubstitutionRule:如要將參數值直接插入規則的結構欄位 (例如在組織政策限制規則範本中填入受限制值清單),請使用這個選項。如果規則使用文字字串 (或 CEL 運算式),則為
placeholderSubstitutionRule。字串必須包含前置字元為$的預留位置變數 (例如$deniedServices),而這項規則會指示編譯器將參數對應至該預留位置。
以下範例會建立名為
deniedServices的清單參數,類型為STRINGLIST。部署時,它會使用attributeSubstitutionRule,將使用者提供的服務名稱 (例如compute.googleapis.com) 直接新增至結構化自訂組織政策規則 (denied_values):--parameter-spec='name=deniedServices,isRequired=true,valueType=STRINGLIST,substitutionRules=[{attributeSubstitutionRule={attribute="rules[0].org_policy_constraint.policy_rules[0].values.denied_values"}}]'VALIDATION是允許的值組合。請選擇下列其中一個選項:使用
allowedValues強制執行靜態許可清單,例如將位置參數限制為特定字串欄位:validation={allowedValues={values=[{stringValue=us-central1},{stringValue=us-west1}]}}使用
intRange對整數強制執行數值界限,例如將保留期限設為 1 到 365 之間:validation={intRange={min=1,max=365}}使用
regexpPattern對字串文字強制執行規則運算式比對,例如要求嚴格的英數字元命名:validation={regexpPattern={pattern="^[a-z][-a-z0-9]*$"}}
VALUETYPE:使用者為這個參數提供的值,其資料類型或格式。支援的值類型為STRING、BOOLEAN、STRINGLIST、NUMBER和ONEOF。
或者,您也可以指定定義參數的 JSON 或 YAML 檔案。例如:
--parameter-spec=path_to_file.(yaml|json)。展開下列部分,即可查看 JSON 和 YAML 檔案範例。JSON 檔案範例
[ { "name": "deniedServices", "displayName": "Services Requiring CMEK", "description": "List of service names that must use Customer-Managed Encryption Keys.", "isRequired": true, "valueType": "STRINGLIST", "substitutionRules": [ { "attributeSubstitutionRule": { "attribute": "rules[0].org_policy_constraint.policy_rules[0].values.denied_values" } } ] } ]YAML 檔案範例
- name: deniedServices displayName: "Services Requiring CMEK" description: "List of service names that must use Customer-Managed Encryption Keys." isRequired: true valueType: STRINGLIST substitutionRules: - attributeSubstitutionRule: attribute: "rules[0].org_policy_constraint.policy_rules[0].values.denied_values"REMEDIATION_STEPS:解決任何發現項目所需的步驟。這個字串長度上限為 400 個半形字元。
--rules=[celExpression=CELEXPRESSION],[description=DESCRIPTION],[ruleActionTypes=RULEACTIONTYPES]是您要強制執行的規則,格式如下:CELEXPRESSION:規則的一般運算語言 (CEL) 運算式。如要瞭解如何編寫 CEL 運算式,請參閱「編寫自訂雲端控管機制的規則」。包含下列項目:expression:CEL 運算式,最多 1, 000 個字元resourceTypesValues:資源名稱,格式為SERVICE_NAME/type。使用values陣列列出要套用規則的所有資源類型,例如values=[compute.googleapis.com/Instance]。
DESCRIPTION:規則說明RULEACTIONTYPES:規則執行的動作。支援的值為rule-action-type-detective、rule-action-type-preventive和rule-action-type-audit。
舉例來說,如要檢查 Cloud Key Management Service 金鑰輪替週期,請輸入下列指令:
--rules="[ { \"celExpression\": { \"expression\": \"has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')\", \"resourceTypesValues\": { \"values\": [ \"cloudkms.googleapis.com/CryptoKey\" ] } }, \"description\": \"Check KMS key rotation period\", \"ruleActionTypes\": [ \"rule-action-type-detective\" ] } ]"或者,您也可以指定定義規則的 JSON 或 YAML 檔案。例如
--rules=path_to_file.(yaml|json)。展開下列部分,即可查看 JSON 和 YAML 檔案範例。JSON 檔案範例
[ { "celExpression": { "expression": "has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')", "resourceTypesValues": { "values": [ "cloudkms.googleapis.com/CryptoKey" ] } }, "description": "Check KMS key rotation period to ensure it is under 60 hours.", "ruleActionTypes": [ "rule-action-type-detective" ] } ]YAML 檔案範例
- celExpression: expression: "has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')" resourceTypesValues: values: - cloudkms.googleapis.com/CryptoKey description: "Check KMS key rotation period to ensure it is under 60 hours." ruleActionTypes: - rule-action-type-detectiveSEVERITY:雲端控管機制的關鍵程度。支援的值為critical、high、medium和low。SUPPORTED_CLOUD_PROVIDERS,…:這項雲端控管機制適用的雲端服務供應商。目前僅支援gcp。SUPPORTED_TARGET_RESOURCE_TYPES,…:雲端控制項支援的資源類型 (App Hub 中的組織、資料夾、專案或已啟用應用程式管理功能的資料夾)。支援的值為target-resource-crm-type-folder、target-resource-crm-type-org、target-resource-crm-type-project和target-resource-type-application。
舉例來說,如要建立強制執行資源位置的雲端控制項,請執行下列指令:
gcloud compliance-manager cloud-controls create \
restrict-resource-locations \
--organization=3589215982 \
--location=global \
--display-name="Restrict Resource Locations" \
--description="Enforces checks to ensure resources are only deployed in approved cloud regions." \
--severity=high \
--finding-category="LOCATION_VIOLATION" \
--supported-cloud-providers="gcp" \
--supported-target-resource-types="target-resource-crm-type-project" \
--parameter-spec='name=allowedLocations,isRequired=true,valueType=STRINGLIST,substitutionRules=[{placeholderSubstitutionRule={attribute="rules[0].cel_expression.expression"}}]' \
--rules="[{\"celExpression\": {\"expression\": \"resource.location in \$allowedLocations\", \"resourceTypesValues\": {\"values\": [\"compute.googleapis.com/Instance\"]}}, \"description\": \"Check Compute Engine instance locations\", \"ruleActionTypes\": [\"rule-action-type-detective\"]}]"
如要建立相同的控制項,但使用 YAML 檔案定義參數和規則,請執行下列指令:
gcloud compliance-manager cloud-controls create \
restrict-resource-locations \
--organization=3589215982 \
--location=global \
--display-name="Restrict Resource Locations" \
--description="Enforces checks to ensure resources are only deployed in approved cloud regions." \
--severity=high \
--finding-category="LOCATION_VIOLATION" \
--supported-cloud-providers="gcp" \
--supported-target-resource-types="target-resource-crm-type-project" \
--parameter-spec=parameters.yaml \
--rules=rules.yaml
Terraform
使用 Terraform 時,您最多可以建立含有三項規則的自訂雲端控管機制。每項規則只能套用至一種資源類型。
以下範例說明如何使用 Terraform 建立自訂雲端控制項。
編輯自訂雲端控管機制
建立雲端控管機制後,您可以變更其名稱、說明、規則、修復步驟和嚴重性等級。您無法變更雲端控管機制類別。
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「設定」分頁中,按一下「Cloud 控制項」。系統會顯示可用的雲端控制項清單。
按一下要編輯的雲端控制項。
在「Cloud controls details」(雲端控管機制詳細資料) 頁面中,確認雲端控管機制未包含在架構中。如有需要,請編輯架構以移除雲端控管機制。
按一下 [編輯]。
在「Edit custom cloud control」(編輯自訂雲端控管機制) 頁面中,視需要變更名稱和說明。按一下「Continue」(繼續)。
更新規則、發現項目嚴重性和修復步驟。按一下「繼續」。
檢查變更,然後按一下「儲存」。
將內建 CloudControl 更新至新版本
Google 會在服務部署新功能或出現新的最佳做法時,定期更新內建的雲端控制項。更新內容可能包括新的控管機制,或對現有控管機制進行變更。
您可以在「Configure」(設定) 分頁的雲端控制項資訊主頁,或雲端控制項詳細資料頁面,查看內建雲端控制項的版本。
收到通知後,如要更新雲端控管機制,您必須更新包含該雲端控管機制的已部署架構。如需操作說明,請參閱「將內建架構更新至較新版本」。
刪除自訂雲端控管機制
如果不再需要 CloudControl,可以刪除。您只能刪除自己建立的雲端控管機制。無法刪除內建的雲端控制項。
控制台
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「設定」分頁中,按一下「Cloud 控制項」。系統會顯示可用的雲端控制項清單。
按一下要刪除的雲端控制項。
在「Cloud controls details」(雲端控管機制詳細資料) 頁面中,確認雲端控管機制未包含在架構中。如有需要,請編輯架構以移除雲端控管機制。
點選「刪除」。
在「刪除」視窗中,查看訊息。輸入
Delete,然後按一下「Confirm」(確認)。
CLI
如要刪除自訂雲端控管機制,請執行 gcloud compliance-manager
cloud-controls delete 指令:
gcloud compliance-manager cloud-controls delete CLOUD_CONTROL \
--location=LOCATION \
--organization=ORGANIZATION
替換下列值:
CLOUD_CONTROL:雲端控管機制名稱ORGANIZATION:組織 IDLOCATION:儲存雲端控制項的區域
舉例來說,如要刪除名為 restrict-resource-locations 的雲端控制項,請執行下列指令:
gcloud compliance-manager cloud-controls delete \
restrict-resource-locations \
--organization=3589215982 \
--location=global
安全狀態分析偵測工具與雲端控管機制的對應關係
下表顯示 Compliance Manager 雲端控管機制如何對應至安全狀態分析偵測工具。
位址 位址| 安全狀態分析中的發現項目類別 | Compliance Manager 中的雲端控管機制名稱 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
無法使用 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
無法使用 |
|
無法使用 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|