Confidential VM-Instanz erstellen

Sie können eine Confidential VM-Instanz erstellen, wenn Sie eine neue Compute Engine-VM erstellen.

Hinweise

Bevor Sie eine Confidential VM-Instanz erstellen, müssen Sie Ihre Umgebung so einrichten:

  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. Optional: So verwenden Sie die Beispiele der gcloud CLI in dieser Anleitung:
  9. Optional: Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, müssen Sie die Authentifizierung für Ihre Anfragen einrichten. Weitere Informationen zu OAuth 2.0.

Instanz erstellen

Console

So erstellen Sie mit der Google Cloud Console eine AMD SEV Confidential VM:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Klicken Sie im Abschnitt Confidential VM-Dienst auf Aktivieren.

  4. Prüfen Sie im Dialogfeld Confidential Computing aktivieren die Liste der Einstellungen, die beim Aktivieren des Dienstes aktualisiert werden. Wenn die Werte inkompatibel sind, können sie die folgenden Felder enthalten.

  5. Klicken Sie auf Aktivieren.

  6. Maximieren Sie im Abschnitt Maschinenkonfiguration den Abschnitt Erweiterte Konfigurationen.

  7. Wählen Sie als CPU-Plattform AMD Milan oder höher aus.

  8. Prüfen Sie, ob diese Einstellungen Ihren Anforderungen entsprechen, und klicken Sie auf Erstellen.

Nachdem Sie auf Erstellen geklickt haben, wird die Seite VM-Instanzen geöffnet. Auf dieser Seite können Sie den Status und die Details der neuen Instanz ansehen. Wenn in der Spalte Status für Ihre Confidential VM-Instanz das Symbol grünes Häkchen Verfügbar angezeigt wird, ist sie einsatzbereit.

gcloud

Verwenden Sie zum Erstellen einer Confidential VM-Instanz mit der gcloud-Befehlszeile den Unterbefehl instances create mit dem 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

Geben Sie folgende Werte an:

  • INSTANCE_NAME: Der Name der neuen VM-Instanz.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: Die zu verwendende Confidential Computing-Technologie. Wählen Sie einen der folgenden Werte aus:

    • SEV

    • SEV_SNP

    • TDX

  • MACHINE_TYPE_NAME: Der Maschinentyp der VM, z. B. n2d-standard-2. Gültige Maschinentypen für Confidential VM-Instanzen werden von der von Ihnen ausgewählten Confidential Computing-Technologie bestimmt. Weitere Informationen finden Sie unter Maschinentypen, CPUs und Zonen.

  • CPU_PLATFORM: Wählen Sie einen der folgenden Werte aus:

    • Für AMD SEV: Entweder AMD Milan (C2D- oder N2D-Maschinentypen) oder AMD Genoa (C3D-Maschinentypen).

    • Für AMD SEV-SNP: AMD Milan (N2D-Maschinentypen)

    • Intel TDX: Entfernen Sie dieses Flag.

  • MAINTENANCE_POLICY: Legen Sie für N2D-Maschinentypen, die SEV verwenden, MIGRATE fest, um die Unterstützung für die Livemigration zu aktivieren. Legen Sie für alle anderen Maschinentypen diesen Wert auf TERMINATE fest, da sie keine Live-Migration unterstützen.

  • ZONE_NAME: Die von Confidential VM unterstützte Zone, in der die Instanz erstellt werden soll.

  • IMAGE_FAMILY_NAME: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie --image nicht zusätzlich angeben, wird die neueste Image-Version ausgewählt.

  • IMAGE_PROJECT: Das Projekt, das das unterstützte Betriebssystem-Image enthält.

  • PROJECT_ID: Optional. Die ID des Projekts, in dem die VM erstellt werden soll.

Beispiel

Führen Sie den folgenden Befehl aus, um eine n2d-standard-2-Instanz mit dem Namen my-instance in der Zone us-central1-a mit AMD SEV-SNP zu erstellen:

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

Antwort

Eine Antwort auf eine Erstellungsanfrage sieht in etwa so aus:

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

Wenn Sie eine Confidential VM-Instanz erstellen möchten, müssen Sie eine POST-Anfrage mit dem entsprechenden Text senden.

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

Geben Sie folgende Werte an:

  • PROJECT_ID: Die ID des Projekts, in dem die VM erstellt werden soll.

  • ZONE_NAME: Die von Confidential VM unterstützte Zone, in der die Instanz erstellt werden soll.

  • INSTANCE_NAME: Der Name der neuen VM-Instanz.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: Die zu verwendende Confidential Computing-Technologie. Wählen Sie einen der folgenden Werte aus:

    • SEV

    • SEV_SNP

    • TDX

  • MACHINE_TYPE_NAME: Der Maschinentyp der VM, z. B. n2d-standard-2. Gültige Maschinentypen für Confidential VM-Instanzen werden von der von Ihnen ausgewählten Confidential Computing-Technologie bestimmt. Weitere Informationen finden Sie unter Maschinentypen, CPUs und Zonen.

  • CPU_PLATFORM: Wählen Sie einen der folgenden Werte aus:

    • Für AMD SEV: Entweder AMD Milan (C2D- oder N2D-Maschinentypen) oder AMD Genoa (C3D-Maschinentypen).

    • Für AMD SEV-SNP: AMD Milan (N2D-Maschinentypen)

    • Intel TDX: Entfernen Sie dieses Schlüssel/Wert-Paar.

  • IMAGE_PROJECT: Das Projekt, das das unterstützte Betriebssystem-Image enthält.

  • IMAGE_FAMILY_NAME: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie --image nicht zusätzlich angeben, wird die neueste Image-Version ausgewählt.

  • MAINTENANCE_POLICY: Legen Sie für N2D-Maschinentypen, die SEV verwenden, MIGRATE fest, um die Unterstützung für die Livemigration zu aktivieren. Legen Sie für alle anderen Maschinentypen diesen Wert auf TERMINATE fest, da sie keine Live-Migration unterstützen.

Beispiel

Führen Sie einen der folgenden Befehle aus, um eine n2d-standard-2-Instanz namens my-instance in der Zone us-central1-a im Projekt my-project mit AMD SEV-SNP zu erstellen:

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

Antwort

Eine Antwort auf eine Erstellungsanfrage sieht in etwa so aus:

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

Sie können den Fortschritt der VM-Erstellung prüfen, indem Sie eine GET-Anfrage an die selfLink senden:

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

Höhere Netzwerkbandbreite für C2D-Maschinentypen aktivieren

Die drei größten C2D-Compute Engine-VM-Formen (32, 56 und 112) unterstützen Netzwerke mit hoher Bandbreite. Wenn Sie eine Netzwerkbandbreitenkonfiguration der Stufe 1 auswählen, erhöht sich die Bandbreite für die ausgehende Datenübertragung von den standardmäßigen 32 Gbit/s auf 50 oder 100 Gbit/s. Um die höheren Bandbreitengeschwindigkeiten der Stufe 1 zu erreichen, muss die Instanz den virtuellen gVNIC-Netzwerktreiber ausführen. Weitere Informationen zum Konfigurieren einer VM mit höherer Bandbreite

Nächste Schritte

Weitere Informationen zur Validierung Ihrer Confidential VM-Instanzen mit Cloud Monitoring