本文件說明如何在 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 驅動程式,但有時也會影響需要核心模組的安全監控工具。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-03 (世界標準時間)。"],[[["\u003cp\u003eShielded VM instances have vTPM and integrity monitoring enabled by default, while Secure Boot is not enabled due to potential compatibility issues with unsigned drivers.\u003c/p\u003e\n"],["\u003cp\u003eDisabling the vTPM will also disable integrity monitoring, as integrity monitoring relies on data from Measured Boot, which is associated with vTPM.\u003c/p\u003e\n"],["\u003cp\u003eSecure Boot helps ensure that only authentic software runs by verifying the signatures of all boot components, thus preventing kernel malware.\u003c/p\u003e\n"],["\u003cp\u003eTo modify Shielded VM options, the VM instance must be stopped, the options can then be toggled on the VM instance details page, by using gcloud, or by using API, after which the instance must be restarted.\u003c/p\u003e\n"],["\u003cp\u003ePermissions are required to update these options, requiring \u003ccode\u003ecompute.instances.updateShieldedInstanceConfig\u003c/code\u003e permissions on the VM instance.\u003c/p\u003e\n"]]],[],null,["# Modifying Shielded VM options on a VM instance\n\nThis document describes how to enable and disable the\n[Shielded VM](/compute/shielded-vm/docs/shielded-vm) options on a\nVM instance. To see which images support Shielded VM features,\nsee [OS image security features](/compute/docs/images/os-details#security-features).\n\nOverview\n--------\n\nOn a Shielded VM instance, Compute Engine enables the [virtual\nTrusted Platform Module (vTPM)](/compute/shielded-vm/docs/shielded-vm#vtpm) and\n[integrity monitoring](/compute/shielded-vm/docs/shielded-vm#integrity-monitoring)\noptions by default. If you disable the vTPM, Compute Engine\ndisables integrity monitoring because integrity monitoring relies on data\ngathered by [Measured Boot](/compute/shielded-vm/docs/shielded-vm#measured-boot).\n\nCompute Engine does not enable\n[Secure Boot](/compute/shielded-vm/docs/shielded-vm#secure-boot) by default\nbecause unsigned drivers and other low-level software might not be compatible.\nSecure Boot helps ensure that the system only runs authentic software by\nverifying the signature of all boot components and stopping the boot process\nif signature verification fails. This helps prevent forms of kernel malware,\nsuch as rootkits or bootkits from persisting across VM reboots. Google\nrecommends enabling Secure Boot if you can ensure that it doesn't prevent a\nrepresentative test VM from booting and if it is appropriate for your workload.\n\n### Limitations\n\nEven though Compute Engine VM instances support Secure Boot, an image\nloaded on a Compute Engine VM might not. Notably, although most Linux\ndistributions support Secure Boot on recent x86 images, it isn't always\nsupported by default on ARM64.\nMany Linux images are configured to refuse to load unsigned builds of out-of-tree kernel modules when Secure Boot is enabled. This most commonly affects GPU drivers, but also sometimes affects security monitoring tools that require kernel modules.\n\n#### Permissions required for this task\n\nTo perform this task, you must have the following [permissions](/iam/docs/overview#permissions):\n\n- `compute.instances.updateShieldedInstanceConfig` on the VM instance\n\nModifying Shielded VM options on a VM instance\n----------------------------------------------\n\nUse the following procedure to modify Shielded VM options: \n\n### Console\n\n1. In the Google Cloud console, go to the **VM instances** page.\n\n [Go to **VM instances**](https://console.cloud.google.com/compute/instances)\n2. Click the instance name to open the **VM instance details** page.\n\n3. Click stop **Stop**\n to stop the VM. If there is no **Stop** option, click\n more_vert **More actions \\\u003e** stop **Stop**.\n\n4. After the instance stops, click **Edit**.\n\n5. In the **Shielded VM** section, modify the Shielded VM options:\n\n - Toggle **Turn on Secure Boot** to enable Secure Boot.\n Compute Engine does not enable\n [Secure Boot](/compute/shielded-vm/docs/shielded-vm#secure-boot)\n by default because unsigned drivers and other low-level software\n might not be compatible. If possible, Google recommends enabling\n Secure Boot.\n\n - Toggle **Turn on vTPM** to disable the virtual trusted platform module\n (vTPM). By default, Compute Engine enables the [Virtual Trusted\n Platform Module (vTPM)](/compute/shielded-vm/docs/shielded-vm#vtpm).\n\n - Toggle **Turn on Integrity Monitoring** to disable integrity\n monitoring. By default, Compute Engine enables [integrity\n monitoring](/compute/shielded-vm/docs/shielded-vm#integrity-monitoring).\n\n6. Click **Save**.\n\n7. Click **Start** to start the instance.\n\n### gcloud\n\n1. Stop the instance:\n\n ```\n gcloud compute instances stop VM_NAME\n ```\n\n Replace \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e with the name of the VM to stop.\n2. Update the Shielded VM options:\n\n ```\n gcloud compute instances update VM_NAME \\\n [--[no-]shielded-secure-boot] \\\n [--[no-]shielded-vtpm] \\\n [--[no-]shielded-integrity-monitoring]\n ```\n\n Replace \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e with the name of the VM on which\n to update the Shielded VM options.\n\n `shielded-secure-boot`: Compute Engine does not\n enable [Secure Boot](/compute/shielded-vm/docs/shielded-vm#secure-boot)\n by default because unsigned drivers and other low-level software might\n not be compatible. If possible, Google recommends enabling Secure Boot.\n - Enable Secure Boot by using the `--shielded-secure-boot` flag (recommended).\n - Disable Secure Boot by using `--no-shielded-secure-boot`.\n\n `shielded-vtpm`: the\n [virtual trusted platform module (vTPM)](/compute/shielded-vm/docs/shielded-vm#vtpm)\n is enabled by default.\n + Enable by using `--shielded-vtpm` (default)\n + Disable by using the `--no-shielded-vtpm` flag\n\n `shielded-integrity-monitoring`:\n [integrity monitoring](/compute/shielded-vm/docs/shielded-vm#integrity-monitoring)\n is enabled by default.\n + Enable by using `--shielded-integrity-monitoring` (default)\n + Disable by using the `--no-shielded-integrity-monitoring` flag.\n3. Start the instance:\n\n ```\n gcloud compute instances start VM_NAME\n ```\n\n Replace \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e with the name of the VM to start.\n\n### REST\n\n1. Stop the instance:\n\n ```\n POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: project containing the VM to stop\n - \u003cvar translate=\"no\"\u003eZONE\u003c/var\u003e: zone containing the VM to stop\n - \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e: the VM to stop\n2. Use\n [`instances.updateShieldedInstanceConfig`](/compute/docs/reference/rest/v1/instances/updateShieldedInstanceConfig)\n to enable or disable Shielded VM options on the instance:\n\n ```\n PATCH https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateShieldedInstanceConfig\n\n {\n \"enableSecureBoot\": {true|false},\n \"enableVtpm\": {true|false},\n \"enableIntegrityMonitoring\": {true|false}\n }\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the project containing the VM to enable or disable Shielded VM options on.\n - \u003cvar translate=\"no\"\u003eZONE\u003c/var\u003e: the zone containing the VM to enable or disable Shielded VM options on.\n - \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e: the VM to enable or disable Shielded VM options on.\n\n `enableSecureBoot`: Compute Engine does not enable\n [Secure Boot](/compute/shielded-vm/docs/shielded-vm#secure-boot) by\n default because unsigned drivers and other low-level software might\n not be compatible. If possible, Google recommends enabling Secure Boot.\n\n `enableVtpm`: Compute Engine enables the\n [Virtual Trusted Platform Module (vTPM)](/compute/shielded-vm/docs/shielded-vm#vtpm)\n by default.\n\n `enableIntegrityMonitoring`: Compute Engine enables\n [integrity monitoring](/compute/shielded-vm/docs/shielded-vm#integrity-monitoring)\n by default.\n3. Start the instance:\n\n ```\n POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: project containing the VM to start\n - \u003cvar translate=\"no\"\u003eZONE\u003c/var\u003e: zone containing the VM to start\n - \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e: VM to start\n\nWhat's next\n-----------\n\n- [Read more](/compute/shielded-vm/docs/shielded-vm) about the security features offered by Shielded VM.\n- Learn more about [monitoring integrity on a Shielded VM\n instance](/compute/shielded-vm/docs/integrity-monitoring)."]]