法規遵循管理工具架構包含雲端控管機制,可協助您在雲端環境中,滿足組織或專案的安全性和法規要求。套用架構分為兩個步驟。首先,您必須找出符合貴公司安全性和法規遵循義務的雲端控管機制。接著,您會將包含這些雲端控制項的架構,部署到Google Cloud中適當的組織、資料夾或專案。本頁面可協助您完成下列步驟:
評估哪種內建架構最符合您的法規和安全需求。您可以建立自己的自訂架構,但建議您從內建架構開始。
判斷哪些內建雲端控管機制符合業務需求。(僅限 Premium 和 Enterprise 級別) 如有需要,您可以建立自訂雲端控管機制。
決定要將架構部署至 Google Cloud組織,還是特定資料夾和專案。每個組織、資料夾或專案只能部署一個架構。法規遵循管理員支援已設定應用程式管理功能的資料夾。
複製現有架構,並根據需求修改。如有需要,您可以建立自訂架構。
在適當的組織、資料夾或專案中部署架構。
事前準備
請先完成這些工作,再完成本頁其餘工作。
設定權限
-
如要取得套用架構所需的權限,請要求管理員在貴組織或專案中授予您下列 IAM 角色:
- Compliance Manager 管理員 (
roles/cloudsecuritycompliance.admin) -
如要查看發現項目資訊主頁:法規遵循管理員檢視者 (
roles/cloudsecuritycompliance.viewer) -
如要部署包含雲端控管機制的架構,且這些控管機制是以組織政策為基礎,則須具備下列其中一項權限:
- 組織政策管理員 (
roles/orgpolicy.policyAdmin) - Assured Workloads 管理員 (
roles/assuredworkloads.admin) - Assured Workloads 編輯者 (
roles/assuredworkloads.editor)
- 組織政策管理員 (
- (僅限組織層級) 如要在部署架構時建立資料夾,請具備下列其中一項權限:
- (僅限組織層級) 如要在部署架構時建立專案,必須具備下列所有權限:
-
如要將 Data Security Posture Management (DSPM) 架構指派給 App Hub 應用程式,必須具備下列所有角色:App Hub 檢視者 (
roles/apphub.viewer)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
使用組織政策部署架構的角色,具備必要的orgpolicy.policies.create、orgpolicy.policies.update和orgpolicy.policies.get權限。如果是組織層級部署作業,建立資料夾的角色會包含必要的
resourcemanager.folders.get、resourcemanager.folders.create和resourcemanager.folders.delete權限。如果是組織層級部署作業,建立專案的角色會包含必要的
resourcemanager.projects.get、resourcemanager.projects.create、resourcemanager.projects.delete和resourcemanager.projects.createBillingAssignment權限。將 DSPM 架構指派給應用程式的角色,包含必要的
apphub.locations.list、apphub.applications.list和apphub.applications.get權限。 - 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」(法規遵循) 頁面。
選取您的機構或專案。
如要查看所有可用的架構,請按一下「Configure」(設定) 分頁標籤。
資訊主頁會顯示可用的架構、簡短說明、支援的平台和級別,以及已套用架構的資源。
如要查看特定架構的詳細資料,請按一下架構名稱。
CLI
您可以查看特定架構的資訊,或列出組織中的所有架構。
查看框架詳細資料
如要查看特定架構的詳細資料,請執行 gcloud compliance-manager
frameworks describe 指令:
gcloud compliance-manager frameworks describe FRAMEWORK \
--location=LOCATION \
--organization=ORGANIZATION \
[--major-revision-id=MAJOR_REVISION_ID]
更改下列內容:
FRAMEWORK:架構名稱ORGANIZATION:組織 IDLOCATION:儲存架構的區域MAJOR_REVISION_ID:選用旗標,指定要查看的架構版本。如未加入這個旗標,系統會傳回最新版本。
舉例來說,如要查看名稱為 builtin-security-essentials 且主要修訂版本編號為 12 的架構,請執行下列指令:
gcloud compliance-manager frameworks describe \
builtin-security-essentials \
--organization=3589215982 \
--location=global \
--major-revision-id=12
詳情請參閱「gcloud compliance-manager frameworks describe」。
取得架構清單
如要取得組織中的架構清單,請執行 gcloud
compliance-manager frameworks list 指令:
gcloud compliance-manager frameworks list \
--location=LOCATION \
--organization=ORGANIZATION
替換下列值:
ORGANIZATION:組織 IDLOCATION:儲存架構的區域
舉例來說,如要查看儲存在全域位置的機構 3589215982 內所有架構,請執行下列指令:
gcloud compliance-manager frameworks list \
--organization=3589215982 \
--location=global
如要瞭解選用旗標,請參閱「gcloud compliance-manager frameworks list」。
建立架構
確定哪些雲端控管機制適用於組織、特定資料夾或專案中的資源後,即可建立架構。您可以建立自訂架構,或複製現有架構並加以修改。複製架構時,系統會納入所有內建雲端控管機制的最新版本。
控制台
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「設定」分頁中,按一下「建立自訂框架」。
完成下列其中一項:
如要使用現有架構,請完成下列步驟:
選取「依據現有框架開始建立」。
選取要複製的架構。
按一下「新增」。
如要建立自訂架構,請選取「Start new」(開始建立)。
輸入框架的名稱、專屬 ID 和說明。按一下「Continue」(繼續)。
如果您複製現有架構,系統會顯示現有架構中的雲端控管機制清單。
如要新增所需的雲端控管機制,請完成下列步驟:
如要新增現有的雲端控管機制,請按一下「新增雲端控管機制」。選取所需的所有雲端控管機制,然後按一下「Add」(新增)。
新增控管機制時,請確認控管機制類型 (偵測、預防或稽核)。請注意,預防和稽核控制項僅適用於 Premium 和 Enterprise 級別。請勿在用於監控環境和偵測違規事項的架構中,加入僅限稽核的控制項。您無法部署含有僅限稽核控管機制的架構。
(僅限 Premium 和 Enterprise 級別) 如要建立自訂雲端控管機制,請按一下「Create custom cloud control」(建立自訂雲端控管機制)。如需操作說明,請參閱「建立自訂雲端控管機制」。
按一下「繼續」。
新增雲端控管機制所需的任何其他參數。
舉例來說,如要啟用 Data Security Posture Management (DSPM) 雲端控管機制,例如「僅限獲准使用者存取機密資料」雲端控管機制,請指定主體必須使用的位置。如要進一步瞭解 Data Security Posture Management 控制項,請參閱「進階資料治理和安全性雲端控制項」。
點選「建立」。
CLI
如要建立自訂架構,請執行 gcloud compliance-manager
frameworks create 指令:
gcloud compliance-manager frameworks create FRAMEWORK \
--location=LOCATION \
--organization=ORGANIZATION \
--display-name=DISPLAY_NAME \
[--description=DESCRIPTION] \
[--category=[CATEGORY,...] \
[--cloud-control-details=[majorRevisionId=MAJOR_REVISION_ID],[name=NAME],[parameters=PARAMETERS]]
替換下列值:
FRAMEWORK:架構的專屬英數字元 IDORGANIZATION:組織 IDLOCATION:儲存架構的區域DISPLAY_NAME:人類可讀的架構名稱DESCRIPTION:選用,說明架構用途[CATEGORY,...]:選用參數,用於定義架構所屬的類別。自訂架構的建議值為custom-framework。--cloud-control-details=`[majorRevisionId=MAJOR_REVISION_ID],[name=NAME],[parameters=PARAMETERS]'
:要納入架構的雲端控管機制選用清單,格式如下:
MAJOR_REVISION_ID:選用旗標,指定要查看的雲端控制項版本。如未加入旗標,則會使用最新版本。NAME:雲端控制項的名稱,格式為organizations/ORGANIZATION_ID/locations/LOCATION/cloudControls/NAME。NAME是雲端控管機制的專屬 ID。您可以使用gcloud compliance-manager cloud-controls list指令找到雲端控制項 ID。PARAMETERS:特定雲端控管機制所需的選用參數。舉例來說,如要啟用 Data Security Posture Management 雲端控管機制,例如「限制僅允許使用者存取機密資料」雲端控管機制,請指定主體必須使用的位置。
或者,您也可以指定包含所有雲端控制項清單的 JSON 或 YAML 檔案。例如:
--cloud-control-details=path_to_file.(yaml|json)。展開下列部分,即可查看 JSON 和 YAML 檔案範例。JSON 檔案範例
[ { "name": "organizations/3589215982/locations/global/cloudControls/restrict-bucket-region", "majorRevisionId": 1, "parameters": [ { "name": "location", "parameterValue": { "stringValue": "us-west" } } ] }, { "name": "organizations/3589215982/locations/global/cloudControls/enable-binary-authorization", "majorRevisionId": 2 } ]YAML 檔案範例
- name: organizations/3589215982/locations/global/cloudControls/restrict-bucket-region majorRevisionId: 1 parameters: - name: location parameterValue: stringValue: us-west - name: organizations/3589215982/locations/global/cloudControls/enable-binary-authorization majorRevisionId: 2如果在建立架構時未指定雲端控管機制,可以稍後透過控制台新增。
例如,如要建立名為 my-custom-framework 的架構,請執行下列指令:
gcloud compliance-manager frameworks create \
my-custom-framework \
--organization=3589215982 \
--location=global \
--description="This framework is my custom framework" \
--display-name="My framework name" \
--cloud-control-details='[{"name":"organizations/3589215982/locations/global/cloudControls/restrict-bucket-region","majorRevisionId":1,"parameters":[{"name":"location","parameterValue":{"stringValue":"us-west"}}]},{"name":"organizations/3589215982/locations/global/cloudControls/enable-binary-authorization","majorRevisionId":2}]'
Terraform
以下範例說明如何使用 Terraform 建立架構。
部署架構
將架構部署至組織、資料夾或專案,即可使用架構的雲端控管機制,控管及監控這些資源。您可以將多個架構部署至各個組織、資料夾或專案。如果部署的架構僅包含進階資料安全性雲端控管機制,則可將架構部署至設定為應用程式管理的資料夾中的 App Hub 應用程式。
資料夾和專案會透過 Google Cloud 資源階層繼承架構。因此,如果您在組織層級和專案層級部署架構,這兩個架構中的所有雲端控管機制都會套用至專案中的資源。如果雲端控管定義有任何差異,專案中的資源會使用較低層級的雲端控管。舉例來說,如果雲端控制規則在組織層級設為「允許」,在專案層級設為「拒絕」,則專案中的資源會套用「拒絕」設定。
最佳做法是在組織層級部署架構,其中包含可套用至整個業務的雲端控管機制。然後再視需要,將更嚴格的架構部署至資料夾和專案。
控制台
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「Configure」(設定) 分頁中,針對要部署的架構,依序點選 「More Actions」(更多動作)>「Apply to resources」(套用至資源)。
選擇「監控」或「監控並預防」,即可只監控偏差。
選取要部署架構的資源。您可以選擇現有的組織、資料夾或專案。如果只要使用 DSPM,可以選取應用程式,部署僅包含 DSPM 進階雲端控管機制的架構。您也可以建立新的資料夾或專案,並將架構部署至該資料夾或專案。
完成下列其中一項:
如果選取「Monitor」,請完成下列步驟:
- 驗證資訊。
- 如果您選取了已設定應用程式管理的資料夾,且架構僅包含進階 DSPM 雲端控管機制,請選取要監控的應用程式。
- 按一下「監控」。
如果選取「監控及防範」,請完成下列步驟:
- 點選「下一步」。查看雲端控管機制和模式。
- 按一下「繼續」。
- 如果系統顯示額外資訊,請確認某些雲端控管機制所需的額外資訊。
- 點選「下一步」。
- 檢查所選項目,然後按一下「強制執行」。
CLI
如要在組織中部署架構,請執行 gcloud
compliance-manager framework-deployments create 指令。建議您採取下列最佳做法:
為 CloudControl 中繼資料建立獨立的 YAML 或 JSON 檔案。
使用適當的目標旗標,指出您要部署至現有的組織、資料夾或專案,還是要在部署架構的同時建立新的專案或資料夾。
請盡可能只使用資源 ID,而非完整資源名稱。
gcloud compliance-manager framework-deployments create \
(FRAMEWORK_DEPLOYMENT : \
--location=LOCATION \
--organization=ORGANIZATION) \
--cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE] \
(--framework=FRAMEWORK : \
--framework-major-revision-id=FRAMEWORK_MAJOR_REVISION_ID) \
(--target-resource-config-existing=TARGET_RESOURCE_CONFIG_EXISTING | \
--target-resource-creation-config-folder-display-name=TARGET_RESOURCE_CREATION_CONFIG_FOLDER_DISPLAY_NAME \
--target-resource-creation-config-folder-parent=TARGET_RESOURCE_CREATION_CONFIG_FOLDER_PARENT | \
--target-resource-creation-config-project-billing-account-id=TARGET_RESOURCE_CREATION_CONFIG_PROJECT_BILLING_ACCOUNT_ID \
--target-resource-creation-config-project-display-name=TARGET_RESOURCE_CREATION_CONFIG_PROJECT_DISPLAY_NAME \
--target-resource-creation-config-project-parent=TARGET_RESOURCE_CREATION_CONFIG_PROJECT_PARENT) \
[--description=DESCRIPTION]
替換下列值:
FRAMEWORK_DEPLOYMENT:架構部署作業的 IDORGANIZATION:組織 IDLOCATION:儲存架構部署作業的區域cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE]:架構中的雲端控管機制清單,包含名稱、參數、修訂版本 ID 和強制執行模式,格式如下:CLOUD_CONTROL_DETAILS:包含雲端控管機制名稱、參數和修訂版本 ID 清單的物件。格式如下:name=NAME:雲端控管機制的完整資源名稱,格式為organizations/ORGANIZATION_ID/locations/LOCATION/cloudControls/CLOUD_CONTROL_NAMEmajorRevisionId=MAJOR_REVISION_ID:雲端控制項的主要版本parameters=PARAMETERS:特定雲端控管機制所需的選用參數。舉例來說,如要啟用 Data Security Posture Management 雲端控管機制,例如「限制只有獲准使用者能存取機密資料」雲端控管機制,請指定主體必須使用的位置。
ENFORCEMENT_MODE:控制項是否為AUDIT、DETECTIVE或PREVENTIVE控制項或者,您也可以指定 JSON 或 YAML 檔案,其中包含雲端控管機制詳細資料和強制執行模式。例如:
--cloud-control-metadata=path_to_file.(yaml|json)。展開下列各節,即可查看 JSON 和 YAML 檔案範例。JSON 檔案範例
[ { "cloudControlDetails": { "name": "organizations/3589215982/locations/global/cloudControls/restrict-bucket-region", "majorRevisionId": 1, "parameters": [ { "name": "location", "parameterValue": { "stringValue": "us-west" } } ] }, "enforcementMode": "DETECTIVE" }, { "cloudControlDetails": { "name": "organizations/3589215982/locations/global/cloudControls/enable-binary-authorization", "majorRevisionId": 2 }, "enforcementMode": "DETECTIVE" } ]YAML 檔案範例
- cloudControlDetails: name: organizations/3589215982/locations/global/cloudControls/restrict-bucket-region majorRevisionId: 1 parameters: - name: location parameterValue: stringValue: us-west enforcementMode: DETECTIVE - cloudControlDetails: name: organizations/3589215982/locations/global/cloudControls/enable-binary-authorization majorRevisionId: 2 enforcementMode: DETECTIVEFRAMEWORK:要部署的現有架構名稱,格式為organizations/ORGANIZATION_ID/locations/LOCATION/frameworks/FRAMEWORK_NAMEFRAMEWORK_MAJOR_REVISION_ID:要部署的架構版本號碼TARGET_RESOURCE_CONFIG_EXISTING:要部署新架構的現有組織、資料夾或專案名稱,格式如下:organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID
TARGET_RESOURCE_CREATION_CONFIG_FOLDER_DISPLAY_NAME:要建立並部署架構的資料夾名稱TARGET_RESOURCE_CREATION_CONFIG_FOLDER_PARENT:要在其中建立新資料夾的現有組織或資料夾名稱。支援的格式為organizations/ORGANIZATION_ID和folders/FOLDER_ID。TARGET_RESOURCE_CREATION_CONFIG_PROJECT_BILLING_ACCOUNT_ID:如果您要建立新專案並部署架構,請指派帳單帳戶 ID 給新專案TARGET_RESOURCE_CREATION_CONFIG_PROJECT_DISPLAY_NAME:要建立並部署架構的專案名稱TARGET_RESOURCE_CREATION_CONFIG_PROJECT_PARENT: 要在其中建立新專案的現有組織或資料夾名稱。 支援的格式為organizations/ORGANIZATION_ID和folders/FOLDER_ID。DESCRIPTION:架構部署作業的選用說明
舉例來說,如要將名為 organizations/3589215982/locations/global/frameworks/builtin-aipp 的架構部署至資料夾 ID 為 example-folder 的現有資料夾,請執行下列指令:
gcloud compliance-manager framework-deployments create \
example-framework-deployment \
--organization=3589215982 \
--location=global \
--cloud-control-metadata='[{"cloudControlDetails": {"name": "organizations/3589215982/locations/global/cloudControls/restrict-bucket-region", "majorRevisionId": "1", "parameters": []}, "enforcementMode": "DETECTIVE"}, {"cloudControlDetails": {"name": "organizations/3589215982/locations/global/cloudControls/enable-binary-authorization", "majorRevisionId": 2}, "enforcementMode": "DETECTIVE"}]' \
--framework="organizations/3589215982/locations/global/frameworks/builtin-aipp" \
--framework-major-revision-id=6 \
--target-resource-config-existing="folders/example-folder" \
--description="Deployment for AI Platform into example-folder"
舉例來說,如要部署名為 organizations/3589215982/locations/global/frameworks/builtin-aipp 的架構,並在資料夾 ID 為 example-folder 的現有資料夾中建立名為 example-new-project 的新專案,請執行下列指令:
gcloud compliance-manager framework-deployments create \
example-framework-deployment \
--organization=3589215982 \
--location=global \
--cloud-control-metadata=deploy-controls.yaml \
--framework="organizations/3589215982/locations/global/frameworks/builtin-aipp" \
--framework-major-revision-id=6 \
--target-resource-creation-config-project-billing-account-id=012345-567890-ABCDEF \
--target-resource-creation-config-project-display-name=example-new-project \
--target-resource-creation-config-project-parent=folders/example-folder \
--description="Deployment for AI Platform into a new example-new-project in example-folder"
詳情請參閱「gcloud compliance-manager framework-deployments create」。
Terraform
以下範例說明如何使用 Terraform 部署架構。
部署架構後,您可以監控環境,瞭解是否偏離定義的雲端控制項。Security Command Center 會將漂移例項回報為發現項目,供您查看、篩選及解決。部署架構後,與雲端控制項相關的發現項目可能需要約六小時才會顯示。
編輯自訂架構
建立架構後,您可以變更名稱和說明、新增或移除雲端控管機制,以及更新任何參數。您只能編輯自己建立的架構,無法編輯內建架構。此外,您只能編輯未部署的架構。
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「Configure」(設定) 分頁中,按一下要編輯的架構。
在「Framework details」(架構詳細資料) 頁面中,確認架構未指派給資源。如有需要,請移除指派項目。
依序點選「動作」 > 「編輯」。
在「Update framework details」(更新架構詳細資料) 頁面中,視需要變更名稱和說明。按一下「Continue」(繼續)。
如要變更架構中包含的雲端控管機制,請完成下列步驟:
如要新增現有的雲端控管機制,請按一下「新增雲端控管機制」。選取所有需要的雲端控管機制,然後按一下「Add」(新增)。
如要建立自訂雲端控管機制,請按一下「Create custom cloud control」(建立自訂雲端控管機制)。如需操作說明,請參閱「建立自訂雲端控管機制」。
如要移除雲端控管機制,請選取該機制,然後按一下「Remove」(移除)。
按一下「繼續」。
新增雲端控管機制所需的任何其他參數。
按一下 [儲存]。
從資源中移除已部署的架構
您可以從指派架構的組織、資料夾或專案中移除架構。移除架構後,Compliance Manager 就不會再為資源階層中的該節點產生發現項目。
移除架構後,大部分相關發現項目的狀態會在七天後變更為 Inactive。如果架構包含「Restrict Flow of Sensitive Data Across Geographic Jurisdictions」(限制機密資料跨地理管轄區流動) 雲端控管機制,發現項目會在 90 天後變更為 Inactive。如果發現項目與「限制機密資料在不同地理管轄區之間的流動」和「限制僅允許使用者存取機密資料」雲端控管機制有關,系統不會自動變更其狀態。
控制台
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「Configure」(設定) 分頁中,按一下要移除的架構。
在「Framework details」(架構詳細資料) 頁面中,依序點選「Actions」(動作) >「Manage resource assignments」(管理資源指派作業)。
在「Assigned resources」(指派的資源) 表格中,找出要移除的資源,然後按一下 「Delete」(刪除)。
詳閱確認訊息,然後按一下「取消指派」。
選用:將相關聯發現項目的狀態變更為「
Inactive」。如需操作說明,請參閱「變更發現項目的狀態」。
CLI
如要移除組織中的特定架構部署作業,請執行 gcloud compliance-manager framework-deployments delete 指令:
gcloud compliance-manager framework-deployments delete \
FRAMEWORK_DEPLOYMENT \
--location=LOCATION \
--organization=ORGANIZATION \
--etag=ETAG_ID
替換下列值:
FRAMEWORK_DEPLOYMENT:架構部署作業的 IDORGANIZATION:組織 IDLOCATION:儲存架構部署作業的區域ETAG_ID:架構部署作業目前版本的 ID,可確保您刪除的是正確的架構部署作業版本。如果 ID 與目前版本不符,要求就會失敗。如果省略這個值,Compliance Manager 會無條件刪除架構部署作業。
舉例來說,如要從組織 3589215982 移除 example-deployment 並儲存在全域位置,請執行下列指令:
gcloud compliance-manager framework-deployments delete \
example-deployment \
--organization=3589215982 \
--location=global \
--etag=MTc3NDU4MjM4OTY0MzU5MjQ5OTI=
如要瞭解選用旗標,請參閱「gcloud compliance-manager framework-deployments delete」。
將內建架構更新至較新版本
Google 會在服務部署新功能或出現新的最佳做法時,定期更新內建架構。
您可以在「Configure」(設定) 分頁的架構資訊主頁,或架構詳細資料頁面中,查看內建架構的版本。
發生下列更新時,Google 會在控制台中通知您:
- 在框架中新增或移除內建雲端控管機制。
- 內建雲端控管機制會更新。
如要更新已部署的架構,請完成下列步驟:
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「設定」分頁中,按一下要更新的架構。
在「Framework details」(架構詳細資料) 頁面的「Assigned resources」(指派的資源) 表格中,查看標示為「Update available」(有可用的更新) 的指派作業「Update status」(更新狀態)。
建立更新後的雲端控管措施清單,包括要加入或從更新後的架構中移除的 ID、參數和修訂版本 ID。
如要套用變更,請完成下列步驟:
控制台
您可以使用 Google Cloud 控制台更新架構,方法是移除架構,然後重新部署。使用 gcloud CLI 或 Cloud Security Compliance REST API,即可就地更新架構,不會影響發現項目資訊主頁,也無須移除及重新部署架構。
CLI
如要就地更新架構部署作業,請執行
gcloud compliance-manager framework-deployments update指令。如要指定適用於架構的雲端控管機制和強制執行模式,請使用下列其中一個選項:- 使用
--cloud-control-metadata旗標,指定內嵌的雲端控管機制和強制執行模式。如果使用這個旗標,則必須指定適用於架構的所有雲端控管機制和強制執行模式。 - 在 JSON 或 YAML 檔案中指定雲端控管機制和強制執行模式。如果使用檔案,則必須指定適用於架構的所有雲端控管機制和強制執行模式。
- 使用
--add-cloud-control-metadata和--remove-cloud-control-metadata旗標,新增或移除個別雲端控制項。
執行下列指令:
gcloud compliance-manager framework-deployments update \ FRAMEWORK_DEPLOYMENT \ --location=LOCATION \ (--organization=ORGANIZATION | --project=PROJECT_ID) \ [--framework-major-revision-id=FRAMEWORK_MAJOR_REVISION_ID] \ [--cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE] \ | [--add-cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE]] \ [--remove-cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE]]] \ [--etag=ETAG_ID] \ [--async]更改下列內容:
FRAMEWORK_DEPLOYMENT:架構部署作業的 ID。LOCATION:儲存架構部署作業的區域。ORGANIZATION或PROJECT_ID:組織 ID 或專案 ID。FRAMEWORK_MAJOR_REVISION_ID:要更新至哪個架構的主要修訂版本 ID。如果省略這個旗標,Compliance Manager 會將部署作業更新至架構的最新主要修訂版本。您無法降級至較早的主要修訂版本 ID。可以是下列其中一項:
--cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE]:架構中的雲端控制項清單,包含名稱、參數、修訂版本 ID 和強制執行模式,格式如下:CLOUD_CONTROL_DETAILS:包含雲端控管機制名稱、參數和修訂版本 ID 清單的物件。格式如下:name=NAME:雲端控管機制的完整資源名稱,格式為organizations/ORGANIZATION_ID/locations/LOCATION/cloudControls/CLOUD_CONTROL_NAME或projects/PROJECT_ID/locations/LOCATION/cloudControls/CLOUD_CONTROL_NAME。majorRevisionId=MAJOR_REVISION_ID:雲端控制項的主要版本。parameters=PARAMETERS:特定雲端控管機制所需的選用參數。
ENFORCEMENT_MODE:控制項是否為AUDIT、DETECTIVE或PREVENTIVE控制項。--cloud-control-metadata=PATH_TO_FILE:JSON 或 YAML 檔案的路徑,其中包含雲端控管機制詳細資料和強制執行模式。展開下列各節,即可查看 JSON 和 YAML 檔案範例。JSON 檔案範例
[ { "cloudControlDetails": { "name": "organizations/3589215982/locations/global/cloudControls/restrict-bucket-region", "majorRevisionId": 1, "parameters": [ { "name": "location", "parameterValue": { "stringValue": "us-west" } } ] }, "enforcementMode": "DETECTIVE" }, { "cloudControlDetails": { "name": "organizations/3589215982/locations/global/cloudControls/enable-binary-authorization", "majorRevisionId": 2 }, "enforcementMode": "DETECTIVE" } ]YAML 檔案範例
- cloudControlDetails: name: organizations/3589215982/locations/global/cloudControls/restrict-bucket-region majorRevisionId: 1 parameters: - name: location parameterValue: stringValue: us-west enforcementMode: DETECTIVE - cloudControlDetails: name: organizations/3589215982/locations/global/cloudControls/enable-binary-authorization majorRevisionId: 2 enforcementMode: DETECTIVE--add-cloud-control-metadata或--remove-cloud-control-metadata:要從架構部署作業新增或移除的雲端控管機制。您可以在同一個指令中使用這兩個旗標。您可以使用下列其中一個選項,指定要新增或移除多個雲端控制項:- 為每個控制項重複這個旗標。
- 在單一旗標中,將控制項納入 JSON 清單
[ {...}, {...} ]。 - 提供 JSON 或 YAML 檔案的路徑,其中包含控制項清單。使用與
--cloud-control-metadata旗標相同的結構定義。例如:--add-cloud-control-metadata=add-controls.yaml --remove-cloud-control-metadata=remove-controls.yaml。
ETAG_ID:目前架構部署作業版本的 ID,可確保您更新的是預期的架構部署作業版本。如果 ID 與目前版本不符,要求就會失敗。如果省略這個值,Compliance Manager 會無條件更新架構部署作業。
您可以選擇加入
--async旗標,立即傳回結果,不必等待長時間執行的更新作業完成。舉例來說,如要更新部署至組織
3589215982並儲存在global位置的example-deployment,請執行下列指令:gcloud compliance-manager framework-deployments update \ example-deployment \ --organization=3589215982 \ --location=global \ --framework-major-revision-id=7 \ --cloud-control-metadata=cloud-control-metadata.yaml \ --etag=MTc3NDU4MjM4OTY0MzU5MjQ5OTI=如要瞭解選用旗標,請參閱「gcloud compliance-manager framework-deployments update」。
REST
如要就地更新架構部署作業,請呼叫
frameworkDeployments.patch方法 (適用於組織或專案)。指定目標主要修訂版本 ID,以及適用於cloudControlMetadata中架構的所有雲端控管機制和強制執行模式。使用任何要求資料之前,請先修改下列項目的值:
- RESOURCE_TYPE:架構部署作業的上層資源容器類型:
organizations或projects。 - RESOURCE_ID:組織 ID 或專案 ID。例如:
3589215982。 - LOCATION:架構部署作業的位置。支援的值:
global。 - FRAMEWORK_DEPLOYMENT:要更新的架構部署作業 ID。例如:
example-deployment。 - UPDATE_MASK:選用,以半形逗號分隔的清單,列出要覆寫的欄位 (相對於
FrameworkDeployment資源)。例如:framework.majorRevisionId,cloudControlMetadata。如果省略,系統會覆寫所有欄位。 - FRAMEWORK_NAME:架構的資源名稱,格式為
organizations/ORGANIZATION_ID/locations/LOCATION/frameworks/FRAMEWORK_ID或projects/PROJECT_ID/locations/LOCATION/frameworks/FRAMEWORK_ID。例如:organizations/3589215982/locations/global/frameworks/builtin-aipp。 - FRAMEWORK_MAJOR_REVISION_ID:要更新至的架構主要修訂版本 ID。如果省略,法規遵循管理員會將部署作業更新至架構的最新主要修訂版本。
- CLOUD_CONTROL_NAME:架構中雲端控管機制的完整資源名稱,格式為
organizations/ORGANIZATION_ID/locations/LOCATION/cloudControls/CLOUD_CONTROL_ID。 - MAJOR_REVISION_ID:雲端控管機制的主要修訂版本 ID。
- ENFORCEMENT_MODE:雲端控管機制是
AUDIT、DETECTIVE還是PREVENTIVE控管機制。 - ETAG_ID:選用 ID,用於識別目前版本的架構部署作業,避免並行更新互相覆寫。例如:
MTc3NDU4MjM4OTY0MzU5MjQ5OTI=。
HTTP 方法和網址:
PATCH https://cloudsecuritycompliance.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/LOCATION/frameworkDeployments/FRAMEWORK_DEPLOYMENT?updateMask=UPDATE_MASK
JSON 要求內文:
{ "framework": { "framework": "FRAMEWORK_NAME", "majorRevisionId": "FRAMEWORK_MAJOR_REVISION_ID" }, "cloudControlMetadata": [ { "cloudControlDetails": { "name": "CLOUD_CONTROL_NAME", "majorRevisionId": "MAJOR_REVISION_ID", "parameters": [] }, "enforcementMode": "ENFORCEMENT_MODE" } ], "etag": "ETAG_ID" }如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為
request.json的檔案中,然後執行下列指令:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudsecuritycompliance.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/LOCATION/frameworkDeployments/FRAMEWORK_DEPLOYMENT?updateMask=UPDATE_MASK"PowerShell
將要求主體儲存在名為
request.json的檔案中,然後執行下列指令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudsecuritycompliance.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/LOCATION/frameworkDeployments/FRAMEWORK_DEPLOYMENT?updateMask=UPDATE_MASK" | Select-Object -Expand Content您應該會收到如下的 JSON 回覆:
{ "name": "organizations/3589215982/locations/global/operations/operation-1726842525305-6228ddb4dca96-78a6db59-f9dd9a24", "done": false }回應包含下列資訊:
name:長時間執行的更新作業專屬字串 ID,可用來追蹤更新進度。done:布林值標記,在更新作業開始時設為false,並在更新完成時設為true。
- 使用
刪除自訂架構
如果不再需要某個架構,可以將其刪除。您只能刪除自己建立的架構,無法刪除內建架構。
控制台
前往 Google Cloud 控制台的「Compliance」(法規遵循) 頁面。
選取您的機構或專案。
在「Configure」(設定) 分頁中,按一下要取消指派資源的架構。
在「Framework details」(架構詳細資料) 頁面中,確認架構未指派給資源。如有需要,請移除指派項目。
依序點選「動作」 > 「刪除」。
在「刪除」視窗中,查看訊息。輸入
Delete,然後按一下「Confirm」(確認)。
CLI
如要刪除組織中的特定架構,請執行 gcloud compliance-manager frameworks delete 指令:
gcloud compliance-manager frameworks delete \
FRAMEWORK \
--location=LOCATION \
--organization=ORGANIZATION
替換下列值:
FRAMEWORK:架構名稱ORGANIZATION:組織 IDLOCATION:儲存架構的區域
舉例來說,如要從組織 3589215982 移除 example-framework 並儲存在全域位置,請執行下列指令:
gcloud compliance-manager frameworks delete \
example-framework \
--organization=3589215982 \
--location=global
如要瞭解選用旗標,請參閱「gcloud compliance-manager frameworks delete」。