Pode criar uma instância de Confidential VM 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, tem de configurar o seu ambiente da seguinte forma:
- 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.
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. - 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 predefinidas para o seu cliente que suportam a VM confidencial.
- Opcional: para usar os exemplos de API neste guia, configure a autenticação para os seus pedidos. Saiba mais acerca do OAuth 2.0.
Na Google Cloud consola, aceda à 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 uma zona suportadas.
Selecione uma das seguintes famílias de máquinas:
Utilização geral
Otimizado para computação
GPUs
Se selecionou a família GPUs, selecione o tipo de GPU adequado e o número de GPUs com base no tipo de máquina suportado.
Selecione um tipo de máquina suportado para a tecnologia de computação confidencial que quer usar.
No menu de navegação, clique em Segurança.
Na secção Serviço de VM confidencial, clique em Ativar.
Na caixa Selecione um tipo, selecione um dos seguintes tipos de tecnologia de computação confidencial:
AMD SEV
AMD SEV-SNP
Intel TDX
Na caixa de diálogo Ativar computação confidencial, reveja a lista de definições que são atualizadas quando ativa o serviço. Podem incluir os seguintes campos, se tiverem sido definidos com valores incompatíveis.
Série e Tipo de máquina. Para mais informações, consulte o artigo Tipos de máquinas, CPUs e zonas.
Região e zona. Para mais informações, consulte o artigo Tipos de máquinas, CPUs e zonas.
Imagem do disco de arranque. Para mais informações, consulte o artigo Sistemas operativos.
Manutenção no anfitrião. Para mais informações, consulte o artigo Defina a política de manutenção do anfitrião de uma VM.
Placa de rede. Para mais informações, consulte o artigo Usar a NIC virtual da Google.
Clique em Confirmar e, de seguida, em Criar.
INSTANCE_NAME
: o nome da nova instância de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY
: O tipo de tecnologia de computação confidencial a usar. Escolha um dos seguintes valores:SEV
SEV_SNP
TDX
MACHINE_TYPE_NAME
: o tipo de máquina virtual, por exemplo,n2d-standard-2
. Os tipos de máquinas válidos para instâncias de VMs confidenciais são determinados pela tecnologia de computação confidencial que escolheu. Consulte o artigo Tipos de máquinas, CPUs e zonas.CPU_PLATFORM
: escolha um dos seguintes valores:Para AMD SEV:
AMD Milan
(tipos de máquinas C2D ou N2D),AMD Genoa
(tipos de máquinas C3D) ouAMD Turin
(tipos de máquinas C4D).Para AMD SEV-SNP:
AMD Milan
(tipos de máquinas N2D).Para o Intel TDX: remova esta flag.
MAINTENANCE_POLICY
: para tipos de máquinas N2D que usam SEV, defina esta opção comoMIGRATE
para suporte de migração em direto. Para todos os outros tipos de máquinas, defina este valor comoTERMINATE
, uma vez que não suportam a migração em direto.ZONE_NAME
: a zona suportada por Confidential VMs na qual criar a instância.IMAGE_PROJECT
: O projeto que contém a imagem do sistema operativo suportado.IMAGE_FAMILY_NAME
: a família para a imagem do sistema operativo suportada pela VM confidencial. Quando não especifica adicionalmente--image
, é selecionada a versão mais recente da imagem.PROJECT_ID
: opcional. O ID do projeto no qual criar a VM.PROJECT_ID
: o ID do projeto no qual criar a VM.ZONE_NAME
: a zona suportada por Confidential VMs na qual criar a instância.INSTANCE_NAME
: o nome da nova instância de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY
: O tipo de tecnologia de computação confidencial a usar. Escolha um dos seguintes valores:SEV
SEV_SNP
TDX
MACHINE_TYPE_NAME
: o tipo de máquina virtual, por exemplo,n2d-standard-2
. Os tipos de máquinas válidos para instâncias de VMs confidenciais são determinados pela tecnologia de computação confidencial que escolheu. Consulte o artigo Tipos de máquinas, CPUs e zonas.CPU_PLATFORM
: escolha um dos seguintes valores:Para AMD SEV:
AMD Milan
(tipos de máquinas C2D ou N2D),AMD Genoa
(tipos de máquinas C3D) ouAMD Turin
(tipos de máquinas C4D).Para AMD SEV-SNP:
AMD Milan
(tipos de máquinas N2D).Para o Intel TDX: remova este par de chave-valor.
MAINTENANCE_POLICY
: para tipos de máquinas N2D que usam SEV, defina esta opção comoMIGRATE
para suporte de migração em direto. Para todos os outros tipos de máquinas, defina este valor comoTERMINATE
, uma vez que não suportam a migração em direto.IMAGE_PROJECT
: O projeto que contém a imagem do sistema operativo suportado.IMAGE_FAMILY_NAME
: a família para a imagem do sistema operativo suportada pela VM confidencial. Quando não especifica adicionalmente--image
, é selecionada a versão mais recente da imagem.
Crie uma instância
Consola
Para criar uma instância de VM confidencial com a Google Cloud consola, conclua os seguintes passos:
Depois de clicar em Criar, é aberta a página Instâncias de VMs. Nesta página,
pode ver o estado e os detalhes da sua nova instância. Quando é apresentado um ícone
Disponível na coluna Estado da sua instância de VM confidencial, significa que está pronta a ser usada.
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-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--project=PROJECT_ID
Indique os seguintes valores:
Exemplo
Execute o seguinte comando para criar uma instância n2d-standard-2
denominada my-instance
na zona us-central1-a
, usando 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-project=ubuntu-os-cloud \
--image-family=ubuntu-2404-lts-amd64
Resposta
Uma resposta a um pedido de criação tem um aspeto semelhante ao seguinte 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, tem de enviar um pedido 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
Corpo JSON do pedido:
{
"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"
}
]
}
Indique os seguintes valores:
Exemplo
Execute um dos seguintes comandos para criar uma instância n2d-standard-2
denominada my-instance
na zona us-central1-a
, no projeto my-project
, usando 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 '{ "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/instances
PowerShell (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
Resposta
Uma resposta a um pedido de criação tem um aspeto semelhante ao seguinte 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"
}
Pode verificar o progresso da criação da VM fazendo um pedido GET
para o
selfLink
:
GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/operations/OPERATION_ID
Ative uma largura de banda de rede mais elevada para tipos de máquinas específicos
Os tipos de máquinas maiores suportam redes de largura de banda elevada. Quando seleciona uma configuração de largura de banda de rede de nível 1, a largura de banda de transferência de dados aumenta dos 32 Gbps predefinidos para 50 a 200 Gbps, consoante o tipo de máquina. Para alcançar as velocidades de largura de banda de Nível 1 mais elevadas, a sua instância tem de estar a executar o controlador de rede virtual gVNIC. Saiba mais sobre como configurar uma VM com uma largura de banda mais elevada.
O que se segue?
Saiba como usar o Cloud Monitoring para validar as suas instâncias de VMs confidenciais.