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

本文件說明如何在 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 選項,請按照下列程序操作:

主控台

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

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

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

  3. 按一下「停止」

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

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

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

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

    • 切換「Turn on Integrity Monitoring」即可停用完整性監控功能。根據預設,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 替換為要更新受防護的 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 標記停用。

  3. 啟動執行個體:

    gcloud compute instances start VM_NAME
    

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

API

  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 在執行個體上啟用或停用受防護的 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 預設會啟用完整性監控

  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

後續步驟