部分映像檔支援 Shielded VM 功能,可提供符合 UEFI 規範的韌體、安全啟動,以及受 vTPM 保護的測量啟動等安全防護功能。在 Shielded VM 上,系統預設會啟用 vTPM 和完整性監控。
事前準備
- 使用 Google Cloud CLI 或 Compute Engine API 依據映像檔建立執行個體時,每秒最多可建立 20 個執行個體。如需 每秒建立更多執行個體 ,請 要求調整映像檔資源的配額。
-
如果尚未設定驗證,請先完成設定。驗證機制會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:
請根據您打算如何使用本頁範例,選取對應的分頁標籤:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證機制。
gcloud
-
安裝 Google Cloud CLI。 安裝完成後, 請執行下列指令,初始化 Google Cloud CLI:
gcloud init如果採用外部識別資訊提供者 (IdP),必須先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
如要為映像檔自備授權,請參閱「自備授權」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果採用外部識別資訊提供者 (IdP),必須先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。
必要的角色
如要取得從公開映像檔建立執行個體所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備 compute.instances.create 權限,可從公開映像檔建立執行個體。
查看 Compute Engine 提供的公開映像檔清單
使用公開映像檔建立執行個體前,請先查看 Compute Engine 提供的公開映像檔清單。
如要進一步瞭解各個公開映像檔提供的功能,請參閱「各作業系統支援的功能」。
控制台
前往 Google Cloud 控制台的「Images」(映像檔) 頁面。
gcloud
執行下列指令:
gcloud compute images list
記下映像檔或映像檔系列的名稱,以及包含映像檔的專案名稱。
選用:如要判斷映像檔是否支援 Shielded VM 功能,請執行下列指令:
gcloud compute images describe IMAGE_NAME \ --project=IMAGE_PROJECT更改下列內容:
IMAGE_NAME:要檢查是否支援 Shielded VM 功能的映像檔名稱IMAGE_PROJECT:包含映文件的專案
如果映像檔支援 Shielded VM 功能,輸出內容中會顯示以下這行:
type: UEFI_COMPATIBLE。
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 C# 設定操作說明進行操作。詳情請參閱 Compute Engine C# API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Go 設定操作說明進行操作。詳情請參閱 Compute Engine Go API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Java 設定操作說明進行操作。詳情請參閱 Compute Engine Java API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Node.js 設定操作說明進行操作。詳情請參閱 Compute Engine Node.js API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 PHP 設定操作說明進行操作。詳情請參閱 Compute Engine PHP API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Python 設定操作說明進行操作。詳情請參閱 Compute Engine Python API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Ruby 設定操作說明進行操作。詳情請參閱 Compute Engine Ruby API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
REST
執行下列指令:
GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/
記下映像檔或映像檔系列的名稱,以及包含映像檔的專案名稱。
選用:如要判斷映像檔是否支援 Shielded VM 功能,請執行下列指令:
GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/IMAGE_NAME
更改下列內容:
IMAGE_PROJECT:包含映文件的專案IMAGE_NAME:要檢查是否支援 Shielded VM 功能的映像檔名稱
如果映像檔支援 Shielded VM 功能,輸出內容中會顯示以下這行:
type: UEFI_COMPATIBLE。
從公開映像檔建立 VM 執行個體
Google、開放原始碼社群和第三方供應商會提供及維護公開 OS 映像檔。根據預設,所有 Google Cloud 專案都能透過公開 OS 映像檔建立 VM。不過,如果您的 Google Cloud 專案已定義可信任映像檔清單,則只能使用清單中的映像檔建立 VM。
如果您使用本機 SSD 建立 Shielded VM 映像檔,就無法使用完整性監控或虛擬平台信任模組 (vTPM) 保護資料。
控制台
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
前往「Create an instance」(建立執行個體)
如果出現系統提示,請選取您的專案,然後按一下「Continue」(繼續)。「Create an instance」(建立執行個體) 頁面隨即顯示,並顯示「Machine configuration」(機器設定) 窗格。
在「機器設定」窗格中,執行下列操作:
- 在「Name」(名稱) 欄位中,指定 VM 的名稱。詳情請參閱「資源命名慣例」。
選用:在「Zone」(可用區) 欄位中,選取這個 VM 的可用區。
預設選取項目為「不限」。如果未變更這項預設選項,Google 會根據機型和可用性,自動為您選擇可用區。
選取 VM 的機器家族。 Google Cloud 控制台會顯示所選機器家族可用的機器系列。可用的機器家族選項如下:
- 一般用途
- 運算最佳化
- 記憶體最佳化
- 儲存空間最佳化
- 網路最佳化
- GPU
- TPU
在「Series」(系列) 欄中,選取 VM 的機器系列。
如果您在上一個步驟中選取「GPU」做為機器家族,請選取所需的「GPU 類型」。系統會自動為所選 GPU 類型選取機器系列。
在「Machine type」(機型) 部分,選取 VM 的機型。
從導覽選單點選「OS and storage」(OS 和儲存空間)。在隨即顯示的「Operating system and storage」(作業系統和儲存空間) 窗格中,執行下列操作來設定開機磁碟:
- 點選「變更」。「Boot disk」(開機磁碟) 窗格隨即顯示,並顯示「Public images」(公開映像檔) 分頁。
- 在「Operating system」(作業系統) 清單中,選取 OS 類型。
- 在「Version」(版本) 清單中,選取 OS 版本。
- 在「Boot disk type」(開機磁碟類型) 清單中,選取開機磁碟類型。
- 在「Size (GB)」(大小 (GB)) 欄位中,指定開機磁碟的大小。
- 選用:如果是 Hyperdisk Balanced 開機磁碟,請在「Provisioned IOPS」(佈建的 IOPS) 和「佈建輸送量」 欄位中指定值。
- 選用:如需進階設定選項,請展開 「Show advanced configurations」(顯示進階設定) 部分。
- 如要確認開機磁碟選項並返回「Operating system and storage」(作業系統和儲存空間) 窗格,請按一下「Select」(選取)。
點選導覽選單中的「Networking」(網路)。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:
- 前往「Firewall」(防火牆) 區段。
如要允許 HTTP 或 HTTPS 流量傳送至 VM,請選取「Allow HTTP traffic」(允許 HTTP 流量) 或「Allow HTTPS traffic」(允許 HTTPS 流量)。
Compute Engine 會在 VM 中新增網路標記,並建立對應的輸入防火牆規則,允許
tcp:80(HTTP) 或tcp:443(HTTPS) 上的所有傳入流量。網路標記會將防火牆規則與 VM 建立關聯。詳情請參閱 Cloud Next Generation Firewall 說明文件中的「防火牆規則總覽」。
選用:如果您選擇支援受防護 VM 功能的 OS 映像檔,可以修改受防護 VM 設定。
方法是在導覽選單中,按一下「Security」(安全性)。在隨即顯示的「Security」(安全性) 窗格中,您可以設定下列項目:
選用:指定其他設定選項。詳情請參閱「建立執行個體時的設定選項」。
如要建立並啟動 VM,請按一下 [Create] (建立)。
gcloud
- 選取公開映像檔。記下映像檔或映像檔系列的名稱,以及包含映像檔的專案名稱。
使用
gcloud compute instances create指令,從映像檔系列或特定版本的 OS 映像檔建立 VM。如果您指定選用的
--shielded-secure-boot旗標,Compute Engine 會建立已啟用下列三項 Shielded VM 功能的 VM:Compute Engine 啟動 VM 後,您必須停止 VM 才能修改 Shielded VM 選項。
gcloud compute instances create VM_NAME \ --zone=ZONE \ [--image=IMAGE | --image-family=IMAGE_FAMILY] \ --image-project=IMAGE_PROJECT IMAGE_FLAG \ --machine-type=MACHINE_TYPE更改下列內容:
VM_NAME:新 VM 的名稱ZONE:要建立執行個體的可用區IMAGE_PROJECT:包含映文件的專案IMAGE_FLAG:指定下列其中一項:使用
--image IMAGE_NAME旗標指定公開映像檔的特定版本。例如
--image debian-12-bookworm-v20241112。使用
--image-family IMAGE_FAMILY_NAME旗標指定映像檔系列。系統會使用映像檔系列中未淘汰的最新 OS 映像檔,建立 VM。舉例來說,如果您指定
--image-family debian-12,Compute Engine 會使用 Debian 12 映像檔系列中最新版本的 OS 映像檔。
MACHINE_TYPE:新 VM 的機型,可以是預先定義機型或自訂機型。如要取得可用區中可用的機型清單,請使用
gcloud compute machine-types list指令和--zones旗標。
確認 Compute Engine 已建立 VM:
gcloud compute instances describe VM_NAME
將
VM_NAME替換為 VM 名稱。
Terraform
如要建立 VM,可以使用 google_compute_instance 資源
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要產生 Terraform 程式碼,您可以使用 Google Cloud 控制台中的「Equivalent code」(對等程式碼) 元件。- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
- 點選「建立執行個體」。
- 指定所需參數。
- 按一下頁面頂端或底部的「Equivalent code」(對等程式碼),然後點選「Terraform」分頁標籤,即可查看 Terraform 程式碼。
C#
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 C# 設定操作說明進行操作。詳情請參閱 Compute Engine C# API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Go 設定操作說明進行操作。詳情請參閱 Compute Engine Go API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Java 設定操作說明進行操作。詳情請參閱 Compute Engine Java API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Node.js 設定操作說明進行操作。詳情請參閱 Compute Engine Node.js API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 PHP 設定操作說明進行操作。詳情請參閱 Compute Engine PHP API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Python 設定操作說明進行操作。詳情請參閱 Compute Engine Python API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Ruby 設定操作說明進行操作。詳情請參閱 Compute Engine Ruby API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
REST
- 選取公開映像檔。記下映像檔或映像檔系列的名稱,以及包含映像檔的專案名稱。
使用
instances.insert方法,從映像檔系列或特定版本的 OS 映像檔建立 VM:POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID/zones/ZONE/instances { "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name":"VM_NAME", "disks":[ { "initializeParams":{ "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot":true } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME" } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }更改下列內容:
PROJECT_ID:要建立 VM 的專案 IDZONE:建立 VM 的可用區MACHINE_TYPE_ZONE:新 VM 要使用的機型所在可用區MACHINE_TYPE:新 VM 的機器類型,可為預先定義或自訂VM_NAME:新 VM 的名稱IMAGE_PROJECT:包含映像檔的專案
舉例來說,如果您指定debian-12做為映像檔系列,請指定debian-cloud做為映像檔專案。IMAGE:指定下列其中一項:IMAGE:公開映像檔的特定版本例如:
"sourceImage": "projects/debian-cloud/global/images/debian-12-bookworm-v20241112"IMAGE_FAMILY:映像檔系列指定映像檔系列後,系統會使用未淘汰的最新 OS 映像檔建立 VM。舉例來說,如果您指定
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",Compute Engine 就會使用 Debian 12 映像檔系列中最新版本的 OS 映像檔建立 VM。
NETWORK_NAME:要用於 VM 的虛擬私有雲網路。您可以指定default,使用預設網路。ENABLE_SECURE_BOOT:選用:如果您選擇支援Shielded VM 功能的映像檔,Compute Engine 預設會啟用虛擬信任平台模組 (vTPM) 和完整性監控。Compute Engine 預設不會啟用安全啟動功能。如果將
enableSecureBoot指定為true,Compute Engine 會建立已啟用所有三項 Shielded VM 功能的 VM。Compute Engine 啟動 VM 後,您必須停止 VM,才能修改 Shielded VM 選項。
依據公開映像檔建立裸機執行個體
Google、開放原始碼社群和第三方供應商會提供及維護公開 OS 映像檔。根據預設,所有 Google Cloud 專案都能使用支援的公用 OS 映像檔建立裸機執行個體。不過,如果您的 Google Cloud 專案已定義可信映像檔清單,則只能使用清單中的映像檔建立裸機執行個體。
控制台
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
前往「Create an instance」(建立執行個體)
如果出現系統提示,請選取您的專案,然後按一下「Continue」(繼續)。「Create an instance」(建立執行個體) 頁面隨即顯示,並顯示「Machine configuration」(機器設定) 窗格。
在「機器設定」窗格中,執行下列操作:
- 在「Name」(名稱) 欄位中,指定執行個體的名稱。詳情請參閱「資源命名慣例」。
選用:在「Zone」(可用區) 欄位中,選取這個執行個體的可用區。如果選擇的可用區沒有任何可用的裸機伺服器,系統會提示您選擇其他可用區。
預設選取項目為「不限」。如未變更這項預設選項,Google 會根據機型和可用性,自動為您選擇可用區。
請執行下列任一操作,選取機器家族和系列:
- 如要使用 C3 裸機系列,請選取「General purpose」(一般用途) 做為機器家族,然後在「Series」(系列) 欄中選取「C3」。
- 如為 X4 裸機系列,請選取「Memory optimized」(記憶體最佳化) 做為機器系列,然後在「Series」(系列) 欄中選取「X4」。
在「Machine type」(機器類型) 部分,按一下清單。在篩選器選單中輸入
metal,然後選取其中一種可用機型。
從導覽選單點選「OS and storage」(OS 和儲存空間)。在隨即顯示的「Operating system and storage」(作業系統和儲存空間) 窗格中,執行下列操作來設定開機磁碟:
- 點選「變更」。「Boot disk」(開機磁碟) 窗格隨即顯示,並顯示「Public images」(公開映像檔) 分頁。
- 在「Operating system」(作業系統) 清單中,選取 OS 類型。
- 在「Version」(版本) 清單中,選取 OS 版本。
- 在「Boot disk type」(開機磁碟類型) 清單中,選取開機磁碟類型。
- 在「Size (GB)」(大小 (GB)) 欄位中,指定開機磁碟的大小。
- 選用:如果是 Hyperdisk Balanced 開機磁碟,請在「Provisioned IOPS」(佈建的 IOPS) 和「佈建輸送量」 欄位中指定值。
- 選用:如需進階設定選項,請展開 「Show advanced configurations」(顯示進階設定) 部分。
如要確認開機磁碟選項並返回「Operating system and storage」(作業系統和儲存空間) 窗格,請按一下「Select」(選取)。
點選導覽選單中的「Networking」(網路)。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:
- 前往「Firewall」(防火牆) 區段。
如要允許 HTTP 或 HTTPS 流量傳送至執行個體,請選取「Allow HTTP traffic」(允許 HTTP 流量) 或「Allow HTTPS traffic」(允許 HTTPS 流量)。
Compute Engine 會在執行個體中新增網路標記,並建立對應的輸入防火牆規則,允許
tcp:80(HTTP) 或tcp:443(HTTPS) 上的所有傳入流量。網路標記會將防火牆規則與執行個體建立關聯。詳情請參閱 Cloud Next Generation Firewall 說明文件中的「防火牆規則總覽」。在「Network performance configuration」(網路效能設定) 部分,確認「Network interface card」(網路介面卡) 欄位設為「IDPF」。
在導覽選單中,按一下「進階」。在顯示的「Advanced」(進階) 窗格中,執行下列操作:
- 展開「 VM provisioning model advanced settings」(VM 佈建模式進階設定) 專區。確認「On host maintenance」(主機維護期間) 欄位設為
Terminate instance。
- 展開「 VM provisioning model advanced settings」(VM 佈建模式進階設定) 專區。確認「On host maintenance」(主機維護期間) 欄位設為
選用。指定任何其他設定參數。如要進一步瞭解自訂設定選項,請參閱「建立及啟動執行個體」。
如要建立並啟動裸機執行個體,請按一下「Create」(建立)。
gcloud
- 選取支援裸機執行個體的公開映像檔。記下映像檔或映像檔系列的名稱,以及包含映像檔的專案名稱。
使用
gcloud compute instances create指令,從映像檔系列或特定版本的 OS 映像檔建立裸機執行個體。gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --network-interface=nic-type=IDPF \ --maintenance-policy=TERMINATE \ --create-disk=boot=yes,type=hyperdisk-balanced,image=projects/IMAGE_PROJECT/global/images/IMAGE,provisioned-iops=IOPS,provisioned-throughput=THROUGHPUT,size=SIZE \ --no-shielded-secure-boot更改下列內容:
INSTANCE_NAME:新 Bare Metal 執行個體的名稱ZONE:要建立裸機執行個體的可用區MACHINE_TYPE:執行個體要使用的裸機機器類型。機器類型名稱結尾必須是-metal。如要取得可用區中可用的機型清單,請使用
gcloud compute machine-types list指令和--zones旗標。IMAGE_PROJECT:包含映文件的映文件專案IMAGE:指定下列其中一項:IOPS:選用。磁碟每秒可處理的輸入/輸出作業數 (IOPS) 上限。THROUGHPUT:選用:整數,代表磁碟可處理的最高處理量,以每秒 MiB 為單位。SIZE:選用:新磁碟的大小。值必須是整數。預設測量單位為 GiB。
確認 Compute Engine 已建立執行個體:
gcloud compute instances describe INSTANCE_NAME
將
INSTANCE_NAME替換為新執行個體的名稱。
REST
- 選取支援裸機執行個體的公開映像檔。記下映像檔或映像檔系列的名稱,以及包含映像檔的專案名稱。
使用
instances.insert方法,從映像檔系列或特定版本的 OS 映像檔建立裸機執行個體:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "projects/PROJECT_ID/zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "boot": true, "initializeParams": { "diskSizeGb": "DISK_SIZE", "diskType": "hyperdisk-balanced", "provisionedIops": "IOPS_LIMIT", "provisionedThroughput": "THROUGHPUT_LIMIT", "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "nicType": "IDPF" } ], "scheduling": { "onHostMaintenance": "TERMINATE" } }更改下列內容:
PROJECT_ID:要建立裸機執行個體的專案 IDZONE:要建立裸機執行個體的可用區MACHINE_TYPE_ZONE:這個可用區含有要用於新裸機執行個體的機器類型MACHINE_TYPE:執行個體要使用的機器類型。機器類型名稱結尾必須是-metal。INSTANCE_NAME:新執行個體的名稱DISK_SIZE:磁碟大小 (以 GiB 為單位)IOPS_LIMIT:要為磁碟佈建的每秒 I/O 作業數。THROUGHPUT_LIMIT:代表要為磁碟佈建的處理量 (以每秒 MB 數為單位) 的整數。IMAGE_PROJECT:包含映文件的映文件專案IMAGE:請指定下列其中一項: