Crea una instancia de Confidential VM

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:

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine API.

    Enable the API

  8. Opcional: Para usar los ejemplos de gcloud CLI en esta guía, haz lo siguiente:
  9. Opcional: Si quieres usar los ejemplos de API de esta guía, configura la autenticación para tus solicitudes. Obtén más información sobre OAuth 2.0.
  10. Crea una instancia

    Console

    Para crear una Confidential VM con SEV de AMD con la consola de Google Cloud , completa los siguientes pasos.

    1. En la Google Cloud consola, ve a la página Instancias de VM.

      Ir a Instancias de VM

    2. Haz clic en Crear instancia.

    3. En el panel Configuración de la máquina, haz lo siguiente:

      1. Selecciona una región y una zona admitidas.

      2. Selecciona una de las siguientes familias de máquinas:

        • Uso general

        • Optimizada para procesamiento

      3. Selecciona un tipo de máquina compatible con la tecnología de Confidential Computing que deseas usar.

    4. En el menú de navegación, haz clic en Seguridad.

    5. En la sección Servicio de Confidential VM, haz clic en Habilitar.

    6. 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.

    7. Haz clic en Habilitar 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 Ícono de marca de verificación verde disponible Disponible en la columna Estado de tu instancia de Confidential VM, estará lista para usarse.

    gcloud

    Para crear una instancia de Confidential VM con gcloud CLI, usa el subcomando instances create 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-family=IMAGE_FAMILY_NAME \
        --image-project=IMAGE_PROJECT \
        --project=PROJECT_ID
    

    Ingresa los siguientes valores:

    • INSTANCE_NAME: Es el nombre de la instancia de VM nueva.

    • CONFIDENTIAL_COMPUTING_TECHNOLOGY: Es el tipo de tecnología de Confidential Computing que se usará. Elige uno de los siguientes valores:

      • SEV

      • SEV_SNP

      • TDX

    • 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 se determinan según la tecnología de Confidential Computing que elijas. Consulta Tipos de máquinas, CPUs 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) o AMD 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 que usan SEV, establece este parámetro en MIGRATE para admitir la migración en vivo. Para todos los demás tipos de máquinas, establece este valor en TERMINATE, ya que no admiten la migración en vivo.

    • ZONE_NAME: Es la zona compatible con Confidential VM en la que se creará la instancia.

    • IMAGE_FAMILY_NAME: Es la familia de la imagen del sistema operativo compatible con Confidential VMs. Cuando no especificas --image de forma adicional, se selecciona la versión de imagen más reciente.

    • IMAGE_PROJECT: Es el proyecto que contiene la imagen del sistema operativo compatible.

    • PROJECT_ID: Opcional 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 SEV-SNP de AMD:

    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
    

    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:

    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",
      "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
      }
    }
    

    Ingresa los siguientes valores:

    • PROJECT_ID: ID del proyecto en el que se creará la VM.

    • ZONE_NAME: Es la zona compatible con Confidential VM en la que se creará la instancia.

    • INSTANCE_NAME: Es el nombre de la instancia de VM nueva.

    • CONFIDENTIAL_COMPUTING_TECHNOLOGY: Es el tipo de tecnología de Confidential Computing que se usará. Elige uno de los siguientes valores:

      • SEV

      • SEV_SNP

      • TDX

    • 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 se determinan según la tecnología de Confidential Computing que elijas. Consulta Tipos de máquinas, CPUs 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) o AMD Turin (tipos de máquinas C4D).

      • Para AMD SEV-SNP: AMD Milan (tipos de máquinas N2D).

      • En el caso de Intel TDX, quita este par clave-valor.

    • 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 VMs. Cuando no especificas --image de forma adicional, se selecciona la versión de imagen más reciente.

    • MAINTENANCE_POLICY: Para los tipos de máquinas N2D que usan SEV, establece este parámetro en MIGRATE para admitir la migración en vivo. Para todos los demás tipos de máquinas, establece este valor en TERMINATE, ya que no admiten la migración en vivo.

    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 SEV-SNP de AMD:

    curl (Linux, macOS o 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

    Respuesta

    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 mayor ancho de banda de red para tipos de máquinas específicos

    Los tipos de máquinas más grandes admiten 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 saliente aumenta de los 32 Gbps predeterminados a entre 50 y 200 Gbps, según el tipo de máquina. Para alcanzar las velocidades de ancho de banda más altas de Tier_1, tu instancia debe ejecutar el controlador de red virtual gVNIC. Obtén más información para configurar una VM con mayor ancho de banda.

    ¿Qué sigue?

    Aprende a usar Cloud Monitoring para validar tus instancias de Confidential VM.