É 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, configure seu 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:
- 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 seja compatível com a VM confidencial.
- 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).
No Google Cloud console, acesse a página Instâncias de VM:
Clique em Criar instância.
No painel Configuração da máquina, faça o seguinte:
Selecione uma região e zona compatíveis.
Selecione uma das seguintes famílias de máquinas:
Uso geral
Otimizado para computação
Selecione um tipo de máquina compatível para a tecnologia de computação confidencial que você quer usar.
No menu de navegação, clique em Segurança.
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 podem 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.
Manutenção no 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 e em Criar.
INSTANCE_NAME
: o nome da nova instância de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY
: o tipo de tecnologia de computação confidencial a ser usada. 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áquinas, CPUs e zonas.CPU_PLATFORM
: escolha um dos seguintes valores:Para SEV AMD:
AMD Milan
(tipos de máquina C2D ou N2D),AMD Genoa
(tipos de máquina C3D) ouAMD Turin
(tipos de máquina C4D).Para AMD SEV-SNP:
AMD Milan
(tipos de máquina N2D).Para Intel TDX: remova essa flag.
MAINTENANCE_POLICY
: para tipos de máquina N2D que usam SEV, defina comoMIGRATE
para oferecer suporte à migração dinâmica. Para todos os outros tipos de máquina, defina esse valor comoTERMINATE
, já que eles não são compatíveis com a 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 VMs confidenciais. 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.PROJECT_ID
: 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 usada. 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áquinas, CPUs e zonas.CPU_PLATFORM
: escolha um dos seguintes valores:Para SEV AMD:
AMD Milan
(tipos de máquina C2D ou N2D),AMD Genoa
(tipos de máquina C3D) ouAMD Turin
(tipos de máquina C4D).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 VMs confidenciais. 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 dinâmica. Para todos os outros tipos de máquina, defina esse valor comoTERMINATE
, já que eles não são compatíveis com a migração em tempo real.
Criar uma instância
Console
Para criar uma VM confidencial do AMD SEV com o console Google Cloud , conclua as etapas a seguir.
Depois de clicar em Criar, a página Instâncias de VM será aberta. Nessa página, é possível visualizar 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:
Exemplo
Execute o comando a seguir para criar uma instância n2d-standard-2
chamada
my-instance
na zona us-central1-a
usando o SEV-SNP da AMD:
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 ao exemplo a seguir:
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 apropriado.
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:
Exemplo
Execute um dos comandos a seguir para criar uma instância n2d-standard-2
chamada my-instance
na zona us-central1-a
, no projeto my-project
,
usando a SEV-SNP da AMD:
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 ao exemplo a seguir:
{
"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": "[email protected]",
"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áquinas específicos
Tipos de máquinas maiores são compatíveis com redes de alta largura de banda. Quando você seleciona uma configuração de largura de banda de rede Tier_1, a largura de banda de saída de dados aumenta do padrão de 32 Gbps para 50 a 200 Gbps, dependendo do tipo de máquina. Para alcançar as maiores velocidades de largura de banda Tier_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 VMs confidenciais.