Creare un'istanza Confidential VM

Puoi creare un'istanza Confidential VM durante la creazione di una nuova macchina virtuale Compute Engine.

Prima di iniziare

Prima di creare un'istanza Confidential VM, devi configurare il tuo ambiente come segue:

  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. (Facoltativo) Per utilizzare gli esempi di gcloud CLI in questa guida:
  9. (Facoltativo) Per utilizzare gli esempi di API in questa guida, configura l'autenticazione per le tue richieste. Scopri di più su OAuth 2.0.
  10. Crea un'istanza

    Console

    Per creare una VM confidenziale AMD SEV con la console Google Cloud , completa i seguenti passaggi.

    1. Nella console Google Cloud , vai alla pagina Istanze VM.

      Vai a Istanze VM

    2. Fai clic su Crea istanza.

    3. Nel riquadro Configurazione macchina, segui questi passaggi:

      1. Seleziona una regione e una zona supportate.

      2. Seleziona una delle seguenti famiglie di macchine:

        • Per uso generico

        • Ottimizzata per il calcolo

      3. Seleziona un tipo di macchina supportato per la tecnologia Confidential Computing che vuoi utilizzare.

    4. Nel menu di navigazione, fai clic su Sicurezza.

    5. Nella sezione Servizio Confidential VM, fai clic su Abilita.

    6. Nella finestra di dialogo Abilita Confidential Computing, controlla l'elenco delle impostazioni che vengono aggiornate quando attivi il servizio. Possono includere i seguenti campi, se sono stati impostati su valori incompatibili.

    7. Fai clic su Attiva, quindi su Crea.

    Dopo aver fatto clic su Crea, viene visualizzata la pagina Istanze VM. In questa pagina puoi visualizzare lo stato e i dettagli della nuova istanza. Quando viene visualizzata l'icona icona con segno di spunta verde disponibile Disponibile nella colonna Stato della tua istanza Confidential VM, significa che è pronta per l'uso.

    gcloud

    Per creare un'istanza Confidential VM con gcloud CLI, utilizza il comando secondario instances create con il flag --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
    

    Fornisci i seguenti valori:

    • INSTANCE_NAME: il nome della nuova istanza VM.

    • CONFIDENTIAL_COMPUTING_TECHNOLOGY: Il tipo di tecnologia Confidential Computing da utilizzare. Scegli uno dei seguenti valori:

      • SEV

      • SEV_SNP

      • TDX

    • MACHINE_TYPE_NAME: il tipo di macchina della VM, ad esempio n2d-standard-2. I tipi di macchina validi per le istanze Confidential VM sono determinati dalla tecnologia Confidential Computing che hai scelto. Consulta Tipi di macchine, CPU e zone.

    • CPU_PLATFORM: scegli uno dei seguenti valori:

      • Per AMD SEV: AMD Milan (tipi di macchine C2D o N2D), AMD Genoa (tipi di macchine C3D) o AMD Turin (tipi di macchine C4D).

      • Per AMD SEV-SNP: AMD Milan (tipi di macchine N2D).

      • Per Intel TDX: rimuovi questo flag.

    • MAINTENANCE_POLICY: per i tipi di macchine N2D che utilizzano SEV, imposta questo valore su MIGRATE per il supporto della migrazione live. Per tutti gli altri tipi di macchine, imposta questo valore su TERMINATE, in quanto non supportano la migrazione live.

    • ZONE_NAME: la zona supportata da Confidential VM in cui creare l'istanza.

    • IMAGE_FAMILY_NAME: la famiglia dell'immagine del sistema operativo supportata da Confidential VM. Se non specifichi --image, viene selezionata l'ultima versione dell'immagine.

    • IMAGE_PROJECT: Il progetto contenente l'immagine sistema operativo supportata.

    • PROJECT_ID: (Facoltativo). L'ID del progetto in cui creare la VM.

    Esempio

    Esegui questo comando per creare un'istanza n2d-standard-2 chiamata my-instance nella zona us-central1-a utilizzando 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-family=ubuntu-2404-lts-amd64 \
        --image-project=ubuntu-os-cloud
    

    Risposta

    Una risposta a una richiesta di creazione è simile al seguente esempio:

    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

    Per creare un'istanza Confidential VM, devi inviare una richiesta POST con il contenuto del corpo appropriato.

    Metodo HTTP e URL:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances
    

    Corpo JSON della richiesta:

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

    Fornisci i seguenti valori:

    • PROJECT_ID: l'ID del progetto in cui creare la VM.

    • ZONE_NAME: la zona supportata da Confidential VM in cui creare l'istanza.

    • INSTANCE_NAME: il nome della nuova istanza VM.

    • CONFIDENTIAL_COMPUTING_TECHNOLOGY: Il tipo di tecnologia Confidential Computing da utilizzare. Scegli uno dei seguenti valori:

      • SEV

      • SEV_SNP

      • TDX

    • MACHINE_TYPE_NAME: il tipo di macchina della VM, ad esempio n2d-standard-2. I tipi di macchina validi per le istanze Confidential VM sono determinati dalla tecnologia Confidential Computing che hai scelto. Consulta Tipi di macchine, CPU e zone.

    • CPU_PLATFORM: scegli uno dei seguenti valori:

      • Per AMD SEV: AMD Milan (tipi di macchine C2D o N2D), AMD Genoa (tipi di macchine C3D) o AMD Turin (tipi di macchine C4D).

      • Per AMD SEV-SNP: AMD Milan (tipi di macchine N2D).

      • Per Intel TDX: rimuovi questa coppia chiave-valore.

    • IMAGE_PROJECT: Il progetto contenente l'immagine sistema operativo supportata.

    • IMAGE_FAMILY_NAME: la famiglia dell'immagine del sistema operativo supportata da Confidential VM. Se non specifichi --image, viene selezionata l'ultima versione dell'immagine.

    • MAINTENANCE_POLICY: per i tipi di macchine N2D che utilizzano SEV, imposta questo valore su MIGRATE per il supporto della migrazione live. Per tutti gli altri tipi di macchine, imposta questo valore su TERMINATE, in quanto non supportano la migrazione live.

    Esempio

    Esegui uno dei seguenti comandi per creare un'istanza n2d-standard-2 chiamata my-instance nella zona us-central1-a, nel progetto my-project, utilizzando 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 '{
                "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

    Risposta

    Una risposta a una richiesta di creazione è simile al seguente esempio:

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

    Puoi controllare lo stato di avanzamento della creazione della VM inviando una richiesta GET a selfLink:

    GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/operations/OPERATION_ID
    

    Attiva una larghezza di banda di rete più elevata per tipi di macchine specifici

    I tipi di macchine più grandi supportano la rete a larghezza di banda elevata. Quando selezioni una configurazione della larghezza di banda di rete Tier_1, la larghezza di banda per il trasferimento dei dati in uscita aumenta da 32 Gbps predefiniti a un valore compreso tra 50 e 200 Gbps, a seconda del tipo di macchina. Per raggiungere velocità di larghezza di banda Tier_1 più elevate, l'istanza deve eseguire il driver di rete virtuale gVNIC. Scopri di più sulla configurazione di una VM con più larghezza di banda.

    Passaggi successivi

    Scopri come utilizzare Cloud Monitoring per convalidare le istanze Confidential VM.