Creare un'istanza Confidential VM

Puoi creare un'istanza Confidential VM nell'ambito della 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. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    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 richieste. Scopri di più su OAuth 2.0.

Crea un'istanza

Console

Per creare un'istanza Confidential VM con la Google Cloud console, completa i seguenti passaggi:

  1. Nella Google Cloud console, 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:

      • Uso generico

      • Ottimizzata per il calcolo

      • GPU

    3. Se hai selezionato la famiglia GPU, seleziona il tipo di GPU appropriato e il numero di GPU in base al tipo di macchina supportato.

    4. 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 casella Seleziona un tipo, seleziona uno dei seguenti tipi di tecnologia Confidential Computing:

    • AMD SEV

    • AMD SEV-SNP

    • Intel TDX

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

  8. Fai clic su Conferma, 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 instances create sottocomando con il --confidential-compute-type flag.

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

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 VM, ad esempio 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), 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 e C3D 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, poiché non supportano la migrazione live.

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

  • IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata.

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

  • 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-project=ubuntu-os-cloud \
    --image-family=ubuntu-2404-lts-amd64

Risposta

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

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.

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

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 VM, ad esempio 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), 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.

  • 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, poiché non supportano la migrazione live .

  • IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata.

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

Esempio

Esegui uno dei seguenti comandi per creare un'istanza n2d-standard-2 denominata 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 '{
            "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/instances

PowerShell (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

Risposta

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

{
  "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 effettuando una richiesta GET a selfLink:

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

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

I tipi di macchine più grandi supportano il networking a larghezza di banda elevata. Quando selezioni una configurazione della larghezza di banda di rete Tier_1, la larghezza di banda in uscita per il trasferimento dei dati aumenta dal valore predefinito di 32 Gbps a 50-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ù su come configurare una VM con una larghezza di banda più elevata.

Passaggi successivi

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