建立新的 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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- 選用:如要使用本指南中的 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
:要使用的機密運算技術類型。請選擇下列其中一個值:SEV
SEV_SNP
TDX
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
:要使用的機密運算技術類型。請選擇下列其中一個值:SEV
SEV_SNP
TDX
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
可用區中建立名為 n2d-standard-2
的 my-instance
執行個體,並使用 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"
}
]
}
提供以下這些值:
範例
執行下列任一指令,在 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/instances
PowerShell (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 執行個體。