Confidential VM インスタンスを作成する

このページでは、新しい Confidential VM インスタンスの設定方法について説明します。

Confidential VM の詳細については、Confidential VMs と Compute Engineをご覧ください。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    [プロジェクトの選択] ページに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Compute Engine API を有効にします。

    Compute Engine API を有効にする

  5. このガイドのコマンドラインの例を使用する場合は、次のことを行ってください。
  6. このガイドの API の例を使用する場合は API アクセスを設定します。

新しい Confidential VM インスタンスを作成する

Cloud Console

Google Cloud Console を使用して AMD Secure Encrypted Virtualization(SEV)CPU プラットフォームに新しい Confidential VM を作成するには:

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

    [VM インスタンス] ページに移動

  2. インスタンスを作成」をクリックします。
  3. [CPU プラットフォームと GPU] をクリックしてセクションを展開します。

  4. [CPU プラットフォーム] は [自動] のままにします。
  5. [機密 VM サービス] チェックボックスをオンにします。

  6. サービスを有効にすると変更される設定を通知するメッセージが表示されます。[有効にする] をクリックします。

デフォルトの OS ブートディスクが Shielded Container Optimized OS(COS)に変更されます。ブートディスクを別の OS に変更するには、[変更] をクリックして、Confidential VM のサポート対象の OS を選択します。

残りのオプションはデフォルト値のままにすることも、必要に応じて変更することもできます。使用可能なオプションについては、Compute Engine ドキュメントのカスタム マシンタイプを持つ VM インスタンスの作成をご覧ください。完了したら、[作成] をクリックします。

完了したら、[作成] をクリックします。

gcloud

新しい Confidential VM インスタンスを作成するには、Confidential VM でサポートされている Compute Engine イメージを使用します。

サポートされているイメージの一覧表示

既存の Confidential VM でサポートされているイメージを一覧表示するには、次のいずれかのコマンドを使用します。

Shielded Container Optimized OS(COS):

gcloud compute images list --filter="guestOsFeatures[].type:(SEV_CAPABLE)" --project cos-cloud;

Ubuntu Linux:

gcloud compute images list --filter="guestOsFeatures[].type:(SEV_CAPABLE)" --project ubuntu-os-cloud;

イメージの詳細を表示する

特定のイメージの詳細を表示するには、次のように zones describe サブコマンドを使用します。IMAGE_NAME プレースホルダはイメージの名前で置き換え、IMAGE_PROJECT_NAME はイメージのプロジェクト名で置き換えます。

gcloud compute images describe IMAGE_NAME --project IMAGE_PROJECT_NAME;

ゾーンごとの使用可能な CPU プラットフォームを一覧表示する

特定のゾーンで使用可能な CPU プラットフォームの一覧を取得するには、zones describe サブコマンドを使用します。ZONE_NAME プレースホルダはゾーン名で置き換えます。

gcloud beta compute zones describe ZONE_NAME --format="value(availableCpuPlatforms)"

たとえば、次のコマンドは、ゾーン us-central1-f で使用可能な CPU プラットフォームを返します。

gcloud beta compute zones describe us-central1-f --format="value(availableCpuPlatforms)"

新しいインスタンスを作成する

gcloud コマンドライン ツールを使用して、AMD Secure Encrypted Virtualization(SEV)CPU プラットフォームに新しい Confidential VM インスタンスを作成するには、gcloud beta コンポーネントを使用します。

新しいインスタンスを作成するには、instances create サブコマンドを使用します。このコマンドで --confidential-compute フラグを使用し、Confidential VM のオプトインを指定します。次のプレースホルダを対応する値に置き換えます。

  • INSTANCE_NAME: 新しいインスタンスに設定する名前。
  • MACHINE_TYPE: 使用する N2D マシンタイプ。
  • ZONE_NAME: インスタンスを作成するゾーンの名前。特定のゾーンで使用可能な CPU プラットフォームを確認する方法については、このトピックの前半で説明したゾーンごとの使用可能な CPU プラットフォームを一覧表示するをご覧ください。
  • IMAGE_NAME: 使用する Confidential VM サポートでサポートされるイメージの名前。
  • IMAGE_PROJECT: イメージを含むプロジェクト。
gcloud beta compute instances create INSTANCE_NAME \
  --machine-type "MACHINE_TYPE" --zone "ZONE_NAME" \
  --confidential-compute --maintenance-policy=TERMINATE \
  --image=IMAGE_NAME
  --image-project=IMAGE_PROJECT

次のコマンドの例では、us-central1-f ゾーンの AMD SEV CPU プラットフォームに example-instance という n2d-standard-16-type インスタンスを作成します。

gcloud beta compute instances create example-instance \
  --machine-type "n2d-standard-16" --zone "us-central1-f" \
  --confidential-compute --maintenance-policy=TERMINATE \
  --image="example-cvm-image"
  --image-project="public-image-project"

API

Compute Engine API を使用して、AMD Secure Encrypted Virtualization(SEV)CPU プラットフォームに新しい Confidential VM を作成するには、通常どおりインスタンス作成リクエストを送信します。ただし、enableConfidentialCompute は true に設定します。

必要に応じて、値を minCpuPlatform プロパティに設定し、最小 CPU プラットフォームを指定します。

以下は、Compute Engine API の Instances ベータ版 REST リソースに送信された JSON オブジェクトの例です。このリクエストを使用して VM でサポートされる新しい Confidential VM インスタンスを作成するには、対応するプレースホルダを置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • ZONE_NAME: インスタンスを作成するゾーン。
  • MACHINE_TYPE: 使用する N2D マシンタイプ。
  • INSTANCE_NAME: 新しいインスタンスに設定する名前。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE_NAME/instances

{
  "machineType": "zones/ZONE_NAME/machineTypes/MACHINE_TYPE",
  "name": "INSTANCE_NAME",
  "confidentialInstanceConfig": {
    "enableConfidentialCompute": true
  },
    "scheduling": {
    "automaticRestart": true,
    "nodeAffinities": [],
    "onHostMaintenance": "TERMINATE",
    "preemptible": false
  }
  ...
}

インスタンスへの接続

新しく作成したインスタンスに接続するには、次の操作を行います。

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

    [VM インスタンス] ページに移動

  2. 仮想マシン インスタンスのリストで、接続するインスタンスの行にある [SSH] をクリックします。

これで、Confidential VM インスタンスを操作するためのターミナル ウィンドウが表示されます。

AMD SEV が有効になっていることを確認する

新しく作成された Confidential VM インスタンスが AMD SEV を使用していることを確認するには、インスタンスに接続した後に次のコマンドを実行します。

dmesg | grep SEV | head

AMD SEV が有効になっている場合は、次のようなレスポンスが返されます。

[    0.290272] AMD Secure Encrypted Virtualization (SEV) active

Cloud Monitoring の整合性検証イベントを調べて Confidential VM インスタンスの状態に関する詳しい情報を取得する方法については、Cloud Monitoring を使用して Confidential VMs を検証するをご覧ください。

クリーンアップ

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

    [VM インスタンス] ページに移動

  2. 削除するインスタンスをクリックします。
  3. [削除] をクリックしてインスタンスを削除します。

次のステップ