É possível criar uma instância de VM confidencial como parte da criação de uma nova máquina virtual do Compute Engine.
Antes de começar
Antes de criar uma instância de VM confidencial, você precisa configurar o ambiente da seguinte maneira:
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- Opcional: para usar os exemplos da CLI gcloud neste guia, siga estas etapas:
- Instale ou atualize para a versão mais recente da CLI gcloud.
- Defina uma região e uma zona padrão para seu cliente que ofereça suporte a VMs confidenciais.
- Opcional: para usar os exemplos da API deste guia, configure a autenticação para suas solicitações. Saiba mais sobre o OAuth 2.0 (em inglês).
Criar uma instância
Console
Para criar uma VM confidencial AMD SEV com o console do Google Cloud, siga estas etapas.
No console do Google Cloud, acesse a página Instâncias de VMs.
Clique em Criar instância.
Na seção Serviço de VM confidencial, clique em Ativar.
Na caixa de diálogo Ativar Computação confidencial, revise a lista de configurações que são atualizadas quando você ativa o serviço. Ela pode incluir os seguintes campos, se tiverem sido definidos como valores incompatíveis.
A série e o tipo de máquina. Para mais informações, consulte Tipos de máquinas, CPUs e zonas.
Região e zona. Para mais informações, consulte Tipos de máquinas, CPUs e zonas.
Imagem do disco de inicialização:. Para mais informações, consulte Sistemas operacionais.
Na manutenção do host. Para mais informações, consulte Definir a política de manutenção do host de uma VM.
Placa de rede Para mais informações, consulte Como usar a NIC virtual do Google.
Clique em Ativar.
Na seção Configuração da máquina, expanda Configurações avançadas.
Para a plataforma de CPU, escolha AMD Milan ou mais recente.
Verifique se essas configurações estão corretas e clique em Criar.
Depois de clicar em Criar, a página Instâncias de VM será aberta. Nessa página,
é possível conferir o status e os detalhes da nova instância. Quando um ícone
Disponível aparecer na coluna Status da instância de VM confidencial, ela estará pronta para uso.
gcloud
Para criar uma instância de VM confidencial com a CLI gcloud, use o
subcomando instances create
com a flag --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
Forneça os valores a seguir:
INSTANCE_NAME
: o nome da nova instância de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY
: o tipo de tecnologia de computação confidencial a ser usado. Escolha um dos seguintes valores:SEV
SEV_SNP
TDX
MACHINE_TYPE_NAME
: o tipo de máquina da VM, por exemplo,n2d-standard-2
. Os tipos de máquina válidos para instâncias de VM confidencial são determinados pela tecnologia de computação confidencial escolhida. Consulte Tipos de máquina, CPUs e zonas.CPU_PLATFORM
: escolha um dos seguintes valores:Para AMD SEV:
AMD Milan
(tipos de máquina C2D ou N2D) ouAMD Genoa
(tipos de máquina C3D).Para AMD SEV-SNP:
AMD Milan
(tipos de máquina N2D).Para Intel TDX: remova esta flag.
MAINTENANCE_POLICY
: para tipos de máquina N2D que usam SEV, defina comoMIGRATE
para oferecer suporte à migração em tempo real. Para todos os outros tipos de máquina, defina esse valor comoTERMINATE
, já que eles não oferecem suporte à migração em tempo real.ZONE_NAME
: a zona compatível com VM confidencial em que a instância será criada.IMAGE_FAMILY_NAME
: a família da imagem do sistema operacional compatível com a VM confidencial. Quando você não especifica--image
, a versão mais recente da imagem é selecionada.IMAGE_PROJECT
: o projeto que contém a imagem do sistema operacional compatível.PROJECT_ID
: opcional. O ID do projeto em que a VM será criada.
Exemplo
Execute o comando abaixo para criar uma instância n2d-standard-2
chamada
my-instance
na zona us-central1-a
, usando o 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
Resposta
Uma resposta a uma solicitação de criação é semelhante a este exemplo:
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
Para criar uma instância de VM confidencial, envie uma solicitação POST com o conteúdo do corpo adequado.
O método HTTP e o URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances
Solicitar corpo 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
}
}
Forneça os valores a seguir:
PROJECT_ID
: o ID do projeto em que a VM será criada.ZONE_NAME
: a zona compatível com VM confidencial em que a instância será criada.INSTANCE_NAME
: o nome da nova instância de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY
: o tipo de tecnologia de computação confidencial a ser usado. Escolha um dos seguintes valores:SEV
SEV_SNP
TDX
MACHINE_TYPE_NAME
: o tipo de máquina da VM, por exemplo,n2d-standard-2
. Os tipos de máquina válidos para instâncias de VM confidencial são determinados pela tecnologia de computação confidencial escolhida. Consulte Tipos de máquina, CPUs e zonas.CPU_PLATFORM
: escolha um dos seguintes valores:Para AMD SEV:
AMD Milan
(tipos de máquina C2D ou N2D) ouAMD Genoa
(tipos de máquina C3D).Para AMD SEV-SNP:
AMD Milan
(tipos de máquina N2D).Para Intel TDX: remova este par de chave-valor.
IMAGE_PROJECT
: o projeto que contém a imagem do sistema operacional compatível.IMAGE_FAMILY_NAME
: a família da imagem do sistema operacional compatível com a VM confidencial. Quando você não especifica--image
, a versão mais recente da imagem é selecionada.MAINTENANCE_POLICY
: para tipos de máquina N2D que usam SEV, defina comoMIGRATE
para oferecer suporte à migração em tempo real. Para todos os outros tipos de máquina, defina esse valor comoTERMINATE
, porque eles não oferecem suporte à migração em tempo real.
Exemplo
Execute um dos comandos abaixo para criar uma instância n2d-standard-2
chamada my-instance
na zona us-central1-a
, no projeto my-project
,
usando o 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
Resposta
Uma resposta a uma solicitação de criação é semelhante a este exemplo:
{
"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"
}
Para verificar o progresso da criação da VM, faça uma solicitação GET
para o
selfLink
:
GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/operations/OPERATION_ID
Ativar uma largura de banda de rede maior para tipos de máquina C2D
Os três maiores formatos de VM do Compute Engine C2D (32, 56 e 112) são compatíveis com redes de alta largura de banda. Quando você seleciona uma configuração de largura de banda de rede Nível 1, a largura de banda de transferência de dados aumenta do padrão 32 Gbps para 50 ou 100 Gbps. Para alcançar as maiores velocidades de largura de banda do Nível 1, a instância precisa executar o driver de rede virtual gVNIC. Saiba mais sobre como configurar uma VM com maior largura de banda.
A seguir
Saiba como usar o Cloud Monitoring para validar suas instâncias de VM confidenciais.