Confidential VM インスタンスを作成します

新しい Compute Engine 仮想マシンの作成の一環として、Confidential VM インスタンスを作成できます。

始める前に

Confidential VM インスタンスを作成する前に、次のように環境を設定する必要があります。

  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. 省略可: このガイドの gcloud CLI の例を使用するには、次のようにします。
  9. 省略可: このガイドの API の例を使用する場合は、リクエストに対する認証の設定を行います。OAuth 2.0 の詳細をご覧ください。
  10. インスタンスの作成

    コンソール

    Google Cloud コンソールを使用して AMD SEV Confidential VM を作成するには、次の操作を行います。

    1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

      [VM インスタンス] に移動

    2. [インスタンスを作成] をクリックします。

    3. [マシンの構成] ペインで、次の操作を行います。

      1. サポートされているリージョンとゾーンを選択します。

      2. 次のいずれかのマシン ファミリーを選択します。

        • 汎用

        • コンピューティング最適化

      3. 使用する Confidential Computing テクノロジーのサポートされているマシンタイプを選択します。

    4. ナビゲーション メニューで [セキュリティ] をクリックします。

    5. [Confidential VM サービス] セクションで、[有効にする] をクリックします。

    6. 次に、[Confidential Computing を有効にする] ダイアログで、サービスを有効にするときに更新される設定のリストを確認します。互換性のない値が設定されている場合は、次のフィールドを含めることができます。

    7. [有効にする]、[作成] の順にクリックします。

    [作成] をクリックすると、[VM インスタンス] ページが開きます。このページで、新しいインスタンスのステータスと詳細を確認できます。Confidential VMs インスタンスの [ステータス] 列に 緑色のチェックマークの利用可能アイコン [使用可能] アイコンが表示されていれば、使用できる状態です。

    gcloud

    gcloud CLI を使用して Confidential VM インスタンスを作成するには、--confidential-compute-type フラグを指定して instances create サブコマンドを使用します。

    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
    

    次の値を指定します。

    • INSTANCE_NAME: 新しい VM インスタンスの名前。

    • CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジーのタイプ。次のいずれかの値を選択します。

      • SEV

      • SEV_SNP

      • TDX

    • MACHINE_TYPE_NAME: VM のマシンタイプ(例: n2d-standard-2)。Confidential VM インスタンスの有効なマシンタイプは、選択した Confidential Computing テクノロジーによって決まります。マシンタイプ、CPU、ゾーンをご覧ください。

    • CPU_PLATFORM: 次のいずれかの値を選択します。

      • AMD SEV の場合: AMD Milan(C2D または N2D マシンタイプ)、AMD Genoa(C3D マシンタイプ)、AMD Turin(C4D マシンタイプ)のいずれか。

      • AMD SEV-SNP の場合: AMD Milan(N2D マシンタイプ)。

      • Intel TDX の場合: このフラグを削除します。

    • MAINTENANCE_POLICY: SEV を使用する N2D マシンタイプの場合は、ライブ マイグレーションをサポートするために MIGRATE に設定します。他のすべてのマシンタイプでは、ライブ マイグレーションをサポートしていないため、この値を TERMINATE に設定します。

    • ZONE_NAME: インスタンスを作成する Confidential VM がサポートされているゾーン

    • IMAGE_FAMILY_NAME: Confidential VM でサポートされるオペレーティング システム イメージのファミリー。--image を追加で指定しない場合は、最新のイメージ バージョンが選択されます。

    • IMAGE_PROJECT: サポートされているオペレーティング システム イメージを含むプロジェクト。

    • PROJECT_ID: 省略可。VM を作成するプロジェクトの ID。

    次のコマンドを実行して、AMD SEV-SNP を使用して us-central1-a ゾーンに my-instance という n2d-standard-2 インスタンスを作成します。

    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
    

    レスポンス

    作成リクエストに対するレスポンスは次のようになります。

    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

    Confidential VM インスタンスを作成するには、適切な本文コンテンツを含む POST リクエストを送信する必要があります。

    HTTP メソッドと URL:

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

    リクエストの本文(JSON):

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

    次の値を指定します。

    • PROJECT_ID: VM を作成するプロジェクトの ID。

    • ZONE_NAME: インスタンスを作成する Confidential VM がサポートされているゾーン

    • INSTANCE_NAME: 新しい VM インスタンスの名前。

    • CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジーのタイプ。次のいずれかの値を選択します。

      • SEV

      • SEV_SNP

      • TDX

    • MACHINE_TYPE_NAME: VM のマシンタイプ(例: n2d-standard-2)。Confidential VM インスタンスの有効なマシンタイプは、選択した Confidential Computing テクノロジーによって決まります。マシンタイプ、CPU、ゾーンをご覧ください。

    • CPU_PLATFORM: 次のいずれかの値を選択します。

      • AMD SEV の場合: AMD Milan(C2D または N2D マシンタイプ)、AMD Genoa(C3D マシンタイプ)、AMD Turin(C4D マシンタイプ)のいずれか。

      • AMD SEV-SNP の場合: AMD Milan(N2D マシンタイプ)。

      • Intel TDX の場合: この Key-Value ペアを削除します。

    • IMAGE_PROJECT: サポートされているオペレーティング システム イメージを含むプロジェクト。

    • IMAGE_FAMILY_NAME: Confidential VM でサポートされるオペレーティング システム イメージのファミリー。--image を追加で指定しない場合は、最新のイメージ バージョンが選択されます。

    • MAINTENANCE_POLICY: SEV を使用する N2D マシンタイプの場合は、ライブ マイグレーションをサポートするために MIGRATE に設定します。他のすべてのマシンタイプでは、ライブ マイグレーションをサポートしていないため、この値を TERMINATE に設定します。

    次のいずれかのコマンドを実行して、my-project プロジェクトの us-central1-a ゾーンに、AMD SEV-SNP を使用して my-instance という n2d-standard-2 インスタンスを作成します。

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

    レスポンス

    作成リクエストに対するレスポンスは次のようになります。

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

    VM の作成の進行状況を確認するには、selfLinkGET リクエストを送信します。

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

    特定のマシンタイプに大きいネットワーク帯域幅を有効にする

    大規模なマシンタイプは、高帯域幅ネットワーキングをサポートしています。Tier_1 ネットワーク帯域幅の構成を選択すると、データ転送の下り(外向き)帯域幅は、マシンタイプに応じてデフォルトの 32 Gbps から 50 ~ 200 Gbps に増加します。Tier_1 の帯域幅速度を速い方にするには、インスタンスで gVNIC 仮想ネットワーク ドライバが実行されている必要があります。詳細については、高帯域幅の VM の構成をご覧ください。

    次のステップ

    Cloud Monitoring を使用して Confidential VMs インスタンスを検証する方法を確認する。