本頁說明如何使用 Organization Policy Service,確保機構、資料夾或專案中的所有 Compute Engine 執行個體 (包括 Google Kubernetes Engine VM) 都已啟用 VM 管理工具。
本指南適用於安全團隊,確保所有必要程式 (例如安全和監控代理程式) 在機構、資料夾或專案中的所有執行個體上執行。如要僅透過機構政策強制執行設定,請參閱本指南。如要採用「設定即程式碼」方法,請使用 Config Sync。Config Sync 可讓您設定及控管叢集的許多層面,並提供機構政策以外的價值。
閱讀本頁面之前,請先熟悉 VM Manager 和 Resource Manager 限制。
本指南說明如何在機構或資料夾的所有專案中,強制使用 VM 管理員。本指南不會說明如何使用 OS 原則設定及使用 VM 管理工具。如需相關操作說明,請參閱「建立 OS 政策指派作業」。
關於 VM 管理員
VM 管理員是一套工具,可用來管理在 Compute Engine 上執行 Windows 和 Linux 的大型虛擬機器 (VM) 機群作業系統。您可以使用 VM 管理工具套用作業系統政策,自訂 VM 上執行的程式。舉例來說,您可以定義在資源上安裝代理程式的政策,並在多個資源中重複使用該政策。根據預設,VM 管理員會在Google Cloud 專案中停用。
您可以使用 OSPolicyAssignments
縮小 OS 政策的適用範圍,透過選取器將政策套用至特定 VM,進一步控管 VM 管理員套用政策的位置。舉例來說,所有 GKE 節點 VM 都具有 goog-gke-node
標籤,您可以透過 OS 政策指派作業指定這個標籤。
機構政策和 VM 管理員
如果 Google Cloud 機構組織有多個層級的階層 (例如資料夾和子資料夾),手動在所有這些專案中啟用 VM 管理員,可能會造成不必要的管理負擔。您可以使用 Organization Policy Service 和 constraints/compute.requireOsConfig
限制,要求資料夾或機構中的所有專案在所有 VM 上啟用 VM 管理員。使用機構政策強制執行 VM 管理工具的好處包括:
- 所有新專案都會在每個專案和 VM 中新增
enable-osconfig=TRUE
中繼資料標籤。 - 如果有人嘗試移除這個標籤或將其設為
true
以外的值,系統會拒絕這項變更。 - 如果有人嘗試建立或更新 VM,並將
enable-osconfig
中繼資料鍵設為true
以外的值,系統會拒絕這項變更。
事前準備
開始之前,請確認你已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update
,取得最新版本。
- 請確認您已使用 VM 管理工具搭配 OS 政策和 OS 政策指派,在 VM 上執行代理程式。如需操作說明,請參閱「建立 OS 政策指派作業」。
-
Enable the Cloud Resource Manager API, OS Config API APIs.
限制
constraints/compute.requireOsConfig
機構政策有下列限制:
- 新機構政策不會影響先前違規的資源。您可以手動設定政策的中繼資料,也可以對現有資源使用
gcloud
。 - 只要有權變更專案中 Compute Engine 執行個體的中繼資料,就能透過設定
osconfig-disabled-features
中繼資料欄位,在 VM 上停用osconfig-agent
。 - 如果
osconfig-agent
未執行,VM Manager 資訊主頁會顯示 VM 不符合規範。舉例來說,如果使用者手動停用代理程式,就可能會發生這種情況。
必要的角色
如要取得管理機構政策所需的權限,請要求管理員為您授予機構的機構政策管理員 (roles/orgpolicy.policyAdmin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
在整個機構啟用 compute.requireOsConfig
啟用 VM 管理員並將 OSPolicyAssignment
範圍設為 VM 後,您可以使用 constraints/compute.requireOsConfig
組織政策,確保所有新專案預設啟用 VM 管理員。如何強制執行 constraints/compute.requireOsConfig
取決於您使用的 API 版本。
Organization Policy v2 API
您可以使用 gcloud CLI 或 Google Cloud 控制台,在資料夾或機構等Google Cloud 資源中強制執行 constraints/compute.requireOsConfig
限制。
gcloud
確認
compute.requireOsConfig
限制未套用:gcloud org-policies describe \ constraints/compute.requireOsConfig \ --organization=ORGANIZATION_ID
將
ORGANIZATION_ID
替換為您的機構 ID。如果未設定政策,這項指令會傳回
NOT_FOUND
錯誤:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
如果政策存在,指令會傳回目前的政策。套用新政策會覆寫現有政策 (如有)。
建立暫存檔案
/tmp/policy.yaml
來儲存政策:name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig spec: rules: - enforce: true
執行
set-policy
指令:gcloud org-policies set-policy /tmp/policy.yaml
確認已套用新政策:
gcloud org-policies describe \ constraints/compute.requireOsConfig --effective \ --organization=ORGANIZATION_ID
指令會輸出類似以下的結果:
name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig spec: rules: - enforce: true
主控台
前往 Google Cloud 控制台的「Organization policies」(組織政策) 頁面。
從專案選擇工具中,選取要編輯機構政策的專案、資料夾或機構。
在「機構政策」頁面中,使用篩選器搜尋
compute.requireOsConfig
。按一下政策名稱,開啟「政策詳細資料」頁面。
按一下「管理政策」,更新這項資源的機構政策。
在「編輯政策」頁面中,選取「覆寫上層政策」。
選取「新增規則」。
在「強制執行」下方,將這項機構政策的強制執行狀態變更為「開啟」。
如要強制執行這項政策,請按一下「設定政策」。
Resource Manager v1 API
確認
compute.requireOsConfig
限制未套用:gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \ --organization ORGANIZATION_ID
將
ORGANIZATION_ID
替換為您的機構 ID。如果未設定政策,這項指令會傳回不完整的政策,如下列範例所示:
constraint: "constraints/compute.requireOsConfig" etag: BwVJi0OOESU=
如果政策存在,指令會傳回目前的政策。套用新政策會覆寫現有政策 (如有)。
設定要在機構中強制執行的政策:
gcloud resource-manager org-policies enable-enforce constraints/compute.requireOsConfig \ --organization ORGANIZATION_ID
指令會輸出類似以下的結果:
booleanPolicy: enforced: true constraint: constraints/compute.requireOsConfig etag: BwVJitxdiwY=
確認已套用新政策:
gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \ --effective \ --organization ORGANIZATION_ID
指令會輸出類似以下的結果:
booleanPolicy: enforced: true constraint: constraints/compute.requireOsConfig
機構政策變更最多可能需要 15 分鐘才會全面生效。
如要進一步瞭解可套用的其他政策,或如何修改或刪除政策,請參閱 Resource Manager 說明文件。