本文件說明如何在 VM 執行個體上啟用及停用受防護的 VM 選項。如要查看哪些映像檔支援受防護的 VM 功能,請參閱「OS 映像檔安全性功能」。
總覽
根據預設,在受防護的 VM 執行個體上,Compute Engine 會啟用虛擬信任平台模組 (vTPM) 和完整性監控選項。如果您停用 vTPM,Compute Engine 也會停用完整性監控功能,這是因為完整性監控功能需要使用測量啟動功能所收集的資料。
Compute Engine 預設不會啟用安全啟動,因為未簽署的驅動程式和其他低階軟體可能不相容。安全啟動功能會驗證所有啟動元件的簽章,並在簽章驗證失敗時停止啟動程序,這樣即可確保系統執行的軟體均真實可信。這有助於防止某些核心惡意軟體 (例如 Rootkit 或 Bootkit) 在 VM 重新啟動後持續存在。如果您能確保安全啟動功能不會阻止代表性測試 VM 啟動,且這項功能適合您的工作負載,Google 建議您啟用安全啟動功能。
限制
雖然 Compute Engine VM 執行個體支援安全啟動,但載入至 Compute Engine VM 的映像檔可能不支援。值得注意的是,雖然大多數 Linux 發行版在最新的 x86 映像檔上支援安全啟動功能,但在 ARM64 上並非一律如此。許多 Linux 映像檔都已設定為在啟用安全啟動功能時,拒絕載入未簽署的樹外核心模組版本。這通常會影響 GPU 驅動程式,但有時也會影響需要核心模組的安全監控工具。
這項工作需要的權限
如要執行這項工作,您必須具備以下權限:
- VM 執行個體的 compute.instances.updateShieldedInstanceConfig權限
在 VM 執行個體上修改受防護的 VM 選項
如要修改受防護的 VM 選項,請按照下列程序操作:
主控台
- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。 
- 按一下執行個體名稱,開啟「VM instance details」(VM 執行個體詳細資料) 頁面。 
- 按一下 「停止」,即可停止 VM。如果沒有「停止」選項,請依序點選 「更多動作」> 「停止」。 
- 執行個體停止運作之後,請按一下「編輯」。 
- 在「受防護的 VM」專區中,修改受防護的 VM 選項: - 切換「Turn on Secure Boot」即可啟用安全啟動功能。由於未簽署的驅動程式和其他低階軟體可能不相容,因此 Compute Engine 預設不會啟用安全啟動。Google 建議您盡可能啟用安全啟動功能。 
- 切換「Turn on vTPM」即可停用虛擬信任平台模組 (vTPM)。根據預設,Compute Engine 會啟用虛擬信任平台模組 (vTPM)。 
- 切換「Turn on Integrity Monitoring」即可停用完整性監控功能。根據預設,Compute Engine 會啟用完整性監控功能。 
 
- 按一下 [儲存]。 
- 點選 [開始] 即可啟動執行個體。 
gcloud
- 停止執行個體: - gcloud compute instances stop VM_NAME - 將 - VM_NAME替換為要停止的 VM 名稱。
- 更新受防護的 VM 選項: - gcloud compute instances update VM_NAME \ [--[no-]shielded-secure-boot] \ [--[no-]shielded-vtpm] \ [--[no-]shielded-integrity-monitoring]- 將 - VM_NAME替換為要更新受防護的 VM 選項的 VM 名稱。- shielded-secure-boot:Compute Engine 預設不會啟用安全啟動,因為未簽署的驅動程式和其他低階軟體可能不相容。Google 建議您盡可能啟用安全啟動模式。- 使用 --shielded-secure-boot旗標啟用安全啟動功能 (建議)。
- 使用 --no-shielded-secure-boot停用安全啟動功能。
 - shielded-vtpm:系統會根據預設啟用虛擬信任平台模組 (vTPM)。+ 使用- --shielded-vtpm啟用 (預設) + 使用- --no-shielded-vtpm旗標停用- shielded-integrity-monitoring:預設會啟用完整性監控功能。+ 使用- --shielded-integrity-monitoring啟用 (預設) + 使用- --no-shielded-integrity-monitoring標記停用。
- 使用 
- 啟動執行個體: - gcloud compute instances start VM_NAME - 將 - VM_NAME替換為要啟動的 VM 名稱。
REST
- 停止執行個體: - POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop - 更改下列內容: - PROJECT_ID:包含要停止的 VM 的專案
- ZONE:包含要停止的 VM 的可用區
- VM_NAME:要停止的 VM
 
- 使用 - instances.updateShieldedInstanceConfig在執行個體上啟用或停用受防護的 VM 選項:- PATCH https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateShieldedInstanceConfig { "enableSecureBoot": {true|false}, "enableVtpm": {true|false}, "enableIntegrityMonitoring": {true|false} }- 更改下列內容: - PROJECT_ID:包含要啟用或停用的受防護 VM 選項的 VM 專案。
- ZONE:包含要啟用或停用的受防護 VM 選項的 VM 所在區域。
- VM_NAME:要啟用或停用的 VM 受防護 VM 選項。
 - enableSecureBoot:Compute Engine 預設不會啟用安全啟動功能,因為未簽署的驅動程式和其他低階軟體可能不相容。Google 建議您盡可能啟用安全啟動模式。- enableVtpm:Compute Engine 預設會啟用虛擬信任平台模組 (vTPM)。- enableIntegrityMonitoring:Compute Engine 預設會啟用完整性監控。
- 啟動執行個體: - POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start - 更改下列內容: - PROJECT_ID:包含要啟動的 VM 的專案
- ZONE:包含要啟動的 VM 的可用區
- VM_NAME:要啟動的 VM
 
後續步驟
- 進一步瞭解受防護的 VM 提供的安全功能。
- 進一步瞭解如何監控受防護的 VM 執行個體的完整性。