建立新的 Compute Engine 虛擬機器時,您可以一併建立機密 VM 執行個體。
事前準備
建立機密 VM 執行個體前,請先依下列步驟設定環境:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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
(
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
(
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 instances」(VM 執行個體) 頁面。
點選「建立執行個體」。
在「機器設定」窗格中,執行下列操作:
按一下導覽選單中的「Security」(安全性)。
在「Confidential VM service」(機密 VM 服務) 區段中,按一下「Enable」(啟用)。
在「選取類型」方塊中,選取下列其中一種 機密運算技術類型:
AMD SEV
AMD SEV-SNP
Intel TDX
前往「Enable Confidential Computing」(啟用機密運算) 對話方塊,並查看服務啟用時更新的設定清單。如果這些欄位設為不相容的值,可能會包含下列欄位。
「系列」和「機器類型」。詳情請參閱機器類型、CPU 和區域。
區域和可用區。詳情請參閱機器類型、CPU 和區域。
開機磁碟映像檔。詳情請參閱「作業系統」一文。
在主機維護期間。詳情請參閱設定 VM 的主機維護政策。
網路介面卡。詳情請參閱「使用 Google Virtual NIC」。
按一下「確認」,然後按一下「建立」。
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,因為這些機型不支援即時遷移。ZONE_NAME:要建立執行個體的支援機密 VM 的可用區。IMAGE_PROJECT:包含支援作業系統映像檔的專案。IMAGE_FAMILY_NAME:支援機密 VM 的作業系統映像檔系列。如未另外指定--image,系統會選取最新版本的映像檔。PROJECT_ID:選用。要在其中建立 VM 的專案 ID。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,系統會選取最新版本的映像檔。
建立執行個體
控制台
如要使用 Google Cloud 控制台建立機密 VM 執行個體,請完成下列步驟:
點選「Create」(建立) 之後,「VM instances」(VM 執行個體) 頁面就會開啟。您可以在這個頁面查看新執行個體的狀態和詳細資料。當機密 VM 執行個體的「Status」(狀態) 欄顯示 「Available」(可用) 圖示時,即表示該執行個體已準備就緒。
gcloud
如要使用 gcloud CLI 建立機密 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
提供以下這些值:
範例
執行下列指令,在 us-central1-a 可用區中,使用 AMD SEV-SNP 建立名為 n2d-standard-2 的 my-instance 執行個體:
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"
}
]
}
提供以下這些值:
範例
執行下列任一指令,在 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 執行個體。