使用客體政策,在 Linux 和 Windows 虛擬機器 (VM) 執行個體中,維持一致的軟體設定。
如要在 VM 組合中設定訪客政策,請完成下列步驟:
- 將必要權限指派給使用者。
- 設定 VM。
- 設定訪客政策 JSON 或 YAML 檔案。
- 建立訪客政策。
事前準備
- 查看 OS 設定配額。
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
限制
- 對於目標 VM,每次代理程式向服務回報時,系統都會更新訪客政策。這項檢查每 10 到 15 分鐘執行一次。
- 使用舊版 OS 客戶政策時,無法使用合規性資訊主頁、通知或快訊服務。如果 VM 未執行 OS 設定代理程式,就不會回報失敗。為求最佳成效,請搭配作業系統清單管理服務或任何其他法規遵循監控工具使用這項功能。
軟體配方具有特定名稱,且只會在您建立客體政策時執行一次。如要重新執行軟體配方,請按照下列步驟操作:
- 重新命名軟體配方。
- 刪除並重新建立訪客政策,使用重新命名的軟體配方。
權限
由於您可以使用訪客政策在 VM 上安裝及管理軟體套件,因此建立及管理訪客政策等同於授予 VM 的遠端程式碼執行存取權。
設定訪客政策時,系統會使用 IAM 權限控管政策資源的存取權,並記錄稽核活動。不過,使用者仍可在 VM 上執行程式碼,這可能會造成安全風險。為減輕這類風險,建議您只授予每位使用者必要的存取權。
專案擁有者有完整的權限,可建立及管理政策。 如要授予其他使用者權限,您可以授予下列其中一項精細角色:
- GuestPolicy 管理員 (
roles/osconfig.guestPolicyAdmin
)。包含建立、刪除、更新、取得及列出 GuestPolicy 的權限。 - GuestPolicy 編輯者 (
roles/osconfig.guestPolicyEditor
):包含取得、更新及列出訪客政策的權限。 - GuestPolicy 檢視者 (
roles/osconfig.guestPolicyViewer
)。包含可取得及列出訪客政策的唯讀存取權。
舉例來說,如要授予使用者訪客政策的管理員存取權,請執行下列指令:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.guestPolicyAdmin
更改下列內容:
PROJECT_ID
:專案 ID。USER_ID
:使用者的 Google Workspace 使用者名稱。
設定 VM
如要使用訪客政策,請設定 VM 管理員。
設定訪客政策 YAML 或 JSON 檔案
您必須使用 JSON 或 YAML 檔案提供訪客政策規格。如要查看範例設定,請參閱範例訪客政策 YAML 檔案。
YAML 或 JSON 檔案包含下列兩個主要部分:
作業
您可以將客層政策指派給專案中的所有 VM,也可以在 JSON 或 YAML 檔案中使用
assignment
鍵,指定特定 VM 群組。舉例來說,您可以根據下列任一特徵指定 VM 群組:
- 執行個體名稱。請參閱範例 1。
- 執行個體名稱前置字串。請參閱範例 2。
- 執行個體標籤。請參閱範例 3。
- 可用區。請參閱範例 4。
- 作業系統資訊,包括作業系統名稱、版本和架構。請參閱範例 5。您可以使用 os-inventory describe 指令,判斷 VM 的 OS 名稱、版本和架構。
如要使用作業系統資訊指派訪客政策,OS Configuration 代理程式必須將作業系統資訊傳送至 VM 的訪客屬性端點。為確保隱私權,系統預設不會提供 VM 的作業系統資訊。如要依作業系統資訊將 VM 分組,請務必啟用訪客屬性和 OS Inventory Management 服務。如要啟用這些服務,請參閱「設定 VM」。
系統會自動將訪客政策設定套用至所有符合指派條件的新 VM。
必要設定
如要完成必要設定,請執行下列任一或多項工作:
訪客政策 YAML 檔案範例
範例 1
在下列 VM 執行個體上安裝
my-package
套件,且必須保持最新狀態:my-instance-1
和my-instance-2
。assignment: instances: - zones/us-east1-c/instances/my-instance-1 - zones/us-east1-c/instances/my-instance-2 packages: - name: "my-package" desiredState: UPDATED
如要進一步瞭解如何為套件指派訪客政策,請參閱「套件 JSON 表示法」參考文件。
範例 2
使用 yum 套件管理工具,在具有下列任一執行個體名稱前置字串的所有 VM 執行個體上,安裝 Cloud Monitoring 代理程式:
test-instance-
或dev-instance-
。assignment: instanceNamePrefixes: - "test-instance-" - "dev-instance-" packages: - name: "stackdriver-agent" desiredState: INSTALLED manager: YUM packageRepositories: - yum: id: google-cloud-monitoring displayName: "Google Cloud Monitoring Agent Repository" baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el7-x86_64-all gpgKeys: - https://packages.cloud.google.com/yum/doc/yum-key.gpg - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
如要進一步瞭解如何為套件存放區指派訪客政策,請參閱「PackageRepository JSON 表示法」參考文件。
範例 3
在具有特定標籤組合的執行個體中安裝
my-package
,並移除bad-package-1
和bad-package-2
。此外,也請為 apt 和 yum 套件管理員新增存放區。assignment: # Assign to VM instances where `(label.color=red AND label.env=test) OR (label.color=blue AND label.env=test)` groupLabels: - labels: color: red env: test - labels: color: blue env: test packages: - name: "my-package" desiredState: INSTALLED - name: "bad-package-1" desiredState: REMOVED - name: "bad-package-2" desiredState: REMOVED manager: APT # Only apply this to systems with APT. packageRepositories: - apt: # Only apply this to systems with APT. uri: "https://packages.cloud.google.com/apt" archiveType: DEB distribution: cloud-sdk-stretch components: - main - yum: # Only apply this to systems with YUM. id: google-cloud-sdk displayName: "Google Cloud SDK" baseUrl: https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64 gpgKeys: - https://packages.cloud.google.com/yum/doc/yum-key.gpg - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
- 如要進一步瞭解如何為套件指派訪客政策,請參閱「套件 JSON 表示法」參考文件。
- 如要進一步瞭解如何為套件存放區指派訪客政策,請參閱「PackageRepository JSON 表示法」參考文件。
範例 4
從 Cloud Storage 上代管的 MSI 安裝軟體至
us-east1-b
和us-east1-d
中的所有執行個體。assignment: zones: - us-east1-b - us-east1-d recipes: - name: "swr-msi-gcs" desiredState: INSTALLED artifacts: - id: "the-msi" gcs: bucket: "my-bucket" object: "executable.msi" # full URI gs://my-bucket/executable.msi#nnnnn generation: 1546030865175603 installSteps: - msiInstallation: artifactId: "the-msi"
如要進一步瞭解如何設定配方政策,請參閱軟體配方 JSON 表示法參考文件。
範例 5
在符合下列條件的所有 VM 執行個體上,執行內嵌指令碼來安裝軟體:
- 作業系統:Red Hat Enterprise Linux 7
- 標籤:
color=red
assignment: osTypes: - osShortName: rhel osVersion: "7" groupLabels: - labels: color: red recipes: - name: recipe-runscript desiredState: INSTALLED installSteps: - scriptRun: script: |- #!/bin/bash touch /TOUCH_FILE
如要進一步瞭解如何設定配方政策,請參閱軟體配方 JSON 表示法參考文件。
範例 6
使用可執行安裝程式,在所有 Windows 執行個體上安裝應用程式,這些執行個體具有下列執行個體名稱前置字串:
test-instance-
。assignment: instanceNamePrefixes: - "test-instance-" osTypes: - osShortName: WINDOWS recipes: - name: windows-install-exe-example desiredState: INSTALLED artifacts: - id: installer gcs: bucket: my-bucket generation: '1597013478912389' object: MyApp.Installer.x64.exe installSteps: - fileExec: artifactId: installer args: - /S # Installation must be silent
如要進一步瞭解如何設定配方政策,請參閱軟體配方 JSON 表示法參考文件。
建立訪客政策
建立訪客政策時,訪客政策名稱必須符合下列命名規定:
- 只能包含小寫字母、數字和連字號
- 以英文字母開頭
- 結尾為數字或英文字母
- 長度介於 1 至 63 個字元之間
- 每個政策 ID 在專案中不得重複
請使用下列其中一種方法建立訪客政策。
gcloud
使用
os-config guest-policies create
指令建立訪客政策。gcloud beta compute os-config guest-policies create POLICY_ID \ --file=FILE
更改下列內容:
POLICY_ID
:要建立的客層政策名稱。FILE
:包含訪客政策規格的 JSON 或 YAML 檔案。如要查看範例設定,請參閱「範例客層政策 YAML 檔案」。
REST
在 API 中建立目標為
projects.guestPolicies.create
方法的POST
要求。POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies?guestPolicyId=POLICY_ID { For more information, see Guest policy JSON }
更改下列內容:
PROJECT_ID
:您的專案 ID。POLICY_ID
:訪客政策的名稱。
如要查看範例設定,請參閱範例客層政策 YAML 檔案。
疑難排解
如要排解訪客政策問題,請參閱「偵錯訪客政策」。
後續步驟
- 進一步瞭解作業系統訪客政策 (舊版)。
- 管理訪客政策。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-29 (世界標準時間)。
-