Esta página ajuda você a restaurar uma instância do Compute Engine de um backup vault no Google Cloud console.
Antes de começar
Conceda o papel do IAM de operador de DR e backup do Compute Engine (
roles/backupdr.computeEngineOperator) para o agente de serviço do backup vault no projeto de destino em que a restauração está sendo realizada.Conceda o papel do IAM de usuário da rede do Compute (
roles/compute.networkUser) para o agente de serviço do backup vault no projeto host da VPC se você estiver usando a VPC compartilhada.Conceda os seguintes papéis do IAM para o usuário que realiza a restauração no projeto do backup vault.
- Usuário de Backup e DR (
roles/backupdr.restoreUser) para o backup vault e o projeto de destino. - Visualizador do Compute (
roles/compute.viewer) apenas para o destino.
Esses papéis predefinidos contêm as permissões necessárias para acessar o backup vault no projeto do Compute Engine. Para permissões específicas, consulte a lista a seguir.
backupdr.bvbackups.restorebackupdr.compute.restoreFromBackupVaultbackupdr.backupVaults.getbackupdr.backupVaults.listbackupdr.bvbackups.listbackupdr.bvdataSources.getbackupdr.bvdataSources.listbackupdr.bvbackups.get
Para restaurar uma instância usando a CLI gcloud ou a API, um usuário precisa ter as seguintes permissões:
backupdr.bvbackups.restoreno recurso de backup.backupdr.compute.restoreFromBackupVaultno projeto de destino em que a instância será restaurada.
- Usuário de Backup e DR (
Permissões adicionais para o Google Cloud console
Ao restaurar uma instância usando o Google Cloud console, o usuário precisa das permissões da CLI e das seguintes permissões. Essas permissões adicionais são necessárias para que o console liste e mostre os recursos necessários do Compute Engine para seleção na interface do usuário:
compute.acceleratorTypes.listcompute.disks.listcompute.machineTypes.listcompute.projects.getcompute.regions.listcompute.zones.list
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Restaurar uma instância do Compute Engine
Use as instruções a seguir para restaurar uma instância do Compute Engine.
Console
Noconsole, acesse a página Backups em vault. Google Cloud
Todas as instâncias do Compute Engine com backups em vault são listadas aqui.
Clique no ícone de ação para selecionar a ação Restaurar. A página Restaurar é exibida, em que 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 nome do projeto em que você quer restaurar a VM.
Clique em Continuar.
- A próxima página Criar uma nova instância de VM usando um backup aparece, em que as propriedades da VM são preenchidas com base nas propriedades da VM de origem. É possível modificar as propriedades para criar uma nova VM. Por exemplo, altere a seleção de Região ou Tipo de máquina.
Clique em Criar para criar uma nova VM com base no backup selecionado.
gcloud
Se ainda não tiver sido concedido, conceda o papel do IAM de operador de DR e backup do Compute Engine (
roles/backupdr.computeEngineOperator) ao agente de serviço do backup vault no projeto de recuperação em que a VM está sendo recuperada.Para acessar a conta de serviço do backup vault, use o comando a seguir.
gcloud backup-dr backup-vaults describe BACKUPVAULT_NAME --location=REGIONSubstitua:
- BACKUPVAULT_NAME: o nome do backup vault de que você quer restaurar os dados.
- REGION: a região do backup vault.
Antes de restaurar uma instância do Compute Engine, use os comandos a seguir para acessar o ID da origem de dados e o ID do backup necessário.
Encontrar o ID da origem de dados
gcloud backup-dr data-sources list \ --project=PROJECT \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ "--filter=dataSourceGcpResource.computeInstanceDatasourceProperties.name:(DATA_SOURCE)" \ "--format=get(name)")Liste os backups atuais da origem de dados para encontrar o BACKUP_ID correto.
gcloud backup-dr backups list \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ --data-source=DATA_SOURCE \ "--format=yaml(backupType,computeInstanceBackupProperties.sourceInstance,consistencyTime,enforcedRetentionEndTime,expireTime,name)"
Para restaurar uma instância do Compute Engine, use os comandos a seguir.
Restaure uma VM no mesmo projeto que o projeto da carga de trabalho com o ID de backup.
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_PROJECTRestaure uma VM no mesmo projeto que o projeto da carga de trabalho com o URL completo do recurso de backup.
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_PROJECTRestaure uma instância do Compute Engine com configuração de rede e conta de serviço personalizada.
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=SCOPESubstitua:
- PROJECT: o nome do projeto do backup vault.
- REGION: o local do backup vault.
- BACKUPVAULT_NAME: o nome do backup vault de que você quer restaurar os dados.
- DATA_SOURCE: o nome da origem de dados de que você quer restaurar os dados.
- NAME: o nome da VM restaurada.
- TARGET_ZONE: a região em que a VM é restaurada.
- TARGET_PROJECT: o projeto em que a VM é restaurada.
- NETWORK: o URI de rede da VM.
- SUBNET: o URI de sub-rede da VM.
- SERVICE_ACCOUNT: a conta de serviço da VM restaurada.
- SCOPE: o escopo de autorização da conta de serviço.
Para substituir outras propriedades da VM, consulte Visão geral dos comandos da CLI gcloud do serviço de backup e DR.
Como restaurar de um backup vault ativado para CMEK
Ao restaurar um backup de um backup vault ativado para CMEK, a criptografia do recurso restaurado depende da criptografia da origem:
- Se o recurso de origem foi protegido por CMEK:o recurso restaurado usa a mesma chave CMEK da origem por padrão. 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 vai herdar a criptografia do disco de origem correspondente (os discos criptografados com CMEK permanecem criptografados com as chaves originais, e os discos criptografados gerenciados pelo Google permanecem 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 substituir 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 usa a 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, ao realizar uma restauração entre regiões (por exemplo, restaurar 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 KMS da região de origem.
Essa é uma limitação atual no Google Cloud console. 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.
Conceda permissões do KMS:conceda o papel 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 de cada disco:
gcloud
Acessar 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 reside.
- SOURCE_REGION: o local do backup vault.
- BACKUP_VAULT_NAME: o nome do backup vault de que você quer restaurar os dados.
- SOURCE_INSTANCE_NAME: o nome da instância de origem do Compute Engine.
Executar o comando de restauração:execute o comando de restauração e substitua a chave do KMS de 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 reside.
- SOURCE_REGION: o local do backup vault.
- BACKUP_VAULT_NAME: o nome do backup vault de que você quer restaurar os dados.
- DATA_SOURCE: o ID da origem de dados de que 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 reside.
- 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 reside.
- SOURCE_REGION: o local do backup vault.
- BACKUP_VAULT_NAME: o nome do backup vault de que você quer restaurar os dados.
- DATA_SOURCE: o ID da origem de dados de que 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 reside.
- 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
Acessar 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/backupsExecutar 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
Use 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 estiver indisponí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 a 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 estiver 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 da nuvem
- 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 de disco permanente