Puedes crear una instancia de Confidential VM como parte de la creación de una nueva máquina virtual de Compute Engine.
Antes de comenzar
Antes de crear una instancia de Confidential VM, debes configurar tu entorno de la siguiente manera:
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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.- Opcional: Para usar los ejemplos de gcloud CLI en esta guía, haz lo siguiente:
- Instala la versión más reciente de la CLI de gcloud o actualízala.
- Configura una región y una zona predeterminadas para el cliente que admita Confidential VM.
- Si quieres usar los ejemplos de la API de esta guía, configura la autenticación para tus solicitudes (opcional). Obtén más información sobre OAuth 2.0.
Crea una instancia
Console
Para crear una instancia de Confidential VM con la Google Cloud consola de, completa los siguientes pasos:
En la Google Cloud consola de, ve a la página Instancias de VM.
Haz clic en Crear instancia.
En el panel Configuración de la máquina, haz lo siguiente:
Selecciona una región y una zona compatibles.
Selecciona una de las siguientes familias de máquinas:
Uso general
Optimizada para procesamiento
GPU
Si seleccionaste la familia GPU, selecciona el Tipo de GPU adecuado y la Cantidad de GPU según el tipo de máquina compatible.
Selecciona un tipo de máquina compatible para la tecnología de Confidential Computing que deseas usar.
En el menú de navegación, haz clic en Seguridad.
En la sección Servicio de Confidential VM, haz clic en Habilitar.
En el cuadro Selecciona un tipo, selecciona uno de los siguientes tipos de tecnología de Confidential Computing:
AMD SEV
AMD SEV-SNP
Intel TDX
En el cuadro de diálogo Habilitar Confidential Computing, revisa la lista de parámetros de configuración que se actualizan cuando habilitas el servicio. Pueden incluir los siguientes campos, si se configuraron con valores incompatibles.
Series y Tipos de máquinas Para obtener más información, consulta Tipos de máquinas, CPU y zonas.
Región y zona. Para obtener más información, consulta Tipos de máquinas, CPU y zonas.
Imagen de disco de arranque. Para obtener más información, consulta Sistemas operativos.
Mantenimiento en el host. Para obtener más información, consulta Configura la política de mantenimiento del host de una VM.
Tarjeta de interfaz de red. Para obtener más información, consulta Usa la NIC virtual de Google.
Haz clic en Confirmar y, luego, en Crear.
Después de hacer clic en Crear, se abrirá la página Instancias de VM. En esta página, puedes ver el estado y los detalles de tu instancia nueva. Cuando aparezca un ícono
Disponible en la columna Estado de la instancia de Confidential VM, estará lista para usarse.
gcloud
Para crear una instancia de Confidential VM con gcloud CLI, usa el
instances create
subcomando con la marca --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
Ingresa los siguientes valores:
INSTANCE_NAME: Es el nombre de la nueva instancia de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY: Es el tipo de tecnología de Confidential Computing que se usará. Elige uno de los siguientes valores:SEVSEV_SNPTDX
MACHINE_TYPE_NAME: Es el tipo de máquina de la VM, por ejemplo,n2d-standard-2. Los tipos de máquinas válidos para las instancias de Confidential VM están determinados por la tecnología de Confidential Computing que elegiste. Consulta Tipos de máquinas, CPU y zonas.CPU_PLATFORM: Elige uno de los siguientes valores:Para AMD SEV:
AMD Milan(tipos de máquinas C2D o N2D),AMD Genoa(tipos de máquinas C3D) oAMD Turin(tipos de máquinas C4D).Para AMD SEV-SNP:
AMD Milan(tipos de máquinas N2D).Para Intel TDX: Quita esta marca.
MAINTENANCE_POLICY: Para los tipos de máquinas N2D y C3D que usan SEV, configúralo comoMIGRATEpara la compatibilidad con la migración en vivo. Para todos los demás tipos de máquinas, establece este valor enTERMINATE, ya que no admiten la migración en vivo.ZONE_NAME: Es la zona compatible con Confidential VM en la que se crea la instancia.IMAGE_PROJECT: Es el proyecto que contiene la imagen del sistema operativo compatible.IMAGE_FAMILY_NAME: Es la familia de la imagen del sistema operativo compatible con Confidential VM. Cuando no especificas--imagede forma adicional, se selecciona la versión de imagen más reciente.PROJECT_ID: Opcional Es el ID del proyecto en el que se creará la VM.
Ejemplo
Ejecuta el siguiente comando para crear una instancia n2d-standard-2 llamada my-instance en la zona us-central1-a, con 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
Respuesta
Una respuesta a una solicitud de creación se ve de la siguiente manera:
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
Para crear una instancia de Confidential VM, debes enviar una solicitud POST con el contenido del cuerpo adecuado.
El método HTTP y la URL son los siguientes:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances
Cuerpo JSON de la solicitud:
{
"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"
}
]
}
Ingresa los siguientes valores:
PROJECT_ID: Es el ID del proyecto en el que se creará la VM.ZONE_NAME: Es la zona compatible con Confidential VM en la que se crea la instancia.INSTANCE_NAME: Es el nombre de la nueva instancia de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY: Es el tipo de tecnología de Confidential Computing que se usará. Elige uno de los siguientes valores:SEVSEV_SNPTDX
MACHINE_TYPE_NAME: Es el tipo de máquina de la VM, por ejemplo,n2d-standard-2. Los tipos de máquinas válidos para las instancias de Confidential VM están determinados por la tecnología de Confidential Computing que elegiste. Consulta Tipos de máquinas, CPU y zonas.CPU_PLATFORM: Elige uno de los siguientes valores:Para AMD SEV:
AMD Milan(tipos de máquinas C2D o N2D),AMD Genoa(tipos de máquinas C3D) oAMD Turin(tipos de máquinas C4D).Para AMD SEV-SNP:
AMD Milan(tipos de máquinas N2D).Para Intel TDX: Quita este par clave-valor.
MAINTENANCE_POLICY: Para los tipos de máquinas N2D que usan SEV, configúralo comoMIGRATEpara la compatibilidad con la migración en vivo. Para todos los demás tipos de máquinas, establece este valor enTERMINATE, ya que no admiten la migración en vivo .IMAGE_PROJECT: Es el proyecto que contiene la imagen del sistema operativo compatible.IMAGE_FAMILY_NAME: Es la familia de la imagen del sistema operativo compatible con Confidential VM. Cuando no especificas--imagede forma adicional, se selecciona la versión de imagen más reciente.
Ejemplo
Ejecuta uno de los siguientes comandos para crear una instancia n2d-standard-2 llamada my-instance en la zona us-central1-a, en el proyecto my-project, con AMD SEV-SNP:
curl (Linux, macOS o 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 ContentRespuesta
Una respuesta a una solicitud de creación se ve de la siguiente manera:
{
"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"
}
Para verificar el progreso de la creación de la VM, realiza una solicitud GET a selfLink:
GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/operations/OPERATION_ID
Habilita un ancho de banda de red mayor para tipos de máquinas específicos
Los tipos de máquinas más grandes admiten herramientas de redes de ancho de banda alto. Cuando seleccionas una configuración de ancho de banda de red de nivel 1, el ancho de banda de transferencia de datos de salida aumenta de los 32 Gbps predeterminados a 50 o 200 Gbps, según el tipo de máquina. Para alcanzar las velocidades de ancho de banda más altas de nivel 1, la instancia debe ejecutar el controlador de red virtual gVNIC. Obtén más información sobre cómo configurar una VM con un mayor ancho de banda.
¿Qué sigue?
Aprende a usar Cloud Monitoring para validar tus instancias de Confidential VMs.