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 l'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 dell'interfaccia a riga di comando gcloud 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.

Crea un'istanza

Console

Per creare una VM AMD SEV Confidential 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. Nella sezione Servizio Confidential VM, fai clic su Attiva.

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

  5. Fai clic su Attiva.

  6. Nella sezione Configurazione macchina, espandi Configurazioni avanzate.

  7. Per la piattaforma CPU, scegli AMD Milan o versioni successive.

  8. Verifica che queste impostazioni ti soddisfino e poi fai clic 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 segno di spunta verde Disponibile nella colonna Stato della tua istanza Confidential VM, significa che è pronta per l'uso.

gcloud

Per creare un'istanza Confidential VM con la CLI gcloud, utilizza il subcomando 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: ad esempio il tipo di macchina VM, n2d-standard-2. I tipi di macchine 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) o AMD Genoa (tipi di macchine C3D).

    • 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 in tempo reale. Per tutti gli altri tipi di macchine, imposta questo valore su TERMINATE, poiché non supportano la migrazione in tempo reale.

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

  • IMAGE_FAMILY_NAME: la famiglia per l'immagine del sistema operativo supportato da Confidential VM. Se non specifichi --image, viene selezionata la versione più recente dell'immagine.

  • IMAGE_PROJECT: il progetto contenente l'immagine del sistema operativo supportato.

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

Esempio

Esegui il comando seguente per creare un'istanza n2d-standard-2 denominata 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 i contenuti del corpo appropriati.

Il metodo HTTP e l'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: ad esempio, il tipo di macchina VM, n2d-standard-2. I tipi di macchine 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) o AMD Genoa (tipi di macchine C3D).

    • 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 del sistema operativo supportato.

  • IMAGE_FAMILY_NAME: la famiglia per l'immagine del sistema operativo supportato da Confidential VM. Se non specifichi --image, viene selezionata la versione più recente dell'immagine.

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

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 l'avanzamento della creazione della VM inviando una richiesta GET al servizio selfLink:

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

Attivare una maggiore larghezza di banda di rete per i tipi di macchine C2D

Le tre dimensioni VM Compute Engine C2D più grandi (32, 56 e 112) supportano la rete ad alta larghezza di banda. Quando selezioni una configurazione della larghezza di banda della rete di livello 1, la larghezza di banda del trasferimento di dati in uscita aumenta dai 32 Gbps predefiniti a 50 o 100 Gbps. Per raggiungere le velocità di larghezza di banda del livello 1 più elevate, l'istanza deve eseguire il driver di rete virtuale gVNIC. Scopri di più sulla configurazione di una VM con una larghezza di banda superiore.

Passaggi successivi

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