Este documento fornece informações sobre como usar chaves do Cloud Key Management Service Cloud KMS criadas manualmente para encriptar discos e outros recursos relacionados com o armazenamento. As chaves geridas no Cloud KMS são conhecidas como chaves de encriptação geridas pelo cliente (CMEKs).
Pode usar CMEKs para encriptar recursos do Compute Engine, como discos, imagens de máquinas, instantâneos instantâneos e instantâneos padrão.
Para saber como usar chaves de encriptação fornecidas pelo cliente (CSEKs) para encriptar discos e outros recursos de armazenamento, consulte o artigo Encriptar discos com chaves de encriptação fornecidas pelo cliente.
Saiba mais acerca da encriptação de disco.
Antes de começar
- Compreenda os discos, as imagens, os instantâneos do disco persistente e as instâncias de máquinas virtuais (VM).
- Decida se vai executar o Compute Engine e o Cloud KMS no mesmo Google Cloud projeto ou em projetos diferentes. Para obter informações sobre os Google Cloud IDs e os números dos projetos, consulte Identificar projetos.
- Para o Google Cloud projeto que executa o Cloud KMS, faça o seguinte:
-
Enable the Cloud KMS 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.
-
- + Se quiser criar um novo volume equilibrado do Hyperdisk no modo confidencial, certifique-se de que o seu exemplo de utilização é suportado revendo as limitações e as regiões suportadas relevantes.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Funções necessárias
Para garantir que o agente de serviço do Compute Engine tem as autorizações necessárias para proteger os recursos através de chaves do Cloud KMS, peça ao seu administrador para conceder ao agente de serviço do Compute Engine a função da IAM Encriptador/desencriptador de CryptoKey do Cloud KMS (
Para mais informações sobre a concessão de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.roles/cloudkms.cryptoKeyEncrypterDecrypter
) no seu projeto.O seu administrador também pode conceder ao agente de serviço do Compute Engine as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
O agente de serviço do Compute Engine tem o seguinte formato:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
Pode usar a Google Cloud CLI para atribuir a função:
gcloud projects add-iam-policy-binding KMS_PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Substitua o seguinte:
KMS_PROJECT_ID
: o ID do seu projeto que executa o Cloud KMS (mesmo que seja o mesmo projeto que executa o Compute Engine)Google CloudPROJECT_NUMBER
: o número do projeto (não Google Cloud o ID do projeto) do seu Google Cloud projeto que executa os recursos do Compute Engine
Especificações de encriptação
As chaves do Cloud KMS usadas para ajudar a proteger os seus dados no Compute Engine são chaves AES-256. Estas chaves são chaves de encriptação de chaves e encriptam as chaves de encriptação de dados que encriptam os seus dados, e não os dados em si.
Os dados nos discos são encriptados através da Google-owned and Google-managed encryption keys. Para ver as especificações relacionadas com a encriptação predefinida no Google Cloud, consulte Encriptação predefinida em repouso na documentação de segurança.
Com o modo confidencial para o Hyperdisk Balanced e o Cloud HSM, a chave de encriptação de dados (DEK) tem propriedades de segurança adicionais com enclaves suportados por hardware.
Limitações
Não é possível encriptar recursos existentes com CMEKs. Só pode encriptar discos, imagens e capturas de ecrã com CMEKs quando os cria.
Quando cria um disco a partir de um instantâneo instantâneo encriptado com CMEK, tem de especificar a chave usada para encriptar o disco de origem. Não tem de especificar a chave quando trabalha com outros recursos encriptados com CMEK, como clones de discos e capturas de ecrã padrão.
(Pré-visualização) Quando cria um instantâneo com âmbito regional a partir de um disco encriptado com CMEK, tem de criar o instantâneo com uma CMEK regional que esteja na mesma localização que o instantâneo. Isto garante o isolamento regional da sua captura de ecrã e aumenta a fiabilidade da captura de ecrã.
Não pode usar as suas próprias chaves com discos SSD locais porque as chaves são geridas pela infraestrutura do Google Cloud e eliminadas quando a VM é terminada.
Os recursos regionais (discos) só podem ser encriptados por uma chave numa das seguintes localizações do Cloud KMS:
- Uma chave na mesma região que o disco
- Uma chave multirregional na mesma localização geográfica que o disco
- Uma chave na localização global.
Por exemplo, um disco na zona
us-west1-a
pode ser encriptado por uma chave na localização global, na regiãous-west1
ou na multirregiãous
.Os recursos globais (como imagens e capturas de ecrã) podem ser encriptados por chaves em qualquer localização. Para mais informações, consulte o artigo Tipos de localizações para o Cloud KMS.
A encriptação de um disco, uma captura instantânea ou uma imagem com uma chave é permanente. Não pode remover a encriptação do recurso, alterar o tipo de encriptação nem alterar a chave usada. A única forma de remover a encriptação ou alterar as chaves de encriptação é criar uma cópia do recurso enquanto especifica uma nova opção de encriptação. Por exemplo, para alterar um disco de modo a usar chaves geradas pela Google em vez de CMEKs, siga estes passos:
- Crie um instantâneo do disco.
- Crie um novo disco a partir da captura de ecrã. Quando criar o novo disco, selecione o tipo de encriptação pretendido.
Para mais informações, consulte o artigo Altere o tipo de um disco.
Criação de chaves manual ou automática
Pode criar chaves do Cloud KMS manualmente ou usar o Cloud KMS Autokey. A Autokey simplifica a criação e a gestão de chaves do Cloud KMS automatizando o aprovisionamento e a atribuição. Com a Autokey, não precisa de aprovisionar antecipadamente anéis de chaves, chaves e contas de serviço. Em alternativa, são gerados a pedido como parte da criação de recursos do Compute Engine. Para mais informações, consulte a vista geral do Autokey.
Crie manualmente um conjunto de chaves e uma chave
Para o Google Cloud projeto que executa o Cloud KMS, crie um conjunto de chaves e uma chave, conforme descrito em Criar conjuntos de chaves e chaves.
Encriptar um novo disco persistente com CMEK
Pode encriptar um novo disco persistente fornecendo uma chave durante a criação da VM ou do disco.
Consola
- Na Google Cloud consola, aceda à página Discos.
- Clique em Criar disco e introduza as propriedades do novo disco.
- Em Encriptação, selecione Chave gerida pelo cliente.
- No menu pendente, selecione a chave do Cloud KMS que quer usar para encriptar este disco.
- Para criar o disco, clique em Criar.
gcloud
Crie um disco encriptado com o comando
gcloud compute disks create
e especifique a chave com a flag--kms-key
.gcloud compute disks create DISK_NAME \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Substitua o seguinte:
DISK_NAME
: o nome do novo discoKMS_PROJECT_ID
: o projeto que detém a chave do Cloud KMSREGION
: a região onde a chave está localizadaKEY_RING
: o nome do conjunto de chaves que inclui a chaveKEY
: o nome da chave usada para encriptar o disco
REST
Construa um pedido
POST
para o métodoinstances.insert
. Para encriptar um disco, use a propriedadediskEncryptionKey
com a propriedadekmsKeyName
. Por exemplo, pode encriptar um novo disco durante a criação da VM com a sua chave do Cloud KMS através do seguinte:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "type": "PERSISTENT", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "initializeParams": { "sourceImage": "SOURCE_IMAGE" }, "boot": true } ], ... }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que executa o Compute EngineGoogle CloudZONE
: a zona na qual criar a VMMACHINE_TYPE
: o tipo de máquina, por exemplo,c3-standard-4
KMS_PROJECT_ID
: o projeto que detém a chave do Cloud KMSREGION
: a região onde o disco está localizadoKEY_RING
: o nome do conjunto de chaves que inclui a chaveKEY
: o nome da chave usada para encriptar o discoSOURCE_IMAGE
: a imagem a usar ao criar a VM, por exemplo,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
Da mesma forma, pode usar o método
disks.insert
para criar um novo disco persistente autónomo e encriptá-lo com a sua chave do Cloud KMS:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks?sourceImage=SOURCE_IMAGE { "name": "DISK_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE" }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que executa o Compute EngineGoogle CloudZONE
: a zona na qual criar o discoSOURCE_IMAGE
: a imagem a usar ao criar o disco, por exemplo,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
DISK_NAME
: um nome para o novo discoKMS_PROJECT_ID
: o projeto que detém a chave do Cloud KMSREGION
: a região onde o disco está localizadoKEY_RING
: o nome do conjunto de chaves que inclui a chaveKEY
: o nome da chave usada para encriptar o discoDISK_TYPE
: o tipo de disco a criar
Crie um disco Hyperdisk Balanced no modo confidencial
Pode criar um novo disco Hyperdisk Balanced no modo confidencial com a Google Cloud consola, a Google Cloud CLI ou a API REST. Para criar um disco que não esteja no modo confidencial, siga os passos em Crie um disco persistente a partir de uma captura de ecrã encriptada com CMEK.
Consola
- Na Google Cloud consola, aceda à página Discos.
- Clique em Criar disco e introduza as propriedades do novo disco.
- Na secção Definições do disco, escolha Hyperdisk Balanced para o tipo de disco.
- Opcional. Altere as definições predefinidas de tamanho, IOPS aprovisionados e débito aprovisionado do disco.
- Na secção Encriptação, selecione Chave do Cloud KMS.
- Na lista de chaves, selecione a chave do Cloud HSM que quer usar para encriptar este disco.
- Na secção Informática confidencial, selecione Ativar serviços de informática confidencial.
- Para criar o disco, clique em Criar.
gcloud
Encriptar um novo disco com o modo confidencial para o Hyperdisk Balanced através do comando
gcloud compute disks create
. Ative o modo confidencial com a flag--confidential-compute
e especifique a chave com a flag--kms-key
.gcloud compute disks create DISK_NAME \ --type=hyperdisk-balanced \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY \ --confidential-compute
Substitua o seguinte:
DISK_NAME
: o nome do novo discoKMS_PROJECT_ID
: o projeto que detém a chave do Cloud HSMREGION
: a região onde a chave está localizadaKEY_RING
: o nome do conjunto de chaves que inclui a chaveKEY
: o nome da chave usada para encriptar o disco
REST
Construa um pedido
POST
para o métodoinstances.insert
. Para encriptar um disco com o modo confidencial para o Hyperdisk Balanced, use a propriedadediskEncryptionKey
com a propriedadekmsKeyName
e defina a flagenableConfidentialCompute
. Por exemplo, pode encriptar um novo disco durante a criação da VM com a sua chave do Cloud HSM através do seguinte:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "type": "DISK_TYPE", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "initializeParams": { "sourceImage": "SOURCE_IMAGE", "enableConfidentialCompute": true }, "boot": true } ], "networkInterfaces": [ { "network": "global/networks/default" } ] }
Substitua o seguinte:
DISK_TYPE
: o tipo de disco a criar, por exemplo,hyperdisk-balanced
PROJECT_ID
: o ID do Google Cloud projeto que executa o Compute EngineZONE
: a zona na qual criar a VMMACHINE_TYPE
: o tipo de máquina, por exemplo,n2d-standard-4
KMS_PROJECT_ID
: o projeto que detém a chave do Cloud HSMREGION
: a região onde o disco está localizadoKEY_RING
: o nome do conjunto de chaves que inclui a chaveKEY
: o nome da chave usada para encriptar o discoSOURCE_IMAGE
: a imagem que suporta a VM confidencial a usar quando cria a VM, por exemplo,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
Da mesma forma, pode usar o método
disks.insert
para criar um novo modo confidencial para o Hyperdisk Balanced:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks?sourceImage=SOURCE_IMAGE { "name": "DISK_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE", "enableConfidentialCompute": true }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que executa o Compute EngineGoogle CloudZONE
: a zona na qual criar o discoSOURCE_IMAGE
: a imagem que suporta a Confidential VM quando cria o disco, por exemplo,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
DISK_NAME
: um nome para o novo discoKMS_PROJECT_ID
: o projeto que detém a chave do Cloud HSMREGION
: a região onde o disco está localizadoKEY_RING
: o nome do conjunto de chaves que inclui a chaveKEY
: o nome da chave usada para encriptar o discoDISK_TYPE
: o tipo de disco a criar, por exemplo,hyperdisk-balanced
.
Crie um instantâneo a partir de um disco encriptado com CMEK
Para ajudar a proteger um instantâneo que cria a partir de um disco encriptado com CMEK, tem de usar a mesma chave de encriptação que usou para encriptar o disco.
Não pode criar um instantâneo que use uma CMEK, a menos que o disco de origem também use uma CMEK. Além disso, não pode converter discos nem capturas de ecrã encriptados com CMEK para usar a Google Cloud encriptação predefinida, a menos que crie uma imagem de disco completamente nova e um novo disco persistente.
As capturas instantâneas de discos encriptados com CMEK são incrementais.
Consola
- Na Google Cloud consola, aceda à página Instantâneos.
- Clique em Criar instantâneo.
- Em Disco de origem, escolha o disco de origem para o instantâneo. A imagem instantânea é encriptada automaticamente com a mesma chave usada pelo disco de origem.
gcloud
Para a encriptação gerida pelo cliente, a chave do Cloud KMS que foi usada para encriptar o disco também é usada para encriptar a captura de ecrã.
Pode criar o instantâneo na política de localização de armazenamento definida pelas suas definições de instantâneo ou usando uma localização de armazenamento alternativa à sua escolha. Para mais informações, consulte o artigo Escolha a localização de armazenamento das capturas de ecrã.
Para criar uma captura de ecrã na localização predefinida ou personalizada configurada nas definições de captura de ecrã, use o comando
gcloud compute snapshots create
.gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=SOURCE_DISK_NAME \ --snapshot-type=SNAPSHOT_TYPE
-
Em alternativa, para substituir as definições de imagens instantâneas e criar uma imagem instantânea numa localização de armazenamento personalizada, inclua a flag
--storage-location
para indicar onde armazenar a imagem instantânea.gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=SOURCE_DISK_NAME \ --snapshot-type=SNAPSHOT_TYPE \ --storage-location=STORAGE_LOCATION
-
(Pré-visualização) Para criar um instantâneo com âmbito regional numa região permitida, inclua a flag
--region
para indicar onde criar o instantâneo.gcloud beta compute snapshots create SNAPSHOT_NAME \ --region=SNAPSHOT_SCOPE_REGION --source-disk=SOURCE_DISK_NAME \ --source-disk-zone=SOURCE_ZONE \ --snapshot-type=SNAPSHOT_TYPE \ --kms-key=projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY
Substitua o seguinte:
- SNAPSHOT_NAME: um nome para o resumo.
- SOURCE_ZONE: a zona do disco de origem.
- SOURCE_DISK_NAME: o nome do volume do disco a partir do qual quer criar uma captura instantânea.
- KMS_PROJECT_ID: o projeto que contém a chave de encriptação armazenada no Cloud Key Management Service.
- KEY_REGION: a região onde a chave do Cloud KMS está localizada.
- KEY_RING: o nome do conjunto de chaves que contém a chave do Cloud KMS.
- SNAPSHOT_KEY: o nome da chave do Cloud KMS que usou para encriptar o disco de origem.
- SNAPSHOT_TYPE: o tipo de instantâneo, STANDARD ou ARCHIVE.
Se não for especificado um tipo de instantâneo, é criado um instantâneo
STANDARD
. -
STORAGE_LOCATION: Opcional: para instantâneos com âmbito global, a multirregião do Cloud Storage ou a região do Cloud Storage onde quer armazenar o instantâneo. Só pode especificar uma localização de armazenamento.
Use o parâmetro
--storage-location
apenas quando quiser substituir a localização de armazenamento predefinida ou personalizada configurada nas definições de instantâneo. -
SNAPSHOT_SCOPE_REGION: opcional: para resumos com âmbito regional, a região à qual o resumo se destina. Se incluir este parâmetro, não pode usar o parâmetro
--storage-location
. O STORAGE_LOCATION é automaticamente definido como SNAPSHOT_SCOPE_REGION.
REST
Pode criar o instantâneo na política de localização de armazenamento definida pelas suas definições de instantâneo ou usando uma localização de armazenamento alternativa à sua escolha. Para mais informações, consulte o artigo Escolha a localização de armazenamento das capturas de ecrã.
-
Para criar um instantâneo na localização predefinida ou personalizada configurada nas definições de instantâneos, faça um pedido
POST
ao métodosnapshots.insert
:POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME", "snapshotEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY" }, "snapshotType": "SNAPSHOT_TYPE" }
-
Em alternativa, para substituir as definições de instantâneo e criar um instantâneo numa localização de armazenamento personalizada, faça um pedido ao método
POST
e inclua a propriedadesnapshots.insert
no seu pedido:storageLocations
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME", "snapshotEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY" }, "snapshotType": "SNAPSHOT_TYPE", "storageLocations": [ "STORAGE_LOCATION" ], }
-
(Pré-visualização) Para criar uma imagem instantânea com âmbito regional numa região permitida, faça um pedido
POST
ao métodosnapshots.insert
e defina a região de criação:POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/regions/SNAPSHOT_SCOPE_REGION/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME", "snapshotType": "SNAPSHOT_TYPE", "snapshotEncryptionKey": { "kmsKeyName":"projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY", }, }
Substitua o seguinte:
- DESTINATION_PROJECT_ID: o ID do projeto no qual quer criar a captura de ecrã.
- SNAPSHOT_NAME: um nome para o resumo.
- SOURCE_PROJECT_ID: o ID do projeto do disco de origem.
- SOURCE_ZONE: a zona do disco de origem.
- SOURCE_DISK_NAME: o nome do disco a partir do qual quer criar uma captura instantânea.
- KMS_PROJECT_ID: o projeto que contém a chave de encriptação armazenada no Cloud Key Management Service.
- KEY_REGION: a região onde a chave do Cloud KMS está localizada.
- KEY_RING: o nome do conjunto de chaves que contém a chave do Cloud KMS.
- SNAPSHOT_KEY: o nome da chave do Cloud KMS que usou para encriptar o disco de origem.
- SNAPSHOT_TYPE: o tipo de instantâneo, STANDARD ou ARCHIVE.
Se não for especificado um tipo de instantâneo, é criado um instantâneo
STANDARD
. -
STORAGE_LOCATION: Opcional: para instantâneos com âmbito global, a multirregião do Cloud Storage ou a região do Cloud Storage onde quer armazenar o instantâneo. Só pode especificar uma localização de armazenamento.
Use o parâmetro
storageLocations
apenas quando quiser substituir a localização de armazenamento predefinida ou personalizada configurada nas definições de instantâneo. SNAPSHOT_SCOPE_REGION: Opcional: para resumos com âmbito regional, a região à qual o resumo se destina. Se incluir este parâmetro, não pode usar o parâmetro
storageLocations
. O STORAGE_LOCATION é automaticamente definido como SNAPSHOT_SCOPE_REGION.
Encriptar uma imagem importada com CMEK
Pode encriptar uma nova imagem quando importa uma imagem personalizada para o Compute Engine. Antes de poder importar uma imagem, tem de criar e comprimir um ficheiro de imagem de disco e carregar esse ficheiro comprimido para o Cloud Storage.
Consola
- Na Google Cloud consola, aceda à página Imagens.
- Clique em Criar imagem.
- Em Disco de origem, selecione o disco do qual quer criar uma imagem.
- Para Encriptação, selecione Chave gerida pelo cliente.
- No menu pendente, selecione a chave do Cloud KMS que quer usar para encriptar esta imagem.
- Continue com o processo de criação de imagens.
gcloud
Para importar e encriptar uma imagem, use o comando
gcloud compute images create
. Para a encriptação gerida pelo cliente, especifique a chave do Cloud KMS para a imagem.gcloud compute images create IMAGE_NAME \ --source-disk=SOURCE_DISK \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Substitua o seguinte:
IMAGE_NAME
: o nome da imagem que está a criarSOURCE_DISK
: o nome do disco para criar uma captura instantânea deKMS_PROJECT_ID
: o projeto que contém a chave do Cloud KMSREGION
: a região onde a chave do Cloud KMS está localizadaKEY_RING
: o conjunto de chaves que contém a chave do Cloud KMSKEY
: o nome da chave a usar para encriptar o novo disco
REST
Para encriptar uma imagem importada, crie um pedido
POST
para o métodoimages.insert
. Especifique o URI para o ficheiro comprimido, adicione a propriedadeimageEncryptionKey
ao pedido de criação de imagens e especifique a chave para encriptar a imagem na propriedadekmsKeyName
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "rawDisk": { "source": "http://storage.googleapis.com/example-image/example-image.tar.gz" }, "name": "IMAGE_NAME", "sourceType": "RAW", "imageEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" } }
Substitua o seguinte:
PROJECT_ID
: o projeto para criar a imagem encriptada emIMAGE_NAME
: o nome da imagem que está a criarKMS_PROJECT_ID
: o projeto que contém a chave do Cloud KMSREGION
: a região onde a chave do Cloud KMS está localizadaKEY_RING
: o conjunto de chaves que contém a chave do Cloud KMSKEY
: o nome da chave que usou para encriptar o disco de origem
Crie um disco a partir de um instantâneo encriptado com CMEK
Para criar um novo disco a partir de uma imagem instantânea encriptada, faça o seguinte:
Consola
- Na Google Cloud consola, aceda à página Discos.
- Clique em Criar disco e introduza as propriedades do novo disco.
- Em Tipo de origem, selecione o instantâneo ou a imagem que quer usar.
Opcional: se quiser especificar uma nova chave de encriptação, em Encriptação, especifique o tipo de chave de encriptação a usar e, em seguida, faculte as informações da chave de encriptação.
Se quiser remover a chave de encriptação gerida ou fornecida pelo cliente, para Encriptação, use o valor predefinido Google-managed encryption key.
Continue com o processo de criação do disco.
gcloud
Para criar um novo disco a partir de uma imagem instantânea encriptada com âmbito global, use o comando
gcloud compute disks create
.gcloud compute disks create DISK_NAME \ --zone=ZONE \ --source-snapshot=SNAPSHOT_NAME \ --kms-key=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
(Pré-visualização) Para criar um novo disco a partir de um instantâneo encriptado com âmbito regional, use o comando
gcloud compute disks create
e especifique a região do instantâneo de origem.gcloud compute disks create DISK_NAME \ --zone=ZONE \ --source-snapshot=SNAPSHOT_NAME \ --source-snapshot-region=SOURCE_REGION \ --kms-key=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Substitua o seguinte:
DISK_NAME
: o nome do novo discoSNAPSHOT_NAME
: o nome do instantâneo encriptadoPara usar uma imagem em vez de uma captura instantânea, substitua
--source-snapshot SNAPSHOT_NAME
por--image IMAGE_NAME
.KMS_PROJECT_ID
: Opcional: o projeto que contém a chave do Cloud KMSREGION
: Opcional: a região onde a chave do Cloud KMS está localizadaSOURCE_REGION
: a região à qual o instantâneo de origem está associadoZONE
: a zona onde o novo disco vai residirKEY_RING
: opcional: o conjunto de chaves que contém a chave do Cloud KMSKEY
: Opcional: o nome da chave do Cloud KMS a usar para encriptar o novo discoPara encriptar o novo disco, pode fazer uma das seguintes ações:
- Para especificar uma nova chave de encriptação gerida pelo cliente, use a flag
--kms-key
. - Para usar a predefinição Google-owned and Google-managed encryption key, não inclua a flag
--kms-key
.
- Para especificar uma nova chave de encriptação gerida pelo cliente, use a flag
REST
Para criar um novo disco a partir de uma imagem instantânea encriptada com âmbito global, crie um pedido
POST
para o métodocompute.disks.insert
. Use a propriedadesourceSnapshot
para especificar a imagem instantânea.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "DISK_NAME", "sourceSnapshot": "projects/SNAPSHOT_PROJECT_ID/global/snapshots/SNAPSHOT_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" } }
(Pré-visualização) Para criar um novo disco a partir de uma imagem instantânea encriptada com âmbito regional, crie um pedido
POST
para o métodocompute.disks.insert
. Use a propriedadesourceSnapshot
para especificar a imagem instantânea.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "DISK_NAME", "sourceSnapshot": "projects/SNAPSHOT_PROJECT_ID/regions/SOURCE_REGION/snapshots/SNAPSHOT_NAME", "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE", "zone": "projects/PROJECT_ID/zones/ZONE" "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" } }
Substitua o seguinte:
PROJECT_ID
: o projeto no qual criar o novo discoZONE
: a zona na qual criar o novo discoSOURCE_REGION
: a região à qual o instantâneo de origem está associadoDISK_NAME
: o nome do novo discoDISK_TYPE
: O URL completo ou parcial do tipo do disco, por exemplo,PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
SNAPSHOT_PROJECT_ID
: O projeto que contém a imagem instantâneaSNAPSHOT_NAME
: o nome do instantâneo encriptadoPara usar uma imagem em vez de uma captura de ecrã, substitua
sourceSnapshot
porsourceImage
.KMS_PROJECT_ID
: Opcional: o projeto que contém a chave do Cloud KMSREGION
: Opcional: a região onde a chave do Cloud KMS está localizadaKEY_RING
: opcional: o conjunto de chaves que contém a chave do Cloud KMSKEY
: Opcional: o nome da chave do Cloud KMS a usar para encriptar o novo discoSe incluir
diskEncryptionKey
, o disco é encriptado com a chave do Cloud KMS especificada. Se não incluirdiskEncryptionKey
, o disco é encriptado com um Google-owned and Google-managed encryption key.
Anexar um disco de arranque encriptado com CMEK a uma nova VM
Consola
Na Google Cloud consola, aceda à página Criar uma instância.
Especifique os detalhes da VM e, na secção Disco de arranque, clique em Alterar. Em seguida, faça o seguinte:
- Clique em Discos existentes.
- Na lista Disco, selecione um disco existente para anexar à VM.
- Clique em Selecionar.
Continue com o processo de criação da VM.
gcloud
Para anexar um disco encriptado quando cria uma nova VM, use o comando
gcloud compute instances create
. Use a flag--disk
para especificar o disco de arranque encriptado, conforme mostrado no exemplo seguinte:gcloud compute instances create VM_NAME \ ... --disk name=DISK_NAME,boot=yes
Substitua o seguinte:
VM_NAME
: o nome da VM que está a criarDISK_NAME
: o nome do disco encriptado
REST
Construa um pedido
POST
para o métodocompute.instances.insert
. Use a propriedadedisks
para especificar o disco de arranque encriptado, conforme mostrado no exemplo seguinte:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "disks": [ { "deviceName": "DISK_ALIAS", "source": "projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME" } ] }
Substitua o seguinte:
PROJECT_ID
: o projeto no qual criar a nova VMZONE
: a zona na qual criar a nova VMDISK_ALIAS
: um nome de dispositivo exclusivo a usar como o alias do disco no diretório/dev/disk/by-id/google-*
da VM que executa um sistema operativo Linux. Este nome pode ser usado para fazer referência ao disco para operações como a montagem ou a alteração do tamanho a partir da instância. Se não especificar um nome de dispositivo, a VM escolhe um nome de dispositivo predefinido para aplicar a este disco, no formatopersistent-disk-x
, em quex
é um número atribuído pelo Compute Engine. Este campo só é aplicável a volumes de disco persistente.DISK_NAME
: o nome do disco encriptado
Remova a chave de encriptação do Cloud KMS de um disco persistente
Pode desencriptar o conteúdo de um disco encriptado e criar um novo disco que use a encriptação predefinida. Google Cloud Por predefinição,o Google Cloud encripta todos os dados em repouso.
- Crie um instantâneo do disco encriptado.
- Use a nova captura de ecrã encriptada para criar um novo disco persistente.
Depois de criar o novo disco persistente, este usa a encriptação Google Cloud predefinida para ajudar a proteger o conteúdo do disco. Todas as capturas de ecrã que criar a partir desse disco também têm de usar a encriptação predefinida.
Alterne a chave de encriptação do Cloud KMS para um disco
Rode a chave usada para encriptar o disco criando um novo disco que use uma nova versão da chave do Cloud KMS. Alternar chaves é uma prática recomendada para agir em conformidade com as práticas de segurança padronizadas. Para alternar as chaves, faça o seguinte:
- Alterne a sua chave do Cloud KMS.
- Crie um instantâneo do disco encriptado.
- Use o novo resumo para criar um novo disco com a chave rodada no passo anterior.
- Substitua o disco associado à sua VM que usa a chave de encriptação antiga.
Quando cria o novo disco, este usa a nova versão da chave para a encriptação. Todas as imagens instantâneas que criar a partir desse disco usam a versão mais recente da chave principal.
Quando alterna uma chave, os dados que foram encriptados com versões anteriores da chave não são reenviados automaticamente. Para mais informações, consulte o artigo Voltar a encriptar dados. A rotação de uma chave não desativa nem destrói automaticamente uma versão de chave existente.
Desative ou elimine uma CMEK
Se já não precisar de uma CMEK ou quiser impedir a sua utilização, elimine ou desative a chave. A eliminação, a desativação ou a remoção de autorizações de IAM numa chave também é denominada revogação da chave.
Impacto da revogação de chaves nos recursos encriptados
Quando revoga uma chave de encriptação, os recursos que a chave protege são afetados da seguinte forma:
- Não pode arrancar uma VM se algum dos respetivos discos anexados tiver chaves revogadas.
- Se um disco que usa a chave estiver associado a uma VM em execução e tiver ativado a opção Desligamento da VM na revogação da chave para a VM, o Compute Engine desliga a VM no prazo de 7 horas.
- Não pode anexar um disco com uma chave revogada a uma VM nem criar uma captura de ecrã a partir do disco.
- Não pode usar imagens nem capturas de ecrã encriptadas com chaves revogadas para criar discos.
Se desativar a chave, pode reverter os efeitos anteriores ativando a chave. Se eliminar a chave, não pode reverter os efeitos anteriores.
Configure o encerramento da VM na revogação da chave do Cloud KMS
Pode configurar a VM para que seja encerrada automaticamente quando revogar a chave do Cloud KMS que está a ajudar a proteger um disco anexado à VM. Pode revogar uma chave desativando-a ou eliminando-a. Com esta definição ativada, a VM é encerrada no prazo de 7 horas após a revogação da chave.
Se ativar novamente a chave, pode reiniciar a VM com o disco anexado que a chave ajuda a proteger. A VM não é reiniciada automaticamente depois de ativar a chave.
Consola
Para configurar uma VM para ser encerrada quando uma chave do Cloud KMS é revogada, faça o seguinte:
- Comece a criar uma VM que inclua um disco protegido por uma chave do Cloud KMS.
- Abra o menu Trabalhar em rede, discos, segurança, gestão, arrendamento único.
- Expanda a secção Gestão.
- Em Política de revogação da chave de encriptação gerida pelo cliente (CMEK), selecione Encerrar.
gcloud
Use o
gcloud compute instances create
comando para criar uma VM e inclua--key-revocation-action-type=stop
.gcloud compute instances create
VM_NAME
\ --imageIMAGE
\ --key-revocation-action-type=stopREST
Use o método
instances.insert
para criar uma VM e defina a propriedade"keyRevocationActionType"
como"STOP"
. O exemplo seguinte cria a VM a partir de uma imagem pública.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "
VM_NAME
", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "keyRevocationActionType": "STOP" }Em alternativa, pode configurar um modelo de instância para criar VMs que são encerradas na revogação de chaves através da Google Cloud CLI ou REST.
Consola
Pode usar um modelo de instância para criar VMs que são encerradas quando uma chave do Cloud KMS é revogada.
- Comece a criar um novo modelo de instância que inclua um disco protegido por uma chave do Cloud KMS.
- Abra o menu Trabalhar em rede, discos, segurança, gestão, arrendamento único.
- Expanda a secção Gestão.
- Em Política de revogação da chave de encriptação gerida pelo cliente (CMEK), selecione Desativar.
gcloud
Crie um modelo de instância com o comando
gcloud compute instance-templates create
e inclua--key-revocation-action-type=stop
.gcloud compute instance-templates create
INSTANCE_TEMPLATE_NAME
\ --key-revocation-action-type=stopREST
Construa um pedido POST para o método
instanceTemplates.insert
. No corpo do pedido, tem de definir explicitamente todos os campos de configuração obrigatórios. Se quiser que as VMs criadas a partir deste modelo sejam encerradas na revogação da chave, especifique"keyRevocationActionType":"STOP"
. Por exemplo, um modelo de instância com os campos mínimos obrigatórios que cria VMs que são encerradas na revogação de chaves tem o seguinte aspeto:POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instanceTemplates { "name": "example-template", "properties": { "machineType": "e2-standard-4", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/family/debian-11" } } ], "keyRevocationActionType": "STOP" } }Depois de criar uma VM configurada para ser encerrada na revogação do Cloud KMS, crie e anexe um disco persistente encriptado com uma chave do Cloud KMS.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-