在 VM 執行個體上修改受防護的 VM 選項

本文說明如何在 VM 執行個體上啟用及停用Shielded VM 選項。如要查看哪些映像檔支援 Shielded VM 功能,請參閱「OS 映像檔安全性功能」。

總覽

在 Shielded 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 執行個體上修改 Shielded VM 選項

如要修改 Shielded VM 選項,請執行下列程序:

控制台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往「VM instances」(VM 執行個體) 頁面

  2. 按一下執行個體名稱,開啟「VM instance details」(VM 執行個體詳細資料) 頁面。

  3. 按一下「停止」停止 VM。如果沒有「停止」選項,請依序按一下 「更多動作」> 「停止」

  4. 執行個體停止運作之後,請按一下「編輯」

  5. 在「受防護的 VM」專區,修改受防護的 VM 選項:

    • 切換「啟用安全啟動功能」即可啟用。Compute Engine 預設不會啟用安全啟動,因為未簽署的驅動程式和其他低階軟體可能不相容。建議您盡可能啟用安全啟動功能。

    • 切換「啟用 vTPM」即可停用虛擬信任平台模組 (vTPM)。根據預設,Compute Engine 會啟用虛擬信任平台模組 (vTPM)

    • 切換「啟用完整性監控功能」即可停用完整性監控功能。根據預設,Compute Engine 會啟用完整性監控

  6. 按一下 [儲存]

  7. 點選 [開始] 即可啟動執行個體。

gcloud

  1. 停止執行個體:

    gcloud compute instances stop VM_NAME
    

    VM_NAME 替換為要停止的 VM 名稱。

  2. 更新受防護的 VM 選項:

    gcloud compute instances update VM_NAME \
        [--[no-]shielded-secure-boot] \
        [--[no-]shielded-vtpm] \
        [--[no-]shielded-integrity-monitoring]

    VM_NAME 替換為要更新 Shielded VM 選項的 VM 名稱。

    shielded-secure-boot:Compute Engine 預設不會啟用安全啟動,因為未簽署的驅動程式和其他低階軟體可能不相容。建議您盡可能啟用安全啟動模式。

    • 使用 --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 旗標停用。

  3. 啟動執行個體:

    gcloud compute instances start VM_NAME
    

    VM_NAME 替換為要啟動的 VM 名稱。

REST

  1. 停止執行個體:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    更改下列內容:

    • PROJECT_ID:包含要停止的 VM 的專案
    • ZONE:包含要停止的 VM 的可用區
    • VM_NAME:要停止的 VM
  2. 使用 instances.updateShieldedInstanceConfig 在執行個體上啟用或停用 Shielded 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:包含要啟用或停用 Shielded VM 選項的 VM 專案。
    • ZONE:包含 VM 的可用區,可啟用或停用 Shielded VM 選項。
    • VM_NAME:要啟用或停用 Shielded VM 選項的 VM。

    enableSecureBoot:Compute Engine 預設不會啟用安全啟動,因為未簽署的驅動程式和其他低階軟體可能不相容。建議您盡可能啟用安全啟動模式。

    enableVtpm:Compute Engine 預設會啟用虛擬信任平台模組 (vTPM)

    enableIntegrityMonitoring:Compute Engine 預設會啟用完整性監控

  3. 啟動執行個體:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    更改下列內容:

    • PROJECT_ID:包含要啟動 VM 的專案
    • ZONE:包含要啟動 VM 的可用區
    • VM_NAME:要啟動的 VM

後續步驟