Confidential VM-Instanz erstellen

Sie können eine Confidential VM-Instanz im Rahmen der Erstellung einer neuen Compute Engine-VM erstellen.

Hinweis

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

  1. Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch nicht mit Google Cloudvertraut sind, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  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. 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 einrichten für Ihre Anfragen. Weitere Informationen zu OAuth 2.0.

Instanz erstellen

Console

Führen Sie die folgenden Schritte aus, um eine Confidential VM-Instanz mit der Google Cloud Console zu erstellen:

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

    Zu "VM-Instanzen"

  2. Klicken Sie auf Instanz erstellen.

  3. Führen Sie im Bereich Maschinenkonfiguration die folgenden Schritte aus:

    1. Wählen Sie eine unterstützte Region und Zone aus.

    2. Wählen Sie eine der folgenden Maschinenfamilien aus:

      • Allgemein

      • Computing-optimiert

      • GPUs

    3. Wenn Sie die GPUs-Familie ausgewählt haben, wählen Sie den entsprechenden GPU-Typ und die Anzahl der GPUs basierend auf dem unterstützten Maschinentyp aus.

    4. Wählen Sie einen unterstützten Maschinentyp für die Confidential Computing-Technologie aus, die Sie verwenden möchten.

  4. Klicken Sie im Navigationsmenü auf Sicherheit.

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

  6. Wählen Sie im Feld Typ auswählen einen der folgenden Confidential Computing-Technologie typen aus:

    • AMD SEV

    • AMD SEV-SNP

    • Intel TDX

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

  8. Klicken Sie auf Bestätigen und dann 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 für Ihre neue Instanz aufrufen. Wenn in der Spalte Status für Ihre Confidential VM Instanz das Symbol Symbol „Grünes Häkchen“ Verfügbar angezeigt wird, ist sie einsatzbereit.

gcloud

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

Geben Sie folgende Werte an:

  • INSTANCE_NAME: Der Name der neuen VM-Instanz.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: Der Typ der zu verwendenden 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 durch die von Ihnen ausgewählte 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), AMD Genoa (C3D-Maschinentypen) oder AMD Turin (C4D-Maschinentypen).

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

    • Für Intel TDX: Entfernen Sie dieses Flag.

  • MAINTENANCE_POLICY: Legen Sie für N2D- und C3D-Maschinentypen, die SEV verwenden, MIGRATE fest, um die Live-Migration zu unterstützen. Legen Sie für alle anderen Maschinentypen den Wert TERMINATE fest, da sie die Live-Migration nicht unterstützen.

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

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

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

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

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 Textkörper senden.

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

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

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: Der Typ der zu verwendenden 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 durch die von Ihnen ausgewählte 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), AMD Genoa (C3D-Maschinentypen) oder AMD Turin (C4D-Maschinentypen).

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

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

  • MAINTENANCE_POLICY: Legen Sie für N2D-Maschinentypen, die SEV verwenden, MIGRATE fest, um die Live-Migration zu unterstützen. Legen Sie für alle anderen Maschinentypen den Wert TERMINATE fest, da sie die Live-Migration nicht unterstützen.

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

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

Beispiel

Führen Sie einen der folgenden Befehle aus, um eine n2d-standard-2-Instanz mit dem Namen 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 '{
            "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

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 den selfLink senden:

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

Höhere Netzwerkbandbreite für bestimmte Maschinentypen aktivieren

Größere Maschinentypen unterstützen Netzwerke mit hoher Bandbreite. Wenn Sie eine Netzwerkbandbreitenkonfiguration der Stufe 1 auswählen, erhöht sich die Bandbreite für die Datenübertragung von den standardmäßigen 32 Gbit/s auf 50 bis 200 Gbit/s, je nach Maschinentyp. Um die höheren Bandbreitengeschwindigkeiten der Stufe 1 zu erreichen, muss die Instanz den virtuellen gVNIC-Netzwerktreiber ausführen. VM mit höherer Bandbreite konfigurieren

Nächste Schritte

Weitere Informationen zur Verwendung von Cloud Monitoring zur Validierung Ihrer Confidential VM-Instanzen.