您可以在创建新的 Compute Engine 虚拟机时创建机密虚拟机实例。
准备工作
在创建机密虚拟机实例之前,您需要按如下方式设置环境:
- 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.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- 可选:如需使用本指南中的 gcloud CLI 示例,请执行以下操作:
- 安装或更新到 gcloud CLI 的最新版本。
- 为客户端设置默认区域和可用区以 支持机密虚拟机。
- 可选:如需使用本指南中的 API 示例,请为请求设置身份验证。详细了解 OAuth 2.0。
创建实例
控制台
如需使用 Google Cloud 控制台创建 AMD SEV 机密虚拟机,请完成以下步骤。
在 Google Cloud 控制台中,前往虚拟机实例页面。
点击创建实例。
在机密虚拟机服务部分中,点击启用。
然后,在启用机密计算对话框中,查看启用该服务时更新的设置列表。如果以下字段设置为不兼容的值,则列表可能包括这些字段。
系列和机器类型。如需了解详情,请参阅机器类型、CPU 和可用区。
区域和可用区。如需了解详情,请参阅机器类型、CPU 和可用区。
启动磁盘映像。如需了解详情,请参阅操作系统。
主机维护时。如需了解详情,请参阅设置虚拟机的主机维护政策。
网络接口卡。如需了解详情,请参阅使用 Google 虚拟 NIC。
点击启用。
在机器配置部分中,展开高级配置。
对于 CPU 平台,请选择 AMD Milan 或更高版本。
确认您对这些设置感到满意,然后点击创建。
点击创建后,系统会打开虚拟机实例页面。在此页面上,您可以查看新实例的状态和详细信息。当机密虚拟机实例的状态列中显示 可用图标时,即表示该实例已准备就绪,可以使用。
gcloud
如需使用 gcloud CLI 创建机密虚拟机实例,请使用带有 --confidential-compute-type
标志的 instances create
子命令。
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-family=IMAGE_FAMILY_NAME \
--image-project=IMAGE_PROJECT \
--project=PROJECT_ID
请提供以下值:
INSTANCE_NAME
:新虚拟机实例的名称。CONFIDENTIAL_COMPUTING_TECHNOLOGY
:要使用的机密计算技术类型。请选择以下某个值:SEV
SEV_SNP
TDX
MACHINE_TYPE_NAME
:虚拟机机器类型,例如n2d-standard-2
。机密虚拟机实例的有效机器类型取决于您选择的机密计算技术。请参阅机器类型、CPU 和可用区。CPU_PLATFORM
:请选择以下某个值:对于 AMD SEV:
AMD Milan
(C2D 或 N2D 机器类型)或AMD Genoa
(C3D 机器类型)。对于 AMD SEV-SNP:
AMD Milan
(N2D 机器类型)。对于 Intel TDX:移除此标志。
MAINTENANCE_POLICY
:对于使用 SEV 的 N2D 机器类型,请将此值设置为MIGRATE
,以便获得实时迁移支持。对于所有其他机器类型,请将此值设置为TERMINATE
,因为它们不支持实时迁移。ZONE_NAME
:要在其中创建实例的机密虚拟机支持的可用区。IMAGE_FAMILY_NAME
:机密虚拟机支持的操作系统映像的系列。如果您未额外指定--image
,系统会选择最新的映像版本。IMAGE_PROJECT
:包含受支持的操作系统映像的项目。PROJECT_ID
:可选。要在其中创建虚拟机的项目的 ID。
示例
运行以下命令,使用 AMD SEV-SNP 在 us-central1-a
可用区中创建一个名为 my-instance
的 n2d-standard-2
实例:
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-family=ubuntu-2404-lts-amd64 \
--image-project=ubuntu-os-cloud
响应
对创建请求的响应类似于以下示例:
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
如需创建机密虚拟机实例,您需要发送包含适当正文内容的 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",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME"
}
}
],
"networkInterfaces": [
{
"nicType": "gVNIC"
}
],
"scheduling": {
"automaticRestart": true,
"nodeAffinities": [],
"preemptible": false,
"onHostMaintenance": MAINTENANCE_POLICY
}
}
请提供以下值:
PROJECT_ID
:要在其中创建虚拟机的项目的 ID。ZONE_NAME
:要在其中创建实例的机密虚拟机支持的可用区。INSTANCE_NAME
:新虚拟机实例的名称。CONFIDENTIAL_COMPUTING_TECHNOLOGY
:要使用的机密计算技术类型。请选择以下某个值:SEV
SEV_SNP
TDX
MACHINE_TYPE_NAME
:虚拟机机器类型,例如n2d-standard-2
。机密虚拟机实例的有效机器类型取决于您选择的机密计算技术。请参阅机器类型、CPU 和可用区。CPU_PLATFORM
:请选择以下某个值:对于 AMD SEV:
AMD Milan
(C2D 或 N2D 机器类型)或AMD Genoa
(C3D 机器类型)。对于 AMD SEV-SNP:
AMD Milan
(N2D 机器类型)。对于 Intel TDX:移除此键值对。
IMAGE_PROJECT
:包含受支持的操作系统映像的项目。IMAGE_FAMILY_NAME
:机密虚拟机支持的操作系统映像的系列。如果您未额外指定--image
,系统会选择最新的映像版本。MAINTENANCE_POLICY
:对于使用 SEV 的 N2D 机器类型,请将此值设置为MIGRATE
,以便获得实时迁移支持。对于所有其他机器类型,请将此值设置为TERMINATE
,因为它们不支持实时迁移。
示例
运行以下命令之一,使用 AMD SEV-SNP 在 my-project
项目的 us-central1-a
可用区中创建一个名为 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 '{ "machineType": "zones/us-central1-a/machineTypes/n2d-standard-2", "name": "my-instance", "minCpuPlatform": "AMD Milan", "confidentialInstanceConfig": { "confidentialInstanceType": "SEV_SNP" }, "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/ubuntu-os-cloud/global/images/family/ubuntu-2404-lts-amd64" } } ], "networkInterfaces": [ { "nicType": "gVNIC" } ], "scheduling": { "automaticRestart": true, "nodeAffinities": [], "preemptible": false, "onHostMaintenance": "TERMINATE" } }' \ 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 = @" { "machineType": "zones/us-central1-a/machineTypes/n2d-standard-2", "name": "my-instance", "minCpuPlatform": "AMD Milan", "confidentialInstanceConfig": { "confidentialInstanceType": "SEV_SNP" }, "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/ubuntu-os-cloud/global/images/family/ubuntu-2404-lts-amd64" } } ], "networkInterfaces": [ { "nicType": "gVNIC" } ], "scheduling": { "automaticRestart": true, "nodeAffinities": [], "preemptible": false, "onHostMaintenance": "TERMINATE" } } "@ 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
请求来检查虚拟机创建进度:
GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/operations/OPERATION_ID
为 C2D 机器类型启用更高的网络带宽
三个最大的 C2D Compute Engine 虚拟机类型(32、56 和 112)支持高带宽网络。选择层级 1 网络带宽配置时,数据传出带宽从默认的 32 Gbps 增加到 50 或 100 Gbps。如需获得更高的层级 1 带宽速度,实例必须运行 gVNIC 虚拟网络驱动程序。详细了解如何配置具有较高带宽的虚拟机。
后续步骤
了解如何使用 Cloud Monitoring 验证您的机密虚拟机实例。