您可以在创建新的 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.
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。
- 为客户端设置默认区域和可用区以支持机密虚拟机。
- 可选:如需使用本指南中的 API 示例,请为请求设置身份验证。详细了解 OAuth 2.0。
在 Google Cloud 控制台中,转到虚拟机实例页面。
点击创建实例。
在机器配置窗格中,执行以下操作:
在导航菜单中,点击安全。
在机密虚拟机服务部分中,点击启用。
在选择类型框中,选择以下任一机密计算技术类型:
AMD SEV
AMD SEV-SNP
Intel TDX
然后,在启用机密计算对话框中,查看启用该服务时更新的设置列表。如果以下字段设置为不兼容的值,则列表可能包括这些字段。
系列和机器类型。如需了解详情,请参阅机器类型、CPU 和可用区。
区域和可用区。如需了解详情,请参阅机器类型、CPU 和可用区。
启动磁盘映像。如需了解详情,请参阅操作系统。
主机维护时。如需了解详情,请参阅设置虚拟机的主机维护政策。
网络接口卡。如需了解详情,请参阅使用 Google 虚拟 NIC。
点击确认,然后点击创建。
INSTANCE_NAME:新虚拟机实例的名称。CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的机密计算技术的类型。请选择以下某个值:SEVSEV_SNPTDX
MACHINE_TYPE_NAME:虚拟机的机器类型,例如n2d-standard-2。机密虚拟机实例的有效机器类型取决于您选择的机密计算技术。请参阅机器类型、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:要在其中创建实例的机密虚拟机支持的可用区。IMAGE_PROJECT:包含受支持的操作系统映像的项目。IMAGE_FAMILY_NAME:支持机密虚拟机的操作系统映像的系列。 如果您未另外指定--image,系统会选择最新的映像版本。PROJECT_ID:可选。要在其中创建虚拟机的项目的 ID。PROJECT_ID:要在其中创建虚拟机的项目的 ID。ZONE_NAME:要在其中创建实例的机密虚拟机支持的可用区。INSTANCE_NAME:新虚拟机实例的名称。CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的机密计算技术的类型。请选择以下某个值:SEVSEV_SNPTDX
MACHINE_TYPE_NAME:虚拟机的机器类型,例如n2d-standard-2。机密虚拟机实例的有效机器类型取决于您选择的机密计算技术。请参阅机器类型、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:支持机密虚拟机的操作系统映像的系列。 如果您未另外指定--image,系统会选择最新的映像版本。
创建实例
控制台
如需使用 Google Cloud 控制台创建机密虚拟机实例,请完成以下步骤:
点击创建后,系统会打开虚拟机实例页面。在此页面上,您可以查看新实例的状态和详细信息。当机密虚拟机实例的状态列中显示 可用图标时,即表示该实例已准备就绪,可以使用。
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-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --project=PROJECT_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
如需创建机密虚拟机实例,您需要发送包含相应正文内容的 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 可用区中创建一个名为 my-instance 的 n2d-standard-2 实例,并使用 AMD SEV-SNP:
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": "[email protected]", "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 为特定机器类型启用更高的网络带宽
较大的机器类型支持高带宽网络。选择 Tier_1 网络带宽配置时,数据出站带宽会从默认的 32 Gbps 增加到 50 到 200 Gbps,具体取决于机器类型。如需获得更高的 Tier_1 带宽速度,您的实例必须运行 gVNIC 虚拟网络驱动程序。详细了解如何配置具有较高带宽的虚拟机。
后续步骤
了解如何使用 Cloud Monitoring 验证您的机密虚拟机实例。