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

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

始める前に

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 の詳細をご覧ください。

インスタンスの作成

コンソール

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

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

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

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

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

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

  5. [有効にする] をクリックします。

  6. [マシンの構成] セクションで、[高度な構成] を開きます。

  7. [CPU プラットフォーム] で、[AMD Milan 以降] を選択します。

  8. これらの設定が問題ないことを確認し、[作成] をクリックします。

[作成] をクリックすると、[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 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 SEV-SNP の場合: AMD Milan(N2D マシンタイプ)。

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

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

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

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

次のいずれかのコマンドを実行して、AMD SEV-SNP を使用して、my-project プロジェクトの us-central1-a ゾーンに 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

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

上位 3 つの C2D Compute Engine VM 型(32、56、112)では、高帯域幅ネットワーキングがサポートされています。ティア 1 ネットワーク帯域幅の構成を選択すると、データ転送(送信)帯域幅はデフォルトの 32 Gbps から 50 Gbps または 100 Gbps に増加します。ティア 1 の帯域幅速度を速い方にするには、インスタンスで gVNIC 仮想ネットワーク ドライバが実行されている必要があります。詳細については、帯域幅の大きな VM の構成をご覧ください。

次のステップ

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