建立新的 Compute Engine 虛擬機器時,您可以一併建立機密 VM 執行個體。
事前準備
建立機密 VM 執行個體前,請先依下列步驟設定環境:
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- 選用:如要使用本指南中的 gcloud CLI 範例:
- 安裝或更新至最新版 gcloud CLI。
- 為用戶端設定預設地區和區域, 該區域支援機密 VM。
- 選用:如要使用本指南中的 API 範例,請為要求設定驗證。進一步瞭解 OAuth 2.0。
建立執行個體
控制台
如要使用 Google Cloud 控制台建立機密 VM 執行個體,請完成下列步驟:
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
點選「建立執行個體」。
在「機器設定」窗格中,執行下列操作:
按一下導覽選單中的「Security」(安全性)。
在「Confidential VM service」(機密 VM 服務) 區段中,按一下「Enable」(啟用)。
在「選取類型」方塊中,選取下列其中一種 機密運算技術 類型:
AMD SEV
AMD SEV-SNP
Intel TDX
前往「Enable Confidential Computing」(啟用機密運算) 對話方塊,並查看服務啟用時更新的設定清單。如果這些欄位設為不相容的值,可能會包含下列欄位。
「系列」和「機型」。詳情請參閱機器類型、CPU 和區域。
區域和可用區。詳情請參閱機器類型、CPU 和區域。
開機磁碟映像檔。詳情請參閱「作業系統」一文。
在主機維護期間。詳情請參閱「設定 VM 的主機維護政策」。
網路介面卡。詳情請參閱「使用 Google Virtual NIC」。
依序點選「確認」和「建立」。
點選「Create」(建立) 之後,「VM instances」(VM 執行個體) 頁面就會開啟。您可以在這個頁面查看新執行個體的狀態和詳細資料。當機密 VM 執行個體的「Status」(狀態) 欄顯示 「Available」(可用) 圖示時,即表示該執行個體已準備就緒。
gcloud
如要使用 gcloud CLI 建立 Confidential VM 執行個體,請使用 instances create
子指令搭配 --confidential-compute-type 旗標。
gcloud compute instances create INSTANCE_NAME \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--min-cpu-platform="CPU_PLATFORM" \
--maintenance-policy=MAINTENANCE_POLICY \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--project=PROJECT_ID
提供以下這些值:
INSTANCE_NAME:新 VM 執行個體的名稱。CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的機密運算技術類型。請選擇下列其中一個值:SEVSEV_SNPTDX
MACHINE_TYPE_NAME:VM 機型,例如n2d-standard-2。機密 VM 執行個體的有效機器類型取決於您選擇的機密運算技術。請參閱「機器類型、CPU 和區域」。CPU_PLATFORM:請選擇下列其中一個值:適用於 AMD SEV:
AMD Milan(C2D 或 N2D 機型)、AMD Genoa(C3D 機型) 或AMD Turin(C4D 機型)。AMD SEV-SNP:
AMD Milan(N2D 機器類型)。如為 Intel TDX:請移除這個標記。
MAINTENANCE_POLICY:對於使用 SEV 的 N2D 和 C3D 機型,請將此值設為MIGRATE,以支援即時遷移。如果是其他機器類型,請將這個值設為TERMINATE,因為這些類型不支援即時遷移。ZONE_NAME:要建立執行個體的支援機密 VM 的可用區。IMAGE_PROJECT:包含支援作業系統映像檔的專案。IMAGE_FAMILY_NAME:支援機密 VM 的作業系統映像檔系列。如未另外指定--image,系統會選取最新版本的映像檔。PROJECT_ID:選用。要在其中建立 VM 的專案 ID。
範例
執行下列指令,在 us-central1-a 可用區中建立名為 my-instance 的 n2d-standard-2 執行個體,並使用 AMD SEV-SNP:
gcloud compute instances create my-instance \
--machine-type=n2d-standard-2 \
--min-cpu-platform="AMD Milan" \
--zone=us-central1-a \
--confidential-compute-type=SEV_SNP \
--maintenance-policy=TERMINATE \
--image-project=ubuntu-os-cloud \
--image-family=ubuntu-2404-lts-amd64
回應
建立要求的回應類似下列範例:
Created [https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance].
NAME: my-instance
ZONE: us-central1-a
MACHINE_TYPE: n2d-standard-2
PREEMPTIBLE:
INTERNAL_IP: 0.0.0.0
EXTERNAL_IP: 0.0.0.0
STATUS: RUNNING
REST
如要建立機密 VM 執行個體,請傳送 POST 要求並提供適當的內文內容。
HTTP 方法和網址:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances
JSON 要求主體:
{
"name": "INSTANCE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
},
"machineType": "zones/ZONE_NAME/machineTypes/MACHINE_TYPE_NAME",
"minCpuPlatform": "CPU_PLATFORM",
"scheduling": {
"automaticRestart": true,
"nodeAffinities": [],
"onHostMaintenance": "MAINTENANCE_POLICY",
"preemptible": false
},
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME"
}
}
],
"networkInterfaces": [
{
"nicType": "gVNIC"
}
]
}
提供以下這些值:
PROJECT_ID:要在其中建立 VM 的專案 ID。ZONE_NAME:要建立執行個體的支援機密 VM 的可用區。INSTANCE_NAME:新 VM 執行個體的名稱。CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的機密運算技術類型。請選擇下列其中一個值:SEVSEV_SNPTDX
MACHINE_TYPE_NAME:VM 機型,例如n2d-standard-2。機密 VM 執行個體的有效機器類型取決於您選擇的機密運算技術。請參閱「機器類型、CPU 和區域」。CPU_PLATFORM:請選擇下列其中一個值:適用於 AMD SEV:
AMD Milan(C2D 或 N2D 機型)、AMD Genoa(C3D 機型) 或AMD Turin(C4D 機型)。AMD SEV-SNP:
AMD Milan(N2D 機器類型)。如果是 Intel TDX:請移除這個鍵/值組合。
MAINTENANCE_POLICY:對於使用 SEV 的 N2D 機型,請將此值設為MIGRATE,以支援即時遷移。如為其他機型,請將這個值設為TERMINATE,因為這些機型不支援即時遷移。IMAGE_PROJECT:包含支援作業系統映像檔的專案。IMAGE_FAMILY_NAME:支援機密 VM 的作業系統映像檔系列。如未另外指定--image,系統會選取最新版本的映像檔。
範例
執行下列任一指令,在 my-project 專案的 us-central1-a 可用區中,使用 AMD SEV-SNP 建立名為 my-instance 的 n2d-standard-2 執行個體:
curl (Linux、macOS 或 Cloud Shell)
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "my-instance",
"confidentialInstanceConfig": {
"confidentialInstanceType": "SEV_SNP"
},
"machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
"minCpuPlatform": "AMD Milan",
"scheduling": {
"automaticRestart": true,
"nodeAffinities": [],
"onHostMaintenance": "TERMINATE",
"preemptible": false
},
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/ubuntu-os-cloud/global/images/family/ubuntu-2404-lts-amd64"
}
}
],
"networkInterfaces": [
{
"nicType": "gVNIC"
}
]
}' \
https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instancesPowerShell (Windows)
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
$body = @"
{
"name": "my-instance",
"confidentialInstanceConfig": {
"confidentialInstanceType": "SEV_SNP"
},
"machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
"minCpuPlatform": "AMD Milan",
"scheduling": {
"automaticRestart": true,
"nodeAffinities": [],
"onHostMaintenance": "TERMINATE",
"preemptible": false
}
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/ubuntu-os-cloud/global/images/family/ubuntu-2404-lts-amd64"
}
}
],
"networkInterfaces": [
{
"nicType": "gVNIC"
}
]
}
"@
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-Body $body `
-Uri "https://compute.googleapis.com/compute/projects/my-project/zones/us-central1-a/instances" | Select-Object -Expand Content回應
建立要求的回應類似下列範例:
{
"kind": "compute#operation",
"id": "0000000000000000000",
"name": "operation-0000000000000-0000000000000-00000000-00000000",
"zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
"operationType": "insert",
"targetLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance",
"targetId": "0000000000000000000",
"status": "RUNNING",
"user": "alex@example.com",
"progress": 0,
"insertTime": "2024-09-29T18:06:52.174-07:00",
"startTime": "2024-09-29T18:06:52.175-07:00",
"selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-0000000000000-0000000000000-00000000-00000000"
}
您可以向 selfLink 提出 GET 要求,查看 VM 建立進度:
GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/operations/OPERATION_ID
為特定機器類型啟用較高的網路頻寬
較大的機器類型支援高頻寬網路。選取 Tier_1 網路頻寬設定後,資料轉出頻寬會從預設的 32 Gbps 增加至 50 到 200 Gbps,視機型而定。如要達到較高的 Tier_1 頻寬速度,執行個體必須執行 gVNIC 虛擬網路驅動程式。進一步瞭解如何設定頻寬較高的 VM。
後續步驟
瞭解如何透過 Cloud Monitoring 驗證機密 VM 執行個體。