En esta página, se explica cómo restablecer una instancia de Compute Engine desde una backup vault en la Google Cloud consola de.
Antes de comenzar
Otorga el rol de IAM de Operador de Compute Engine para Backup and DR (
roles/backupdr.computeEngineOperator) al agente de servicio de backup vault de la vault en el proyecto de destino en el que se realiza la restauración.Otorga el rol de IAM de Usuario de red de Compute (
roles/compute.networkUser) al agente de servicio de backup vault de la vault en el proyecto host de VPC si usas una VPC compartida.Otorga los siguientes roles de IAM al usuario que realiza la restauración en el proyecto de la backup vault.
- Usuario de restablecimiento de Backup and DR (
roles/backupdr.restoreUser) para la backup vault y el proyecto de destino. - Visualizador de Compute (
roles/compute.viewer) solo para el destino.
Estos roles predefinidos contienen los permisos necesarios para acceder a la backup vault en el proyecto de Compute Engine. Para obtener permisos específicos, consulta la siguiente lista.
backupdr.bvbackups.restorebackupdr.compute.restoreFromBackupVaultbackupdr.backupVaults.getbackupdr.backupVaults.listbackupdr.bvbackups.listbackupdr.bvdataSources.getbackupdr.bvdataSources.listbackupdr.bvbackups.get
Para restablecer una instancia con la CLI de gcloud o la API, un usuario debe tener los siguientes permisos:
backupdr.bvbackups.restoreen el recurso de copia de seguridadbackupdr.compute.restoreFromBackupVaulten el proyecto de destino en el que se restablecerá la instancia
- Usuario de restablecimiento de Backup and DR (
Permisos adicionales para la Google Cloud consola de
Cuando se restablece una instancia con la Google Cloud consola de, el usuario necesita los permisos de la CLI más los siguientes permisos. Estos permisos adicionales son necesarios para que la consola enumere y muestre los recursos de Compute Engine necesarios para la selección en la interfaz de usuario:
compute.acceleratorTypes.listcompute.disks.listcompute.machineTypes.listcompute.projects.getcompute.regions.listcompute.zones.list
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Restablece una instancia de Compute Engine
Usa las siguientes instrucciones para restablecer una instancia de Compute Engine.
Console
En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.
Ir a Copias de seguridad almacenadas en vault
Aquí se enumeran todas las instancias de Compute Engine con copias de seguridad almacenadas en vault.
Haz clic en el ícono de acción para seleccionar la acción Restablecer. Se muestra la página Restablecer , en la que seleccionas las siguientes opciones de restablecimiento:
- Selecciona un nombre de recurso.
- Selecciona una fecha de creación de la copia de seguridad.
- Selecciona el nombre del proyecto en el que deseas restablecer la VM.
Haz clic en Continuar.
- Aparecerá la siguiente página Crea una nueva instancia de VM a partir de una copia de seguridad , en la que las propiedades de la VM se propagan previamente según las propiedades de la VM de origen. Puedes modificar las propiedades para crear una VM nueva, por ejemplo, cambiar la selección de Región o Tipo de máquina.
Haz clic en Crear para crear una VM nueva a partir de la copia de seguridad seleccionada.
gcloud
Si aún no lo hiciste, otorga el rol de IAM de Operador de Compute Engine para Backup and DR (
roles/backupdr.computeEngineOperator) al agente de servicio de backup vault en el proyecto de recuperación en el que se recupera la VM.Para obtener la cuenta de servicio de la backup vault, usa el siguiente comando.
gcloud backup-dr backup-vaults describe BACKUPVAULT_NAME --location=REGIONReemplaza lo siguiente:
- BACKUPVAULT_NAME: Es el nombre de la backup vault desde la que deseas restablecer los datos.
- REGION: Es la región de la backup vault.
Antes de que puedas restablecer una instancia de Compute Engine, usa los siguientes comandos para obtener el ID de la fuente de datos y el ID de la copia de seguridad requerida.
Busca el ID de la fuente de datos
gcloud backup-dr data-sources list \ --project=PROJECT \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ "--filter=dataSourceGcpResource.computeInstanceDatasourceProperties.name:(DATA_SOURCE)" \ "--format=get(name)")Enumera las copias de seguridad existentes para la fuente de datos para encontrar el BACKUP_ID correcto.
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 restablecer una instancia de Compute Engine, usa los siguientes comandos.
Restablece una VM en el mismo proyecto que el proyecto de carga de trabajo con el ID de copia de seguridad.
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_PROJECTRestablece una VM en el mismo proyecto que el proyecto de carga de trabajo con la URL completa del recurso de la copia de seguridad.
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_PROJECTRestablece una instancia de Compute Engine con una cuenta de servicio personalizada y una configuración de red.
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=SCOPEReemplaza lo siguiente:
- PROJECT: Es el nombre del proyecto de la backup vault.
- REGION: Es la ubicación de la backup vault.
- BACKUPVAULT_NAME: Es el nombre de la backup vault desde la que deseas restablecer los datos.
- DATA_SOURCE: Es el nombre de la fuente de datos desde la que deseas restablecer los datos.
- NAME: Es el nombre de la VM restablecida.
- TARGET_ZONE: Es la región en la que se restablece la VM.
- TARGET_PROJECT: Es el proyecto en el que se restablece la VM.
- NETWORK: Es el URI de red de la VM.
- SUBNET: Es el URI de subred de la VM.
- SERVICE_ACCOUNT: Es la cuenta de servicio de la VM restablecida.
- SCOPE: Es el alcance de autorización de la cuenta de servicio.
Para anular otras propiedades de la VM, consulta Descripción general de los comandos de la CLI de gcloud del servicio de Backup and DR.
Restablece desde una backup vault habilitada para CMEK
Cuando restableces una copia de seguridad desde una backup vault habilitada para CMEK, la encriptación del recurso restablecido depende de la encriptación de la fuente:
- Si el recurso de origen estaba protegido por CMEK: El recurso restablecido usa de forma predeterminada la misma clave de CMEK que la fuente. Por ejemplo:
- Un disco persistente de Compute Engine encriptado con la clave
K1se restablece a un disco encriptado conK1. - Si una VM tiene varios discos, cada disco de la VM restablecida hereda la encriptación de su disco de origen correspondiente (los discos encriptados con CMEK permanecen encriptados con sus claves originales, y los discos encriptados administrados por Google permanecen administrados por Google).
- Un disco persistente de Compute Engine encriptado con la clave
- Si el recurso de origen usó la encriptación administrada por Google: El recurso restablecido usa de forma predeterminada la encriptación administrada por Google.
Puedes anular este comportamiento predeterminado cuando restableces discos persistentes de Compute Engine
o instancias de Compute Engine con la API o la CLI de gcloud. Por ejemplo, puedes restablecer una copia de seguridad de un recurso protegido por CMEK a un recurso nuevo que use la encriptación administrada por Google o a un recurso nuevo protegido por una clave de CMEK diferente. Para restablecer a un recurso protegido por una clave de CMEK nueva, asegúrate de que el agente de servicio pertinente (p.ej., el agente de servicio de Compute Engine) para el proyecto de destino tenga el permiso roles/cloudkms.cryptoKeyEncrypterDecrypter en la nueva clave de destino.
Realiza un restablecimiento entre regiones con CMEK
Debido a que las claves de Cloud Key Management Service son regionales, cuando realizas un restablecimiento entre regiones (por ejemplo, restablecer una instancia de asia-south1 a asia-south2), la operación de restablecimiento falla si usas el comportamiento predeterminado. Los discos de la VM restablecida no se pueden encriptar con la clave de KMS de la región de origen.
Esta es una limitación actual en la Google Cloud consola de. Para realizar un restablecimiento entre regiones de una VM protegida por CMEK, debes usar la CLI de gcloud, la API o Terraform para anular la configuración de encriptación y especificar una nueva clave de KMS en la región de destino.
Para restablecer a un recurso protegido por una clave de CMEK nueva, sigue estos pasos:
- Asegúrate de tener una clave en la región de destino: Asegúrate de tener una clave de Cloud Key Management Service en la región en la que restableces la VM (en el proyecto de destino o en un proyecto de KMS compartido) y crea una si no la tienes.
Otorga permisos de KMS: Otorga el rol de Encriptador/Desencriptador de CryptoKey de Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) en esta clave de destino al agente de servicio de Compute Engine del proyecto de destino en el que se restablece la VM.Realiza el restablecimiento: Ejecuta el restablecimiento con uno de los siguientes métodos y anula la clave de KMS para cada disco:
gcloud
Obtén detalles de la copia de seguridad: Recupera el nombre de la copia de seguridad y los nombres de los dispositivos de los discos de la copia de seguridad con el 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"Reemplaza lo siguiente:
- PROJECT_ID: Es el nombre del proyecto en el que reside la backup vault.
- SOURCE_REGION: Es la ubicación de la backup vault.
- BACKUP_VAULT_NAME: Es el nombre de la backup vault desde la que deseas restablecer los datos.
- SOURCE_INSTANCE_NAME: Es el nombre de la instancia de Compute Engine de origen.
Ejecuta el comando de restablecimiento: Ejecuta el comando de restablecimiento y anula la clave de KMS para cada disco con el parámetro
--create-disk.Restablece una VM con un solo 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_NAMEReemplaza lo siguiente:
- BACKUP_ID: Es el ID de la copia de seguridad que deseas restablecer.
- PROJECT_ID: Es el nombre del proyecto en el que reside la backup vault.
- SOURCE_REGION: Es la ubicación de la backup vault.
- BACKUP_VAULT_NAME: Es el nombre de la backup vault desde la que deseas restablecer los datos.
- DATA_SOURCE: Es el ID de la fuente de datos desde la que deseas restablecer los datos.
- RESTORED_VM_NAME: Es el nombre de la VM restablecida.
- TARGET_ZONE: Es la zona en la que se restablece la VM.
- TARGET_PROJECT_ID: Es el proyecto en el que se restablece la VM.
- DEVICE_NAME: Es el nombre del dispositivo del disco.
- KMS_PROJECT_ID: Es el ID del proyecto en el que reside la clave de Cloud Key Management Service.
- TARGET_REGION: Es la región en la que reside la clave de Cloud Key Management Service.
- KEYRING: Es el nombre del llavero de claves de Cloud Key Management Service.
- KEY_NAME: Es el nombre de la clave de Cloud Key Management Service para el disco 1.
Restablece una VM con varios discos: Proporciona una marca
--create-diskindependiente 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_2Reemplaza lo siguiente:
- BACKUP_ID: Es el ID de la copia de seguridad que deseas restablecer.
- PROJECT_ID: Es el nombre del proyecto en el que reside la backup vault.
- SOURCE_REGION: Es la ubicación de la backup vault.
- BACKUP_VAULT_NAME: Es el nombre de la backup vault desde la que deseas restablecer los datos.
- DATA_SOURCE: Es el ID de la fuente de datos desde la que deseas restablecer los datos.
- RESTORED_VM_NAME: Es el nombre de la VM restablecida.
- TARGET_ZONE: Es la zona en la que se restablece la VM.
- TARGET_PROJECT_ID: Es el proyecto en el que se restablece la VM.
- DEVICE_NAME_1: Es el nombre del dispositivo del disco 1.
- KMS_PROJECT_ID: Es el ID del proyecto en el que reside la clave de Cloud Key Management Service.
- TARGET_REGION: Es la región en la que reside la clave de Cloud Key Management Service.
- KEYRING: Es el nombre del llavero de claves de Cloud Key Management Service.
- KEY_NAME_1: Es el nombre de la clave de Cloud Key Management Service para el disco 1.
- DEVICE_NAME_2: Es el nombre del dispositivo del disco 2.
- KEY_NAME_2: Es el nombre de la clave de Cloud Key Management Service para el disco 2.
API
Obtén detalles de la copia de seguridad: Recupera el nombre de la copia de seguridad y los nombres de los dispositivos de los discos enviando una solicitud
GETpara enumerar las copias de seguridad:GET https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backupsEjecuta la API de restablecimiento: Envía una solicitud
POSTal URIrestorede la copia de seguridad.Restablece una VM con un solo disco:
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restoreCarga útil:
{ "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" } } ] } }Restablece una VM con varios discos:
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restoreCarga útil:
{ "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
Usa el recurso google_backup_dr_restore_workload.
Restablece una VM con un solo 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" } } } }Restablece una VM con varios 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" } } } }
Si la clave de Cloud Key Management Service que protege la carga de trabajo de origen no está disponible durante una operación de restablecimiento, el restablecimiento falla de forma predeterminada. En este caso, debes usar la API o la gcloud CLI para anular la configuración de encriptación. Para ello, especifica una clave de CMEK nueva o cambia el tipo de encriptación a la encriptación administrada por Google para el recurso restablecido.
Si la versión de clave de Cloud Key Management Service que se usó para encriptar datos en la backup vault está inhabilitada o destruida, no podrás restablecer desde esa copia de seguridad.
La guía de Backup and DR para Compute Engine
- Crea y administra un plan de creación de copias de seguridad para copias de seguridad almacenadas en vault
- Verifica las credenciales de la nube
- Detecta y protege instancias de Compute Engine
- Activa imágenes de copia de seguridad de Persistent Disk de Compute Engine
- Restablece una instancia de Compute Engine
- Importa imágenes de instantáneas de Persistent Disk