Nesta página, mostramos como restaurar uma instância do Compute Engine de um backup vault no console do Google Cloud , que pode ter como destino uma nova instância do Compute Engine ou um novo Persistent Disk. Para restaurar seletivamente um disco individual para um novo Persistent Disk, consulte Realizar uma restauração seletiva de discos de um backup de instância do Compute Engine.
Funções exigidas
Para receber as permissões necessárias para restaurar uma instância do Compute Engine de um backup vault, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto, no projeto de destino, no agente de serviço de Backup e DR e no projeto host da VPC:
-
Restaurar uma instância do Compute Engine:
- Usuário de Backup e DR (
roles/backupdr.restoreUser) - Leitor do Compute (
roles/compute.viewer)
- Usuário de Backup e DR (
-
Conceda papéis ao agente de serviço:
Operador do Compute Engine de backup e DR (
roles/backupdr.computeEngineOperator) -
Usar uma VPC compartilhada (opcional):
Usuário da rede do Compute (
roles/compute.networkUser) -
Realizar uma operação de restauração seletiva de discos em um backup de instância do Compute Engine:
Operador de disco de backup e DR (
roles/backupdr.diskOperator) -
Usar uma conta de serviço entre projetos (opcional):
Usuário da conta de serviço (
roles/iam.serviceAccountUser)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para restaurar uma instância do Compute Engine de um backup vault. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para restaurar uma instância do Compute Engine de um backup vault:
-
Restaurar uma instância do Compute Engine:
-
backupdr.bvbackups.restore -
backupdr.compute.restoreFromBackupVault -
backupdr.backupVaults.get -
backupdr.backupVaults.list -
backupdr.bvbackups.list -
backupdr.bvdataSources.get -
backupdr.bvdataSources.list -
backupdr.bvbackups.get
-
-
Restaurar uma instância do Compute Engine usando o console do Google Cloud (permissões adicionais):
-
compute.acceleratorTypes.list -
compute.disks.list -
compute.machineTypes.list -
compute.projects.get -
compute.regions.list -
compute.zones.list
-
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
restaurar uma instância do Compute Engine
Siga estas instruções para restaurar uma instância do Compute Engine.
Console
No console do Google Cloud , acesse a página Backups protegidos.
Todas as instâncias do Compute Engine com backups protegidos estão listadas aqui.
Clique no ícone de ação para selecionar a ação Restaurar. A página Restaurar é exibida, onde você seleciona as seguintes opções de restauração:
- Selecione um Nome do recurso.
- Selecione um Horário de criação do backup.
- Selecione o Escopo de restauração, que pode ser a instância inteira do Compute Engine ou um disco individual. Para restaurar um disco individual, consulte Realizar uma restauração seletiva de discos de um backup de instância do Compute Engine.
- Selecione o Nome do projeto em que você quer restaurar a VM.
Clique em Proceed.
A página Criar uma nova instância do Compute Engine com base em um backup é exibida, em que as propriedades da instância do Compute Engine são pré-preenchidas com base nas propriedades da instância de origem do Compute Engine. É possível modificar as propriedades para criar uma nova instância do Compute Engine, por exemplo, alterar a seleção de Região ou Tipo de máquina.
Clique em Criar para criar uma VM com base no backup selecionado.
gcloud
Acesse a conta de serviço do backup vault usando o comando
gcloud backup-dr backup-vaults describe:gcloud backup-dr backup-vaults describe BACKUP_VAULT_NAME / --location=REGION_NAME
Substitua:
BACKUP_VAULT_NAME: o nome do backup vault de onde você quer restaurar os dados.
REGION_NAME: a região do backup vault.
Antes de restaurar uma instância do Compute Engine, use os comandos a seguir para receber o ID da fonte de dados e o ID do backup necessário:
Encontre o ID da fonte de dados usando o comando
gcloud backup-dr data-sources list:gcloud backup-dr data-sources list \ --project=PROJECT_NAME \ --location=REGION_NAME \ --backup-vault=BACKUP_VAULT_NAME \ "--filter=dataSourceGcpResource.computeInstanceDatasourceProperties.name:(DATA_SOURCE)" \ "--format=get(name)"
Liste os backups atuais da fonte de dados para encontrar o
BACKUP_IDcorreto usando o comandogcloud backup-dr backups list:gcloud backup-dr backups list \ --location=REGION_NAME \ --backup-vault=BACKUP_VAULT_NAME \ --data-source=DATA_SOURCE \ "--format=yaml(backupType,computeInstanceBackupProperties.sourceInstance,consistencyTime,enforcedRetentionEndTime,expireTime,name)"
Para restaurar uma instância do Compute Engine, use os seguintes comandos:
Restaure uma instância do Compute Engine no mesmo projeto que o projeto de carga de trabalho com o ID de backup usando o comando
gcloud backup-dr backups restore compute:gcloud backup-dr backups restore compute test-backup-id \ --project=PROJECT_NAME --location=REGION_NAME \ --backup-vault=BACKUP_VAULT_NAME --data-source=DATA_SOURCE\ --name=NAME --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECT
Restaure uma instância do Compute Engine no mesmo projeto que o projeto de carga de trabalho com o URL de recurso completo do backup usando o comando
gcloud backup-dr backups restore compute projects:gcloud backup-dr backups restore compute projects/test-project-id/locations/us-central1/backupVaults/test-vault/dataSources/test-ds/backups/test-backup-id \ --name=NAME --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECT
Restaure uma instância do Compute Engine com conta de serviço personalizada e configuração de rede usando o comando
gcloud backup-dr backups restore compute:gcloud backup-dr backups restore compute test-backup-id \ --project=PROJECT --location=REGION \ --backup-vault=BACKUPVAULT_NAME --data-source=DATA_SOURCE\ --name=NAME --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECT \ --network-interface=network=NETWORK,subnet=SUBNET \ --service-account=SERVICE_ACCOUNT \ --scopes=SCOPE
Substitua:
PROJECT: o nome do projeto do backup vault.
REGION: o local do backup vault.
BACKUPVAULT_NAME: o nome do backup vault de onde você quer restaurar os dados.
DATA_SOURCE: o nome da fonte de dados de onde você quer restaurar os dados.
NAME: o nome da instância restaurada do Compute Engine.
TARGET_ZONE: a região em que a instância do Compute Engine é restaurada.
TARGET_PROJECT: o projeto em que a instância do Compute Engine é restaurada.
NETWORK: o URI de rede da instância do Compute Engine.
SUBNET: o URI da sub-rede da instância do Compute Engine.
SERVICE_ACCOUNT: a conta de serviço da instância restaurada do Compute Engine.
SCOPE: o escopo de autorização da conta de serviço.
Restaure um disco do Compute Engine usando o comando
gcloud backup-dr backups restore disk. Para instruções detalhadas sobre como restaurar um disco individual de um backup de instância do Compute Engine, consulte Realizar uma restauração seletiva de discos de um backup de instância do Compute Engine.gcloud backup-dr backups restore disk BACKUP_NAME \ --name=DISK_NAME \ --target-project=TARGET_PROJECT_NAME \ [--source-instance-boot-disk | --source-instance-disk-device-name=DEVICE_NAME] \ [--target-zone=TARGET_ZONE_NAME | --target-region=TARGET_REGION_NAME --replica-zones=ZONE_NAME] \ [DISK_OVERRIDE_FLAGS...] \ [--async]
Para modificar outras propriedades de instância do Compute Engine, consulte Visão geral dos comandos da CLI gcloud de backup e DR.
Limitações de restauração para backups seletivos de disco
Quando você restaura uma instância do Compute Engine de um backup criado usando o
backup de disco seletivo,
somente os discos que estavam protegidos no momento do
backup são restaurados e anexados à nova instância de máquina virtual (VM).
No console do Google Cloud , a seção de resumo destaca os discos protegidos
incluídos no backup (por exemplo, Protected disks: 2 out of 3).
Para evitar falhas de inicialização ao restaurar VMs com discos excluídos, defina
a configuração de inicialização da VM de origem para ignorar discos ausentes (por exemplo, adicionando a opção de montagem nofail em /etc/fstab). Para mais informações sobre
essa limitação do Compute Engine, consulte
Limitações e advertências da restauração de discos permanentes.
Restaurar um backup de um backup vault com CMEK
O tratamento da criptografia para restaurações de um backup vault ativado para CMEK depende se você está restaurando toda a instância do Compute Engine ou um disco individual.
Processamento de CMEK para restaurações de instâncias inteiras do Compute Engine
Quando você restaura uma instância inteira do Compute Engine de um backup armazenado em um backup vault com CMEK, o backup em si é protegido pela CMEK do vault. Os discos na instância restaurada do Compute Engine mantêm as configurações de criptografia originais por padrão, sejam elas gerenciadas pelo Google ou as CMEKs originais. As permissões necessárias para acessar a CMEK do vault são concedidas ao agente de serviço de backup e DR, conforme descrito em Conceitos de CMEK.
Processamento de CMEK para restaurações de discos individuais
Quando você escolhe o escopo de restauração Disco individual para restaurar um único disco de um backup de instância do Compute Engine, ocorre o seguinte comportamento:
Comportamento padrão: o novo disco criado com base no backup tenta usar a mesma chave de criptografia do disco de origem da instância original do Compute Engine.
Se o disco de origem usava a criptografia gerenciada pelo Google, o disco restaurado também usará a criptografia gerenciada pelo Google.
Se o disco de origem usou uma CMEK específica, o disco restaurado tentará usar essa mesma CMEK.
Indisponibilidade da chave: se a CMEK original usada pelo disco de origem não estiver acessível no projeto ou na região de destino, por exemplo, devido à exclusão da chave, mudanças de permissão ou restauração entre regiões, a operação de restauração vai falhar, a menos que você substitua as configurações de criptografia.
Substituição das configurações de criptografia: é possível mudar as configurações de criptografia do disco restaurado durante o processo de restauração usando as seguintes instruções:
Console
Na seção Propriedades do disco de destino do assistente de restauração, é possível modificar as configurações de Criptografia usando uma das seguintes opções:
Selecione uma chave de criptografia gerenciada pelo cliente (CMEK) diferente.
Mudar para a criptografia gerenciada pelo Google.
gcloud
Ao usar o comando
gcloud backup-dr backups restore diskcom as flags--source-instance-boot-diskou--source-instance-disk-device-name:- Para especificar uma CMEK diferente para o disco restaurado, use a
flag
--kms-key:
--kms-key=projects/MY-KEY-PROJECT/locations/us-central1/keyRings/MY-RING/cryptoKeys/MY-NEW-KEY- Para forçar o disco restaurado a usar a criptografia gerenciada pelo Google,
use a flag
--clear-encryption-key.
- Para especificar uma CMEK diferente para o disco restaurado, use a
flag
Permissões para substituições de CMEK:
Se você substituir a criptografia para usar uma CMEK nova ou diferente, verifique se o agente de serviço do Compute Engine do projeto de destino tem o papel
Cloud KMS CryptoKey Encrypter/Decrypter(roles/cloudkms.cryptoKeyEncrypterDecrypter) na chave do KMS especificada. O formato da conta do agente de serviço é:service-TARGET_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.Essa permissão é necessária para que o Compute Engine crie o novo disco criptografado com a chave escolhida.
Consulte Restaurar um Persistent Disk de um backup vault para mais detalhes sobre as operações de restauração de disco e o uso de flags.
Restaurar um backup de um backup vault com CMEK
Quando você restaura um backup de um backup vault com CMEK, a criptografia do recurso restaurado depende da criptografia da origem:
- Se o recurso de origem foi protegido por CMEK: o recurso restaurado
usa por padrão a mesma chave CMEK da origem. Por exemplo:
- Um disco permanente do Compute Engine criptografado com a chave
K1é restaurado para um disco criptografado comK1. - Se uma VM tiver vários discos, cada disco na VM restaurada herdará a criptografia do disco de origem correspondente (os discos criptografados por CMEK permanecerão criptografados com as chaves originais, e os discos criptografados gerenciados pelo Google permanecerão gerenciados pelo Google).
- Um disco permanente do Compute Engine criptografado com a chave
- Se o recurso de origem usou a criptografia gerenciada pelo Google: o recurso restaurado usa a criptografia gerenciada pelo Google por padrão.
É possível modificar esse comportamento padrão ao restaurar discos permanentes ou instâncias do Compute Engine usando a API ou a CLI gcloud. Por exemplo, é possível
restaurar um backup de um recurso protegido por CMEK para um novo recurso que use
criptografia gerenciada pelo Google ou para um novo recurso protegido por uma chave CMEK
diferente. Para restaurar um recurso protegido por uma nova chave CMEK, verifique se o agente de serviço relevante (por exemplo, o agente de serviço do Compute Engine) do projeto de destino tem a permissão roles/cloudkms.cryptoKeyEncrypterDecrypter na nova chave de destino.
Realizar uma restauração entre regiões com CMEK
Como as chaves do Cloud Key Management Service são regionais, quando você executa uma restauração entre regiões (por exemplo, restaurando uma instância de asia-south1 para asia-south2), a operação de restauração falha se você usar o comportamento padrão. Os discos da VM restaurada não podem ser criptografados com a chave do Cloud KMS da região de origem.
Essa é uma limitação atual no console do Google Cloud . Para realizar uma restauração entre regiões de uma VM protegida por CMEK, use a CLI gcloud, a API ou o Terraform para substituir as configurações de criptografia e especificar uma nova chave do KMS na região de destino.
Para restaurar um recurso protegido por uma nova chave CMEK, siga estas etapas:
- Verifique se você tem uma chave na região de destino: verifique se você tem uma chave do Cloud Key Management Service na região em que está restaurando a VM (no projeto de destino ou em um projeto compartilhado do KMS) e crie uma, se não tiver.
Conceder permissões do KMS: conceda o papel de Criptografador/Descriptografador de CryptoKey do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) nessa chave de destino ao agente de serviço do Compute Engine do projeto de destino em que a VM está sendo restaurada.Realize a restauração: execute a restauração usando um dos métodos a seguir, substituindo a chave do KMS para cada disco:
gcloud
Receber detalhes do backup: recupere o nome do backup e os nomes dos dispositivos dos discos do backup usando o comando
gcloud backup-dr backups list:gcloud backup-dr backups list \ --project=PROJECT_ID \ --location=SOURCE_REGION \ --backup-vault=BACKUP_VAULT_NAME \ --filter="computeInstanceBackupProperties.sourceInstance~SOURCE_INSTANCE_NAME"Substitua:
- PROJECT_ID: o nome do projeto em que o backup vault está.
- SOURCE_REGION: o local do backup vault.
- BACKUP_VAULT_NAME: o nome do backup vault de onde você quer restaurar os dados.
- SOURCE_INSTANCE_NAME: o nome da instância de origem do Compute Engine.
Execute o comando de restauração: execute o comando de restauração e substitua a chave do KMS para cada disco usando o parâmetro
--create-disk.Restaurar uma VM com um único disco:
gcloud backup-dr backups restore compute BACKUP_ID \ --project=PROJECT_ID \ --location=SOURCE_REGION \ --backup-vault=BACKUP_VAULT_NAME \ --data-source=DATA_SOURCE \ --name=RESTORED_VM_NAME \ --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECT_ID \ --create-disk=device-name=DEVICE_NAME,kms-key=projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAMESubstitua:
- BACKUP_ID: o ID do backup que você quer restaurar.
- PROJECT_ID: o nome do projeto em que o backup vault está.
- SOURCE_REGION: o local do backup vault.
- BACKUP_VAULT_NAME: o nome do backup vault de onde você quer restaurar os dados.
- DATA_SOURCE: o ID da fonte de dados de onde você quer restaurar os dados.
- RESTORED_VM_NAME: o nome da VM restaurada.
- TARGET_ZONE: a zona em que a VM é restaurada.
- TARGET_PROJECT_ID: o projeto em que a VM é restaurada.
- DEVICE_NAME: o nome do dispositivo do disco.
- KMS_PROJECT_ID: o ID do projeto em que a chave do Cloud Key Management Service reside.
- TARGET_REGION: a região em que a chave do Cloud Key Management Service está localizada.
- KEYRING: o nome do keyring do Cloud Key Management Service.
- KEY_NAME: o nome da chave do Cloud Key Management Service para o disco 1.
Restaurar uma VM com vários discos: forneça uma flag
--create-diskseparada para cada disco:gcloud backup-dr backups restore compute BACKUP_ID \ --project=PROJECT_ID \ --location=SOURCE_REGION \ --backup-vault=BACKUP_VAULT_NAME \ --data-source=DATA_SOURCE \ --name=RESTORED_VM_NAME \ --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECT_ID \ --create-disk=device-name=DEVICE_NAME_1,kms-key=projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_1 \ --create-disk=device-name=DEVICE_NAME_2,kms-key=projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_2Substitua:
- BACKUP_ID: o ID do backup que você quer restaurar.
- PROJECT_ID: o nome do projeto em que o backup vault está.
- SOURCE_REGION: o local do backup vault.
- BACKUP_VAULT_NAME: o nome do backup vault de onde você quer restaurar os dados.
- DATA_SOURCE: o ID da fonte de dados de onde você quer restaurar os dados.
- RESTORED_VM_NAME: o nome da VM restaurada.
- TARGET_ZONE: a zona em que a VM é restaurada.
- TARGET_PROJECT_ID: o projeto em que a VM é restaurada.
- DEVICE_NAME_1: o nome do dispositivo do disco 1.
- KMS_PROJECT_ID: o ID do projeto em que a chave do Cloud Key Management Service reside.
- TARGET_REGION: a região em que a chave do Cloud Key Management Service está localizada.
- KEYRING: o nome do keyring do Cloud Key Management Service.
- KEY_NAME_1: o nome da chave do Cloud Key Management Service para o disco 1.
- DEVICE_NAME_2: o nome do dispositivo do disco 2.
- KEY_NAME_2: o nome da chave do Cloud Key Management Service para o disco 2.
API
Receber detalhes do backup: recupere o nome do backup e os nomes dos dispositivos dos discos enviando uma solicitação
GETpara listar os backups:GET https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backupsExecute a API de restauração: envie uma solicitação
POSTpara o URIrestoredo backup.Restaurar uma VM com um único disco:
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restorePayload:
{ "computeInstanceTargetEnvironment": { "project": "TARGET_PROJECT_ID", "zone": "TARGET_ZONE" }, "computeInstanceRestoreProperties": { "name": "RESTORED_VM_NAME", "machineType": "projects/TARGET_PROJECT_ID/zones/TARGET_ZONE/machineTypes/e2-medium", "disks": [ { "deviceName": "DEVICE_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME" } } ] } }Restaurar uma VM com vários discos:
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restorePayload:
{ "computeInstanceTargetEnvironment": { "project": "TARGET_PROJECT_ID", "zone": "TARGET_ZONE" }, "computeInstanceRestoreProperties": { "name": "RESTORED_VM_NAME", "machineType": "projects/TARGET_PROJECT_ID/zones/TARGET_ZONE/machineTypes/e2-medium", "disks": [ { "deviceName": "DEVICE_NAME_1", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_1" } }, { "deviceName": "DEVICE_NAME_2", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_2" } } ] } }
Terraform
Usar o recurso google_backup_dr_restore_workload
Restaurar uma VM com um único disco:
resource "google_backup_dr_restore_workload" "restore_single" { location = "SOURCE_REGION" backup_vault_id = "BACKUP_VAULT_NAME" data_source_id = "DATA_SOURCE" backup_id = "BACKUP_ID" compute_instance_target_environment { project = "TARGET_PROJECT_ID" zone = "TARGET_ZONE" } compute_instance_restore_properties { name = "RESTORED_VM_NAME" machine_type = "zones/TARGET_ZONE/machineTypes/e2-medium" disks { device_name = "DEVICE_NAME" disk_encryption_key { kms_key_name = "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME" } } } }Restaurar uma VM com vários discos:
resource "google_backup_dr_restore_workload" "restore_multi" { location = "SOURCE_REGION" backup_vault_id = "BACKUP_VAULT_NAME" data_source_id = "DATA_SOURCE" backup_id = "BACKUP_ID" compute_instance_target_environment { project = "TARGET_PROJECT_ID" zone = "TARGET_ZONE" } compute_instance_restore_properties { name = "RESTORED_VM_NAME" machine_type = "zones/TARGET_ZONE/machineTypes/TARGET_MACHINETYPE" disks { device_name = "DEVICE_NAME_1" disk_encryption_key { kms_key_name = "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_1" } } disks { device_name = "DEVICE_NAME_2" disk_encryption_key { kms_key_name = "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_2" } } } }
Se a chave do Cloud Key Management Service que protege a carga de trabalho de origem não estiver disponível durante uma operação de restauração, a restauração vai falhar por padrão. Nesse caso, use a API ou a CLI gcloud para substituir a configuração de criptografia especificando uma nova chave CMEK ou alterando o tipo de criptografia para criptografia gerenciada pelo Google para o recurso restaurado.
Se a versão da chave do Cloud Key Management Service usada para criptografar dados no backup vault for desativada ou destruída, não será possível restaurar o backup.
O guia de backup e DR do Compute Engine
- Criar e gerenciar um plano de backup para backups em vault
- Verificar as credenciais do Cloud
- Descobrir e proteger instâncias do Compute Engine
- Montar imagens de backup do disco permanente do Compute Engine
- Restaurar uma instância do Compute Engine
- Importar imagens de snapshot do Persistent Disk
A seguir
- Para saber como restaurar um Persistent Disk de um backup vault
- Para saber como realizar uma restauração seletiva de discos de um backup de instância do Compute Engine