新しい Compute Engine 仮想マシンの作成の一環として、Confidential VM インスタンスを作成できます。
始める前に
Confidential VM インスタンスを作成する前に、次のように環境を設定する必要があります。
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.- 省略可: このガイドの gcloud CLI の例を使用するには、次のようにします。
- gcloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
- Confidential VM をサポートする クライアントのデフォルトのリージョンとゾーンを設定します。
- 省略可: このガイドの API の例を使用する場合は、リクエストに対する認証の設定を行います。OAuth 2.0 の詳細をご覧ください。
インスタンスの作成
コンソール
Google Cloud コンソールで Confidential VM インスタンスを作成するには、次の操作を行います。
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
[インスタンスを作成] をクリックします。
[マシンの構成] ペインで、次の操作を行います。
サポートされているリージョンとゾーンを選択します。
次のいずれかのマシン ファミリーを選択します。
汎用
コンピューティング最適化
GPU
[GPU] ファミリーを選択した場合は、サポートされているマシンタイプに基づいて、適切な GPU タイプと GPU の数を選択します。
使用する Confidential Computing テクノロジーのサポートされているマシンタイプを選択します。
ナビゲーション メニューで [セキュリティ] をクリックします。
[Confidential VM サービス] セクションで、[有効にする] をクリックします。
[タイプを選択] ボックスで、次のいずれかの Confidential Computing テクノロジー タイプを選択します。
AMD SEV
AMD SEV-SNP
Intel TDX
次に、[Confidential Computing を有効にする] ダイアログで、サービスを有効にするときに更新される設定のリストを確認します。互換性のない値が設定されている場合は、次のフィールドを含めることができます。
シリーズとマシンタイプ。詳細については、マシンタイプ、CPU、ゾーンをご覧ください。
リージョンとゾーン。詳細については、マシンタイプ、CPU、ゾーンをご覧ください。
ブートディスク イメージ:。詳細については、オペレーティング システムをご覧ください。
ホスト メンテナンス時。詳細については、VM のホスト メンテナンス ポリシーを設定するをご覧ください。
ネットワーク インターフェース カード。詳細については、Google Virtual NIC の使用をご覧ください。
[確認]、[作成] の順にクリックします。
[作成] をクリックすると、[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-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--project=PROJECT_ID
次の値を指定します。
INSTANCE_NAME: 新しい VM インスタンスの名前。CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジーのタイプ。次のいずれかの値を選択します。SEVSEV_SNPTDX
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 マシンタイプと C3D マシンタイプの場合は、ライブ マイグレーションをサポートするためにMIGRATEに設定します。他のすべてのマシンタイプはライブ マイグレーションをサポートしていないため、この値をTERMINATEに設定します。ZONE_NAME: インスタンスを作成する Confidential VM がサポートされているゾーン。IMAGE_PROJECT: サポートされているオペレーティング システム イメージを含むプロジェクト。IMAGE_FAMILY_NAME: Confidential VM 対応のオペレーティング システム イメージのファミリー。--imageを指定しない場合は、最新のイメージ バージョンが選択されます。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-project=ubuntu-os-cloud \
--image-family=ubuntu-2404-lts-amd64
レスポンス
作成リクエストに対するレスポンスは次のようになります。
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",
"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"
}
]
}
次の値を指定します。
PROJECT_ID: VM を作成するプロジェクトの ID。ZONE_NAME: インスタンスを作成する Confidential VM がサポートされているゾーン。INSTANCE_NAME: 新しい VM インスタンスの名前。CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジーのタイプ。次のいずれかの値を選択します。SEVSEV_SNPTDX
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 ペアを削除します。
MAINTENANCE_POLICY: SEV を使用する N2D マシンタイプの場合は、ライブ マイグレーションをサポートするためにMIGRATEに設定します。他のすべてのマシンタイプでは、ライブ マイグレーションをサポートしていないため、この値をTERMINATEに設定します。IMAGE_PROJECT: サポートされているオペレーティング システム イメージを含むプロジェクト。IMAGE_FAMILY_NAME: Confidential VM 対応のオペレーティング システム イメージのファミリー。--imageを指定しない場合は、最新のイメージ バージョンが選択されます。
例
次のいずれかのコマンドを実行して、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 '{
"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/instancesPowerShell(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レスポンス
作成リクエストに対するレスポンスは次のようになります。
{
"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 の作成の進行状況を確認するには、selfLink に GET リクエストを送信します。
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 インスタンスを検証する方法を確認する。