Esta página ajuda você a restaurar uma instância do Compute Engine de um backup vault no console do Google Cloud .
Antes de começar
Conceda o papel do IAM de operador do Backup e DR do Compute Engine (
roles/backupdr.computeEngineOperator) ao agente de serviço do backup vault do vault no projeto de destino em que a restauração está sendo realizada.Conceda o papel do IAM Usuário de rede do Compute (
roles/compute.networkUser) para o agente de serviço do cofre de backup do cofre no projeto host da VPC se você estiver usando a VPC compartilhada.Conceda os seguintes papéis do IAM ao usuário que realiza a restauração no projeto do cofre de backup.
- Usuário de Backup e DR (
roles/backupdr.restoreUser) para o backup vault e o projeto de destino. - Leitor 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 do Google Cloud 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 (
Outras permissões para o console do Google Cloud
Ao restaurar uma instância usando o console do Google Cloud , 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 do Compute Engine necessários 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
No console Google Cloud , acesse a página Backups em cofre.
Todas as instâncias do Compute Engine com backups protegidos são listadas aqui.
Clique no ícone de ação para selecionar a opção Restaurar. A página de restauração mostra 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 Nome do projeto em que você quer restaurar a VM.
Clique em Proceed.
- 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 previamente com base nas propriedades da VM de origem. É possível modificar as propriedades para criar uma nova VM. Por exemplo, mude a seleção de Região ou Tipo de máquina.
Clique em Criar para criar uma VM com base no backup selecionado.
gcloud
Se ainda não tiver sido concedido, conceda o papel do IAM Operador do Compute Engine de backup e DR (
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 seguinte comando:
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 cofre de backup.
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.
Encontrar o ID da fonte 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 fonte 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 da carga de trabalho com o ID do 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 uma conta de serviço e uma configuração de rede personalizadas.
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 backup vault project.
- 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 fonte 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 da 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 do Google Cloud do serviço de Backup e DR.
Como restaurar de um backup vault ativado para CMEK
Quando você restaura um backup de um backup vault habilitado para CMEK, a criptografia do recurso restaurado depende da criptografia da origem:
- Se o recurso de origem estava 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 um deles 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 Google Cloud CLI. Por exemplo, é possível
restaurar um backup de um recurso protegido por CMEK para um novo recurso que usa
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 permissão roles/cloudkms.cryptoKeyEncrypterDecrypter na nova chave de destino.
Fazer uma restauração entre regiões com CMEK
Como as chaves do Cloud Key Management Service são regionais, quando você realiza 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 console Google Cloud . Para realizar uma restauração entre regiões de uma VM protegida por CMEK, use a Google Cloud CLI, 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 da CMEK, siga estas etapas:
- Verifique se você tem uma chave na região de destino:confira 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.Faça a restauração:execute a restauração usando um dos seguintes métodos, substituindo a chave do KMS de 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 cofre de backup está localizado.
- 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.
Execute 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 cofre de backup está localizado.
- 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 fonte 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 será 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 está localizada.
- 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 cofre de backup está localizado.
- 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 fonte 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 será 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 está localizada.
- 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 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 Google Cloud CLI para substituir a configuração de criptografia. Para isso, especifique uma nova chave CMEK ou mude o tipo de criptografia para a gerenciada pelo Google no recurso restaurado.
Se a versão da chave do Cloud Key Management Service usada para criptografar dados no cofre de backup for desativada ou destruída, não será possível fazer a restauração desse backup.
O guia do Backup e DR Compute Engine
- Criar e gerenciar um plano de backup para backups armazenados em um cofre
- 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 snapshots do Persistent Disk