Este documento fornece informações sobre como usar chaves Cloud KMS do Cloud Key Management Service criadas manualmente para criptografar discos e outros recursos relacionados ao armazenamento. As chaves gerenciadas no Cloud KMS são conhecidas como chaves de criptografia gerenciadas pelo cliente (CMEKs) .
Você pode usar CMEKs para criptografar recursos do Compute Engine, como discos , imagens de máquina , instantâneos e instantâneos padrão .
Para saber mais sobre como usar chaves de criptografia fornecidas pelo cliente (CSEKs) para criptografar discos e outros recursos de armazenamento, consulte Criptografando discos com chaves de criptografia fornecidas pelo cliente .
Saiba mais sobre criptografia de disco .
Antes de começar
- Entenda discos , imagens , snapshots de discos permanentes e instâncias de máquinas virtuais (VM) .
- Decida se você executará o Compute Engine e o Cloud KMS no mesmo Google Cloud projeto, ou em projetos diferentes. Para obter informações sobre IDs e números de projetos do Google Cloud, consulte Identificação de projetos .
- Para o projeto do Google Cloud que executa o Cloud KMS, faça o seguinte:
-
Enable the Cloud KMS API.
-
- + Se você deseja criar um novo volume balanceado de hiperdisco no modo confidencial, certifique-se de que seu caso de uso seja compatível revisando as limitações relevantes e as regiões suportadas .
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
KMS_PROJECT_ID
: o ID do seu projeto do Google Cloud que executa o Cloud KMS (mesmo que este seja o mesmo projeto que executa o Compute Engine) -
PROJECT_NUMBER
: o número do projeto (não o ID do projeto do Google Cloud) do seu projeto do Google Cloud que executa os recursos do Compute Engine Não é possível criptografar recursos existentes com CMEKs. Você só pode criptografar discos, imagens e snapshots com CMEKs ao criá-los.
Ao criar um disco a partir de um instantâneo criptografado por CMEK, você deve especificar a chave usada para criptografar o disco de origem. Você não precisa especificar a chave ao trabalhar com outros recursos criptografados por CMEK, como clones de disco e snapshots padrão.
( Visualização ) Ao criar um snapshot com escopo regional a partir de um disco criptografado com CMEK, você deverá criar o snapshot com uma CMEK regional que esteja no mesmo local do snapshot. Isso garante o isolamento regional do seu instantâneo e aumenta a confiabilidade do seu instantâneo.
Você não pode usar suas próprias chaves com discos SSD locais porque as chaves são gerenciadas por Google Cloud infraestrutura e excluído quando a VM for encerrada.
Os recursos regionais (discos) só podem ser criptografados por uma chave em um dos seguintes locais do Cloud KMS:
- Uma chave na mesma região do disco
- Uma chave multirregional na mesma localização geográfica do disco
- Uma chave na localização global.
Por exemplo, um disco na zona
us-west1-a
pode ser criptografado por uma chave na localização global, na regiãous-west1
ou na multirregiãous
.Recursos globais (como imagens e instantâneos) podem ser criptografados por chaves em qualquer local. Para obter mais informações, consulte Tipos de locais para Cloud KMS .
A criptografia de um disco, instantâneo ou imagem com uma chave é permanente. Não é possível remover a criptografia do recurso, alterar o tipo de criptografia ou alterar a chave usada. A única maneira de remover a criptografia ou alterar as chaves de criptografia é criar uma cópia do recurso enquanto especifica uma nova opção de criptografia. Por exemplo, para alterar um disco de chaves geradas pelo Google para CMEKs, siga estas etapas:
- Crie um instantâneo do disco .
- Crie um novo disco a partir do instantâneo . Ao criar o novo disco, selecione o tipo de criptografia desejado.
Para obter mais informações, consulte Alterar o tipo de um disco .
- No console do Google Cloud, acesse a página Discos .
- Clique em Criar disco e insira as propriedades do novo disco.
- Em Criptografia , selecione Chave gerenciada pelo cliente .
- No menu suspenso, selecione a chave do Cloud KMS que você deseja usar para criptografar este disco.
- Para criar o disco, clique em Criar .
-
DISK_NAME
: o nome do novo disco -
KMS_PROJECT_ID
: o projeto que possui a chave do Cloud KMS -
REGION
: a região onde a chave está localizada -
KEY_RING
: o nome do conjunto de chaves que inclui a chave -
KEY
: o nome da chave usada para criptografar o disco -
PROJECT_ID
: o ID do projeto do Google Cloud que executa o Compute Engine -
ZONE
: a zona para criar a VM -
MACHINE_TYPE
: o tipo de máquina, por exemploc3-standard-4
-
KMS_PROJECT_ID
: o projeto que possui a chave do Cloud KMS -
REGION
: a região onde o disco está localizado -
KEY_RING
: o nome do conjunto de chaves que inclui a chave -
KEY
: o nome da chave usada para criptografar o disco -
SOURCE_IMAGE
: a imagem a ser usada ao criar a VM, por exemplo,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
-
PROJECT_ID
: o ID do projeto do Google Cloud que executa o Compute Engine -
ZONE
: a zona para criar o disco -
SOURCE_IMAGE
: a imagem a ser usada ao criar o disco, por exemplo,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
-
DISK_NAME
: um nome para o novo disco -
KMS_PROJECT_ID
: o projeto que possui a chave do Cloud KMS -
REGION
: a região onde o disco está localizado -
KEY_RING
: o nome do conjunto de chaves que inclui a chave -
KEY
: o nome da chave usada para criptografar o disco -
DISK_TYPE
: o tipo de disco a ser criado - No console do Google Cloud, acesse a página Discos .
- Clique em Criar disco e insira as propriedades do novo disco.
- Na seção Configurações de disco , escolha Hiperdisco balanceado para o tipo de disco.
- Opcional. Altere as configurações padrão de tamanho do disco, IOPS provisionadas e taxa de transferência provisionada para o disco.
- Na seção Criptografia , selecione Chave do Cloud KMS .
- Na lista de chaves, selecione a chave do Cloud HSM que você deseja usar para criptografar este disco.
- Na seção Computação Confidencial , selecione Habilitar serviços de Computação Confidencial .
- Para criar o disco, clique em Criar .
-
DISK_NAME
: o nome do novo disco -
KMS_PROJECT_ID
: o projeto que possui a chave do Cloud HSM -
REGION
: a região onde a chave está localizada -
KEY_RING
: o nome do conjunto de chaves que inclui a chave -
KEY
: o nome da chave usada para criptografar o disco -
DISK_TYPE
: o tipo de disco a ser criado, por exemplo,hyperdisk-balanced
-
PROJECT_ID
: o ID do projeto do Google Cloud que executa o Compute Engine -
ZONE
: a zona para criar a VM -
MACHINE_TYPE
: o tipo de máquina, por exemplon2d-standard-4
-
KMS_PROJECT_ID
: o projeto que possui a chave do Cloud HSM -
REGION
: a região onde o disco está localizado -
KEY_RING
: o nome do conjunto de chaves que inclui a chave -
KEY
: o nome da chave usada para criptografar o disco -
SOURCE_IMAGE
: a imagem que suporta VM Confidencial a ser usada ao criar a VM, por exemplo,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
-
PROJECT_ID
: o ID do projeto do Google Cloud que executa o Compute Engine -
ZONE
: a zona para criar o disco -
SOURCE_IMAGE
: a imagem que suporta VM confidencial ao criar o disco, por exemplo,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
-
DISK_NAME
: um nome para o novo disco -
KMS_PROJECT_ID
: o projeto que possui a chave do Cloud HSM -
REGION
: a região onde o disco está localizado -
KEY_RING
: o nome do conjunto de chaves que inclui a chave -
KEY
: o nome da chave usada para criptografar o disco -
DISK_TYPE
: o tipo de disco a ser criado, por exemplo,hyperdisk-balanced
. - No console do Google Cloud, acesse a página Instantâneos .
- Clique em Criar instantâneo .
- Em Disco de origem , escolha o disco de origem do snapshot. O instantâneo é criptografado automaticamente com a mesma chave usada pelo disco de origem.
Para criar um snapshot no local padrão predefinido ou personalizado configurado nas configurações do snapshot, 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
Alternativamente, para substituir as configurações de snapshot e criar um snapshot em um local de armazenamento personalizado, inclua o sinalizador
--storage-location
para indicar onde armazenar seu snapshot.gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=SOURCE_DISK_NAME \ --snapshot-type=SNAPSHOT_TYPE \ --storage-location=STORAGE_LOCATION
( Visualização ) Para criar um instantâneo com escopo regional em uma região permitida, inclua o sinalizador
--region
para indicar onde criar seu 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
- SNAPSHOT_NAME : um nome para o instantâneo.
- SOURCE_ZONE : a zona do disco de origem.
- SOURCE_DISK_NAME : o nome do volume de disco a partir do qual você deseja criar um instantâneo.
- KMS_PROJECT_ID : o projeto que contém a chave de criptografia armazenada no Cloud Key Management Service.
- KEY_REGION : a região onde a chave do Cloud KMS está localizada.
- KEY_RING : o nome do keyring que contém a chave do Cloud KMS.
- SNAPSHOT_KEY : o nome da chave do Cloud KMS usada para criptografar o disco de origem.
- SNAPSHOT_TYPE : o tipo de instantâneo, STANDARD ou ARCHIVE . Se um tipo de instantâneo não for especificado, um instantâneo
STANDARD
será criado. STORAGE_LOCATION : opcional: para snapshots com escopo global, a multirregião do Cloud Storage ou a região do Cloud Storage onde você deseja armazenar o snapshot. Você pode especificar apenas um local de armazenamento.
Use o parâmetro
--storage-location
somente quando desejar substituir o local de armazenamento padrão predefinido ou customizado configurado nas configurações do snapshot.SNAPSHOT_SCOPE_REGION : Opcional: para capturas instantâneas com escopo regional, a região para a qual a captura instantânea tem escopo. Se você incluir esse parâmetro, não poderá usar o parâmetro
--storage-location
. O STORAGE_LOCATION é automaticamente definido como SNAPSHOT_SCOPE_REGION .Para criar um snapshot no local padrão predefinido ou personalizado configurado nas configurações do snapshot, faça uma solicitação
POST
para o 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" }
Alternativamente, para substituir as configurações de snapshot e criar um snapshot em um local de armazenamento personalizado, faça uma solicitação
POST
para o métodosnapshots.insert
e inclua a propriedadestorageLocations
em sua solicitação: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" ], }
( Visualização ) Para criar um snapshot com escopo regional em uma região permitida, faça uma solicitação
POST
para o 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", }, }
- DESTINATION_PROJECT_ID : o ID do projeto no qual você deseja criar o instantâneo.
- SNAPSHOT_NAME : um nome para o instantâneo.
- 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 você deseja criar um instantâneo.
- KMS_PROJECT_ID : o projeto que contém a chave de criptografia armazenada no Cloud Key Management Service.
- KEY_REGION : a região onde a chave do Cloud KMS está localizada.
- KEY_RING : o nome do keyring que contém a chave do Cloud KMS.
- SNAPSHOT_KEY : o nome da chave do Cloud KMS usada para criptografar o disco de origem.
- SNAPSHOT_TYPE : o tipo de instantâneo, STANDARD ou ARCHIVE . Se um tipo de instantâneo não for especificado, um instantâneo
STANDARD
será criado. STORAGE_LOCATION : opcional: para snapshots com escopo global, a multirregião do Cloud Storage ou a região do Cloud Storage onde você deseja armazenar o snapshot. Você pode especificar apenas um local de armazenamento.
Use o parâmetro
storageLocations
somente quando desejar substituir o local de armazenamento padrão predefinido ou customizado configurado nas configurações de snapshot.SNAPSHOT_SCOPE_REGION : Opcional: para capturas instantâneas com escopo regional, a região para a qual a captura instantânea tem escopo. Se você incluir esse parâmetro, não poderá usar o parâmetro
storageLocations
. O STORAGE_LOCATION é automaticamente definido como SNAPSHOT_SCOPE_REGION .- No console do Google Cloud, acesse a página Imagens .
- Clique em Criar imagem .
- Para Disco de origem , selecione o disco do qual deseja criar uma imagem.
- Para Criptografia , selecione Chave gerenciada pelo cliente .
- No menu suspenso, selecione a chave do Cloud KMS que você deseja usar para criptografar esta imagem.
- Continue com o processo de criação da imagem.
-
IMAGE_NAME
: o nome da imagem que você está criando -
SOURCE_DISK
: o nome do disco para criar um instantâneo -
KMS_PROJECT_ID
: o projeto que contém a chave do Cloud KMS -
REGION
: a região em que a chave do Cloud KMS está localizada -
KEY_RING
: o keyring que contém a chave do Cloud KMS -
KEY
: o nome da chave a ser usada para criptografar o novo disco -
PROJECT_ID
: o projeto para criar a imagem criptografada em -
IMAGE_NAME
: o nome da imagem que você está criando -
KMS_PROJECT_ID
: o projeto que contém a chave do Cloud KMS -
REGION
: a região em que a chave do Cloud KMS está localizada -
KEY_RING
: o keyring que contém a chave do Cloud KMS -
KEY
: o nome da chave que você usou para criptografar o disco de origem - No console do Google Cloud, acesse a página Discos .
- Clique em Criar disco e insira as propriedades do novo disco.
- Para Tipo de fonte , selecione o instantâneo ou imagem que deseja usar.
Opcional: Se desejar especificar uma nova chave de criptografia, para Criptografia , especifique o tipo de chave de criptografia a ser usada e, em seguida, forneça as informações da chave de criptografia.
Se você quiser remover a chave de criptografia gerenciada pelo cliente ou fornecida pelo cliente, em Criptografia , use o valor padrãoGoogle-managed encryption key .
Continue com o processo de criação do disco.
Para criar um novo disco a partir de um snapshot criptografado com escopo 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
( Visualização ) Para criar um novo disco a partir de um snapshot criptografado com escopo regional, use o comando
gcloud compute disks create
e especifique a região do snapshot 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
-
DISK_NAME
: o nome do novo disco SNAPSHOT_NAME
: o nome do instantâneo criptografadoPara usar uma imagem em vez de um instantâneo, 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 em que a chave do Cloud KMS está localizadaSOURCE_REGION
: a região cujo escopo o instantâneo de origem tem como escopoZONE
: A zona onde o novo disco residiráKEY_RING
: opcional: o keyring que contém a chave do Cloud KMSKEY
: opcional: o nome da chave do Cloud KMS a ser usada para criptografar o novo discoPara criptografar o novo disco, você pode fazer o seguinte:
- Para especificar uma nova chave de criptografia gerenciada pelo cliente, use o sinalizador
--kms-key
. - Para usar o padrão Google-owned and Google-managed encryption key, não inclua o sinalizador
--kms-key
.
- Para especificar uma nova chave de criptografia gerenciada pelo cliente, use o sinalizador
Para criar um novo disco a partir de um snapshot criptografado com escopo global, construa uma solicitação
POST
para o métodocompute.disks.insert
. Use a propriedadesourceSnapshot
para especificar a captura 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" } }
( Visualização ) Para criar um novo disco a partir de um snapshot criptografado com escopo regional, construa uma solicitação
POST
para o métodocompute.disks.insert
. Use a propriedadesourceSnapshot
para especificar a captura 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" } }
-
PROJECT_ID
: O projeto para criar o novo disco em -
ZONE
: A zona para criar o novo disco -
SOURCE_REGION
: a região cujo escopo o instantâneo de origem tem como escopo -
DISK_NAME
: O nome do novo disco -
DISK_TYPE
: o URL completo ou parcial do tipo de disco, por exemplo,PROJECT_ID /zones/ ZONE /diskTypes/pd-ssd
-
SNAPSHOT_PROJECT_ID
: o projeto que contém o instantâneo SNAPSHOT_NAME
: o nome do instantâneo criptografadoPara usar uma imagem em vez de um instantâneo, substitua
sourceSnapshot
porsourceImage
.KMS_PROJECT_ID
: opcional: o projeto que contém a chave do Cloud KMSREGION
: opcional: a região em que a chave do Cloud KMS está localizadaKEY_RING
: opcional: o keyring que contém a chave do Cloud KMSKEY
: opcional: o nome da chave do Cloud KMS a ser usada para criptografar o novo discoSe você incluir
diskEncryptionKey
, o disco será criptografado com a chave do Cloud KMS especificada. Se você não incluirdiskEncryptionKey
, o disco será criptografado usando um Google-owned and Google-managed encryption key.No console do Google Cloud, acesse a página Criar uma instância .
Especifique os detalhes da VM e, na seção Disco de inicialização , 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.
-
VM_NAME
: o nome da VM que você está criando -
DISK_NAME
: o nome do disco criptografado -
PROJECT_ID
: o projeto para criar a nova VM em -
ZONE
: a zona para criar a nova VM -
DISK_ALIAS
: um nome de dispositivo exclusivo para usar como alias de disco no diretório/dev/disk/by-id/google-*
da VM que executa um sistema operacional Linux. Esse nome pode ser usado para fazer referência ao disco para operações como montagem ou redimensionamento de dentro da instância. Se você não especificar um nome de dispositivo, a VM escolherá um nome de dispositivo padrão para aplicar a esse disco, no formatopersistent-disk-x
, ondex
é um número atribuído pelo Compute Engine. Este campo só é aplicável a volumes de disco permanente. -
DISK_NAME
: o nome do disco criptografado - Crie um instantâneo do disco criptografado .
- Use o novo snapshot criptografado para criar um novo disco permanente .
- Alterne sua chave do Cloud KMS .
- Crie um instantâneo do disco criptografado .
- Use o novo instantâneo para criar um novo disco com a chave girada na etapa anterior.
- Substitua o disco anexado à sua VM que usa a chave de criptografia antiga.
- Você não poderá inicializar uma VM se algum de seus discos anexados tiver chaves revogadas.
- Se um disco que usa a chave estiver anexado a uma VM em execução e você tiver ativado o encerramento da VM na revogação da chave para a VM, o Compute Engine encerrará a VM em até sete horas.
- Não é possível anexar um disco com uma chave revogada a uma VM ou criar um instantâneo a partir do disco.
- Não é possível usar imagens ou instantâneos criptografados com chaves revogadas para criar discos.
- Comece a criar uma VM que inclua um disco protegido por uma chave do Cloud KMS.
- Abra o menu Rede, discos, segurança, gerenciamento, locatário individual .
- Expanda a seção Gerenciamento .
- Em Política de revogação da chave de criptografia gerenciada pelo cliente (CMEK) , selecione Desligar .
- Comece a criar um novo modelo de instância que inclua um disco protegido por uma chave do Cloud KMS.
- Abra o menu Rede, discos, segurança, gerenciamento, locatário individual .
- Expanda a seção Gerenciamento .
- Em Política de revogação da chave de criptografia gerenciada pelo cliente (CMEK) , selecione Desligar .
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções obrigatórias
Para garantir que o agente de serviço do Compute Engine tenha as permissões necessárias para proteger recursos usando chaves do Cloud KMS, peça ao administrador para conceder ao agente de serviço do Compute Engine o papel do IAM CryptoKey Encrypter/Decrypter do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) no seu projeto. Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .Seu administrador também poderá conceder ao agente de serviço do Compute Engine as permissões necessárias por meio 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
Você pode usar a CLI do Google Cloud 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:
Especificações de criptografia
As chaves do Cloud KMS usadas para ajudar a proteger seus dados no Compute Engine são chaves AES-256. Essas chaves são chaves de criptografia de chave e criptografam as chaves de criptografia de dados que criptografam seus dados, não os dados em si.
Os dados nos discos são criptografados usando Google-owned and Google-managed encryption keys. Para especificações relacionadas à criptografia padrão em Google Cloud, consulte Criptografia padrão em repouso na documentação de segurança.
Com o modo Confidencial para Hyperdisk Balanced e Cloud HSM, a chave de criptografia de dados (DEK) possui propriedades de segurança adicionais com enclaves apoiados por hardware.
Limitações
Criação manual ou automatizada de chaves
Você pode criar chaves do Cloud KMS manualmente ou usar o Cloud KMS Autokey. O Autokey simplifica a criação e o gerenciamento de chaves do Cloud KMS, automatizando o provisionamento e a atribuição. Com o Autokey, você não precisa provisionar keyrings, chaves e contas de serviço antecipadamente. Em vez disso, eles são gerados sob demanda como parte da criação de recursos do Compute Engine. Para obter mais informações, consulte a visão geral do Autokey .
Criar chaveiro e chave manualmente
Para o projeto do Google Cloud que executa o Cloud KMS, crie um keyring e uma chave conforme descrito em Como criar keyrings e chaves .
Criptografe um novo disco permanente com CMEK
Você pode criptografar um novo disco permanente fornecendo uma chave durante a criação da VM ou do disco.
Console
gcloud
Crie um disco criptografado usando o comando
gcloud compute disks create
e especifique a chave usando a sinalização--kms-key
.gcloud compute disks create DISK_NAME \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Substitua o seguinte:
DESCANSAR
Construa uma solicitação
POST
para o métodoinstances.insert
. Para criptografar um disco, use a propriedadediskEncryptionKey
com a propriedadekmsKeyName
. Por exemplo, você pode criptografar um novo disco durante a criação da VM com sua chave do Cloud KMS usando o 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:
Da mesma forma, você pode usar o método
disks.insert
para criar um novo disco permanente independente e criptografá-lo com 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:
Crie um disco balanceado de hiperdisco no modo confidencial
Você pode criar um novo disco balanceado de hiperdisco no modo confidencial com o console do Google Cloud, Google Cloud CLI ou REST. Para criar um disco que não esteja no modo confidencial, siga as etapas em Criar um disco permanente a partir de um snapshot criptografado com CMEK .
Console
gcloud
Criptografe um novo disco com o modo confidencial para hiperdisco balanceado usando o comando
gcloud compute disks create
. Habilite o modo confidencial com o sinalizador--confidential-compute
e especifique a chave usando o sinalizador--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:
DESCANSAR
Construa uma solicitação
POST
para o métodoinstances.insert
. Para criptografar um disco com o modo Confidencial para Hyperdisk Balanced, use a propriedadediskEncryptionKey
com a propriedadekmsKeyName
e configure o sinalizadorenableConfidentialCompute
. Por exemplo, você pode criptografar um novo disco durante a criação da VM com sua chave do Cloud HSM usando o 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:
Da mesma forma, você pode usar o método
disks.insert
para criar um novo modo Confidencial para 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:
Crie um snapshot de um disco criptografado com CMEK
Para ajudar a proteger um snapshot criado a partir de um disco criptografado com CMEK, você deve usar a mesma chave de criptografia usada para criptografar o disco.
Não é possível criar um snapshot que use uma CMEK, a menos que o disco de origem também use CMEK. Além disso, não é possível converter discos ou snapshots criptografados por CMEK para usoGoogle Cloud criptografia padrão, a menos que você crie uma imagem de disco completamente nova e um novo disco permanente .
Os snapshots de discos criptografados com CMEK são incrementais .
Console
gcloud
Para criptografia gerenciada pelo cliente, a chave do Cloud KMS usada para criptografar o disco também é usada para criptografar o snapshot.
Você pode criar seu instantâneo na política de local de armazenamento definida pelas configurações de instantâneo ou usando um local de armazenamento alternativo de sua escolha. Para obter mais informações, consulte Escolha o local de armazenamento do snapshot .
Substitua o seguinte:
DESCANSAR
Você pode criar seu instantâneo na política de local de armazenamento definida pelas configurações de instantâneo ou usando um local de armazenamento alternativo de sua escolha. Para obter mais informações, consulte Escolha o local de armazenamento do snapshot .
Substitua o seguinte:
Criptografe uma imagem importada com CMEK
Você pode criptografar uma nova imagem ao importar uma imagem personalizada para o Compute Engine. Antes de importar uma imagem, você precisa criar e compactar um arquivo de imagem de disco e fazer upload desse arquivo compactado para o Cloud Storage .
Console
gcloud
Para importar e criptografar uma imagem, use o comando
gcloud compute images create
. Para criptografia gerenciada 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:
DESCANSAR
Para criptografar uma imagem importada, construa uma solicitação
POST
para o métodoimages.insert
. Especifique o URI para o arquivo compactado, inclua a propriedadeimageEncryptionKey
na solicitação de criação de imagem e especifique a chave para criptografar 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:
Crie um disco a partir de um snapshot criptografado com CMEK
Para criar um novo disco a partir de um instantâneo criptografado, faça o seguinte:
Console
gcloud
Substitua o seguinte:
DESCANSAR
Substitua o seguinte:
Anexando um disco de inicialização criptografado com CMEK a uma nova VM
Console
gcloud
Para anexar um disco criptografado ao criar uma nova VM, use o comando
gcloud compute instances create
. Use o sinalizador--disk
para especificar o disco de inicialização criptografado, conforme mostrado no exemplo a seguir:gcloud compute instances create VM_NAME \ ... --disk name=DISK_NAME,boot=yes
Substitua o seguinte:
DESCANSAR
Construa uma solicitação
POST
para o métodocompute.instances.insert
. Use a propriedadedisks
para especificar o disco de inicialização criptografado, conforme mostrado no exemplo a seguir: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:
Remova a chave de criptografia do Cloud KMS de um disco permanente
Você pode descriptografar o conteúdo de um disco criptografado e criar um novo disco que use Google Cloud criptografia padrão em vez disso. Por padrão, Google Cloudcriptografa todos os dados em repouso .
Depois de criar o novo disco permanente, ele usa Google Cloud criptografia padrão para ajudar a proteger o conteúdo do disco. Quaisquer instantâneos criados a partir desse disco também deverão usar criptografia padrão.
Alterne a chave de criptografia do Cloud KMS para um disco
Gire a chave usada para criptografar o disco criando um novo disco que use uma nova versão de chave do Cloud KMS. A rotação de chaves é uma prática recomendada para cumprir práticas de segurança padronizadas . Para girar suas chaves, faça o seguinte:
Ao criar o novo disco, ele usa a nova versão da chave para criptografia. Quaisquer instantâneos criados a partir desse disco usam a versão mais recente da chave primária.
Quando você alterna uma chave, os dados que foram criptografados com versões de chave anteriores não são criptografados novamente automaticamente. Para obter mais informações, consulte Criptografando novamente dados . A rotação de uma chave não desabilita ou destrói automaticamente uma versão de chave existente.
Desativar ou excluir uma CMEK
Se você não precisar mais de uma CMEK ou quiser impedir seu uso, exclua ou desative a chave. Excluir, desabilitar ou remover permissões do IAM em uma chave também é chamado de revogação da chave.
Impacto da revogação de chave em recursos criptografados
Quando você revoga uma chave de criptografia, os recursos protegidos pela chave são afetados da seguinte forma:
Se você desabilitar a chave, poderá reverter os efeitos anteriores ativando a chave. Se você excluir a chave, não poderá reverter os efeitos anteriores.
Configurar o encerramento da VM na revogação da chave do Cloud KMS
Você pode configurar sua VM para desligar automaticamente ao revogar a chave do Cloud KMS que está ajudando a proteger um disco anexado à VM. Você pode revogar uma chave desativando-a ou excluindo- a. Com esta configuração habilitada, a VM é desligada dentro de 7 horas após a revogação da chave.
Se você habilitar a chave novamente, poderá reiniciar a VM com o disco anexado que a chave ajuda a proteger. A VM não reinicia automaticamente depois que você habilita a chave.
Console
Para configurar uma VM para ser encerrada quando uma chave do Cloud KMS for revogada, faça o seguinte:
gcloud
Use o comando
gcloud compute instances create
para criar uma VM e inclua--key-revocation-action-type=stop
.gcloud compute instances create
VM_NAME
\ --imageIMAGE
\ --key-revocation-action-type=stopDESCANSAR
Use o método
instances.insert
para criar uma VM e defina a propriedade"keyRevocationActionType"
como"STOP"
. O exemplo a seguir 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" }Como alternativa, você pode configurar um modelo de instância para criar VMs que são encerradas na revogação de chave usando a Google Cloud CLI ou REST.
Console
Você pode usar um modelo de instância para criar VMs que são encerradas quando uma chave do Cloud KMS é revogada.
gcloud
Crie um modelo de instância usando 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=stopDESCANSAR
Construa uma solicitação POST para o método
instanceTemplates.insert
. No corpo da solicitação, você deve 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 criarão VMs que serão encerradas na revogação de chave terá a seguinte aparência: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 permanente criptografado 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-04-21 UTC.
-