Créer une instance de Confidential VM

Vous pouvez créer une instance Confidential VM lors de la création d'une machine virtuelle Compute Engine.

Avant de commencer

Avant de créer une instance de Confidential VM, vous devez configurer votre environnement comme suit:

  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. Facultatif: Pour utiliser les exemples de la CLI gcloud de ce guide :
  9. Facultatif: Pour utiliser les exemples d'API de ce guide, configurez l'authentification pour vos requêtes. Découvrez-en davantage sur OAuth 2.0.

Créer une instance

Console

Pour créer une VM AMD SEV Confidential avec la console Google Cloud, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur Créer une instance.

  3. Dans la section Service Confidential VM, cliquez sur Activer.

  4. Dans la boîte de dialogue Activer l'informatique confidentielle, consultez la liste des paramètres mis à jour lorsque vous activez le service. Ils peuvent inclure les champs suivants, s'ils ont été définis sur des valeurs incompatibles.

  5. Cliquez sur Activer.

  6. Dans la section Configuration de la machine, développez Configurations avancées.

  7. Pour la plate-forme de processeur, sélectionnez AMD Milan ou version ultérieure.

  8. Vérifiez que vous êtes satisfait de ces paramètres, puis cliquez sur Créer.

Après avoir cliqué sur Créer, la page Instances de VM s'ouvre. Sur cette page, vous pouvez afficher l'état et les détails de votre nouvelle instance. Lorsqu'une icône Coche verte Disponible apparaît dans la colonne État de votre instance de Confidential VM, celle-ci est prête à l'emploi.

gcloud

Pour créer une instance de Confidential VM avec gcloud CLI, utilisez la sous-commande instances create avec l'option --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

Indiquez les valeurs suivantes :

  • INSTANCE_NAME : nom de la nouvelle instance de VM.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY : type de technologie d'informatique confidentielle à utiliser. Choisissez l'une des valeurs suivantes :

    • SEV

    • SEV_SNP

    • TDX

  • MACHINE_TYPE_NAME: type de machine de la VM, par exemple n2d-standard-2. Les types de machines valides pour les instances de VM Confidential sont déterminés par la technologie de calcul confidentiel que vous avez choisie. Consultez la section Types de machines, processeurs et zones.

  • CPU_PLATFORM: choisissez l'une des valeurs suivantes:

    • Pour AMD SEV: AMD Milan (types de machines C2D ou N2D) ou AMD Genoa (types de machines C3D).

    • Pour AMD SEV-SNP: AMD Milan (types de machines N2D).

    • Pour Intel TDX: supprimez cet indicateur.

  • MAINTENANCE_POLICY: pour les types de machines N2D qui utilisent SEV, définissez cette valeur sur MIGRATE pour la prise en charge de la migration en direct. Pour tous les autres types de machines, définissez cette valeur sur TERMINATE, car ils ne sont pas compatibles avec la migration à chaud.

  • ZONE_NAME: zone compatible avec Confidential VM dans laquelle créer l'instance.

  • IMAGE_FAMILY_NAME: famille de l'image du système d'exploitation compatible avec les VM Confidential. Si vous ne spécifiez pas --image, la dernière version de l'image est sélectionnée.

  • IMAGE_PROJECT: projet contenant l'image du système d'exploitation compatible.

  • PROJECT_ID : facultatif. ID du projet dans lequel créer la VM.

Exemple

Exécutez la commande suivante pour créer une instance n2d-standard-2 appelée my-instance dans la zone us-central1-a à l'aide d'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

Réponse

Une réponse à une requête de création ressemble à l'exemple suivant:

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

Pour créer une instance de VM Confidential, vous devez envoyer une requête POST avec le contenu de corps approprié.

Méthode HTTP et URL:

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

Corps JSON de la requête :

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

Indiquez les valeurs suivantes :

  • PROJECT_ID: ID du projet dans lequel créer la VM.

  • ZONE_NAME: zone compatible avec Confidential VM dans laquelle créer l'instance.

  • INSTANCE_NAME : nom de la nouvelle instance de VM.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY : type de technologie d'informatique confidentielle à utiliser. Choisissez l'une des valeurs suivantes :

    • SEV

    • SEV_SNP

    • TDX

  • MACHINE_TYPE_NAME: type de machine de la VM, par exemple n2d-standard-2. Les types de machines valides pour les instances de VM Confidential sont déterminés par la technologie de calcul confidentiel que vous avez choisie. Consultez la section Types de machines, processeurs et zones.

  • CPU_PLATFORM: choisissez l'une des valeurs suivantes:

    • Pour AMD SEV: AMD Milan (types de machines C2D ou N2D) ou AMD Genoa (types de machines C3D).

    • Pour AMD SEV-SNP: AMD Milan (types de machines N2D).

    • Pour Intel TDX: supprimez cette paire clé-valeur.

  • IMAGE_PROJECT: projet contenant l'image du système d'exploitation compatible.

  • IMAGE_FAMILY_NAME: famille de l'image du système d'exploitation compatible avec les VM Confidential. Si vous ne spécifiez pas --image, la dernière version de l'image est sélectionnée.

  • MAINTENANCE_POLICY: pour les types de machines N2D qui utilisent SEV, définissez cette valeur sur MIGRATE pour la prise en charge de la migration en direct. Pour tous les autres types de machines, définissez cette valeur sur TERMINATE, car ils ne sont pas compatibles avec la migration à chaud.

Exemple

Exécutez l'une des commandes suivantes pour créer une instance n2d-standard-2 appelée my-instance dans la zone us-central1-a, dans le projet my-project, à l'aide d'AMD SEV-SNP:

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

Réponse

Une réponse à une requête de création ressemble à l'exemple suivant:

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

Vous pouvez vérifier la progression de la création de la VM en envoyant une requête GET à selfLink:

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

Activer l'augmentation de la bande passante réseau pour les types de machines C2D

Les trois plus grandes formes de VM Compute Engine C2D (32, 56 et 112) sont compatibles avec la mise en réseau à bande passante élevée. Lorsque vous sélectionnez une configuration de bande passante réseau de niveau 1, la bande passante de transfert de données sortant passe de 32 Gbit/s par défaut à 50 ou 100 Gbit/s. Pour atteindre les vitesses de bande passante de niveau 1 plus élevées, l'instance doit exécuter le pilote de réseau virtuel gVNIC. Découvrez comment configurer une VM avec une bande passante plus élevée.

Étape suivante

Découvrez comment utiliser Cloud Monitoring pour valider vos instances Confidential VM.