Cette page vous aide à restaurer une instance Compute Engine à partir d'un coffre-fort de sauvegarde dans la console Google Cloud .
Avant de commencer
Attribuez le rôle IAM Opérateur Backup and DR Compute Engine (
roles/backupdr.computeEngineOperator) à l'agent de service du coffre de sauvegarde du coffre dans le projet cible où la restauration est effectuée.Si vous utilisez un VPC partagé, accordez le rôle IAM Utilisateur du réseau Compute (
roles/compute.networkUser) à l'agent de service du coffre de sauvegarde du coffre dans le projet hôte du VPC.Attribuez les rôles IAM suivants à l'utilisateur qui effectue la restauration dans le projet de coffre-fort de sauvegarde.
- Rôle "Utilisateur de Backup and DR" (
roles/backupdr.restoreUser) pour le coffre de sauvegarde et le projet cible. - Lecteur de Compute (
roles/compute.viewer) pour la cible uniquement.
Ces rôles prédéfinis contiennent les autorisations requises pour accéder au coffre-fort de sauvegarde dans le projet Compute Engine. Pour connaître les autorisations spécifiques, consultez la liste suivante.
backupdr.bvbackups.restorebackupdr.compute.restoreFromBackupVaultbackupdr.backupVaults.getbackupdr.backupVaults.listbackupdr.bvbackups.listbackupdr.bvdataSources.getbackupdr.bvdataSources.listbackupdr.bvbackups.get
Pour restaurer une instance à l'aide de la Google Cloud CLI ou de l'API, un utilisateur doit disposer des autorisations suivantes :
backupdr.bvbackups.restoresur la ressource de sauvegarde.backupdr.compute.restoreFromBackupVaultsur le projet cible dans lequel l'instance sera restaurée.
- Rôle "Utilisateur de Backup and DR" (
Autorisations supplémentaires pour la console Google Cloud
Lorsque vous restaurez une instance à l'aide de la console Google Cloud , l'utilisateur a besoin des autorisations de CLI, ainsi que des autorisations supplémentaires suivantes. Ces autorisations supplémentaires sont nécessaires pour que la console puisse lister et afficher les ressources Compute Engine nécessaires à la sélection dans l'interface utilisateur :
compute.acceleratorTypes.listcompute.disks.listcompute.machineTypes.listcompute.projects.getcompute.regions.listcompute.zones.list
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Restaurer une instance Compute Engine
Suivez les instructions ci-dessous pour restaurer une instance Compute Engine.
Console
Dans la console Google Cloud , accédez à la page Sauvegardes dans le coffre-fort.
Accéder aux sauvegardes stockées dans un vault
Toutes les instances Compute Engine avec des sauvegardes sécurisées sont listées ici.
Cliquez sur l'icône d'action pour sélectionner l'action Restaurer. La page Restaurer s'affiche. Vous y sélectionnez les options de restauration suivantes :
- Sélectionnez un nom de ressource.
- Sélectionnez une date et heure de création de la sauvegarde.
- Sélectionnez le nom du projet dans lequel vous souhaitez restaurer la VM.
Cliquez sur Continuer.
- La page suivante, Créer une instance de VM à partir d'une sauvegarde, s'affiche. Les propriétés de la VM y sont préremplies en fonction de celles de la VM source. Vous pouvez modifier les propriétés pour créer une VM, par exemple en modifiant la sélection pour Région ou Type de machine.
Cliquez sur Créer pour créer une VM à partir de la sauvegarde sélectionnée.
gcloud
Si ce n'est pas déjà fait, accordez le rôle IAM Opérateur Compute Engine de Backup and DR (
roles/backupdr.computeEngineOperator) à l'agent de service du coffre de sauvegarde dans le projet de récupération où la VM est en cours de récupération.Pour obtenir le compte de service du coffre-fort de sauvegarde, utilisez la commande suivante.
gcloud backup-dr backup-vaults describe BACKUPVAULT_NAME --location=REGIONRemplacez les éléments suivants :
- BACKUPVAULT_NAME : nom du coffre-fort de sauvegarde à partir duquel vous souhaitez restaurer les données.
- REGION : région du coffre-fort de sauvegarde.
Avant de pouvoir restaurer une instance Compute Engine, utilisez les commandes suivantes pour obtenir l'ID de la source de données et l'ID de la sauvegarde requise.
Trouver l'ID de la source de données
gcloud backup-dr data-sources list \ --project=PROJECT \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ "--filter=dataSourceGcpResource.computeInstanceDatasourceProperties.name:(DATA_SOURCE)" \ "--format=get(name)")Répertoriez les sauvegardes existantes pour la source de données afin de trouver le bon BACKUP_ID.
gcloud backup-dr backups list \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ --data-source=DATA_SOURCE \ "--format=yaml(backupType,computeInstanceBackupProperties.sourceInstance,consistencyTime,enforcedRetentionEndTime,expireTime,name)"
Pour restaurer une instance Compute Engine, utilisez les commandes suivantes.
Restaurez une VM dans le même projet que le projet de charge de travail avec l'ID de sauvegarde.
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_PROJECTRestaurez une VM dans le même projet que le projet de charge de travail avec l'URL complète de la ressource de sauvegarde.
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_PROJECTRestaurer une instance Compute Engine avec un compte de service et une configuration réseau personnalisés.
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=SCOPERemplacez les éléments suivants :
- PROJECT : nom du projet de coffre-fort de sauvegarde.
- REGION : emplacement du coffre de sauvegarde.
- BACKUPVAULT_NAME : nom du coffre-fort de sauvegarde à partir duquel vous souhaitez restaurer les données.
- DATA_SOURCE : nom de la source de données à partir de laquelle vous souhaitez restaurer les données.
- NAME : nom de la VM restaurée.
- TARGET_ZONE : région dans laquelle la VM est restaurée.
- TARGET_PROJECT : projet dans lequel la VM est restaurée.
- NETWORK : URI réseau de la VM.
- SUBNET : URI du sous-réseau de la VM.
- SERVICE_ACCOUNT : compte de service de la VM restaurée.
- SCOPE : champ d'autorisation du compte de service.
Pour remplacer d'autres propriétés de VM, consultez Présentation des commandes Google Cloud CLI du service Backup and DR.
Restaurer à partir d'un coffre de sauvegarde compatible avec CMEK
Lorsque vous restaurez une sauvegarde à partir d'un coffre de sauvegarde compatible avec CMEK, le chiffrement de la ressource restaurée dépend du chiffrement de la source :
- Si la ressource source était protégée par une clé CMEK : la ressource restaurée utilise par défaut la même clé CMEK que la source. Exemple :
- Un disque persistant Compute Engine chiffré avec la clé
K1est restauré sur un disque chiffré avecK1. - Si une VM comporte plusieurs disques, chaque disque de la VM restaurée hérite du chiffrement de son disque source correspondant (les disques chiffrés avec une CMEK restent chiffrés avec leurs clés d'origine, et les disques chiffrés gérés par Google restent gérés par Google).
- Un disque persistant Compute Engine chiffré avec la clé
- Si la ressource source utilisait le chiffrement géré par Google : la ressource restaurée utilise par défaut le chiffrement géré par Google.
Vous pouvez remplacer ce comportement par défaut lorsque vous restaurez des disques persistants Compute Engine ou des instances Compute Engine à l'aide de l'API ou de la Google Cloud CLI. Par exemple, vous pouvez restaurer une sauvegarde d'une ressource protégée par CMEK vers une nouvelle ressource qui utilise le chiffrement géré par Google ou vers une nouvelle ressource protégée par une autre clé CMEK. Pour effectuer une restauration vers une ressource protégée par une nouvelle clé CMEK, assurez-vous que l'agent de service concerné (par exemple, l'agent de service Compute Engine) pour le projet de destination dispose de l'autorisation roles/cloudkms.cryptoKeyEncrypterDecrypter sur la nouvelle clé de destination.
Effectuer une restauration interrégionale avec CMEK
Étant donné que les clés Cloud Key Management Service sont régionales, lorsque vous effectuez une restauration multirégionale (par exemple, en restaurant une instance de asia-south1 vers asia-south2), l'opération de restauration échoue si vous utilisez le comportement par défaut. Les disques de la VM restaurée ne peuvent pas être chiffrés avec la clé KMS de la région source.
Il s'agit d'une limite actuelle de la console Google Cloud . Pour effectuer une restauration multirégionale d'une VM protégée par une clé CMEK, vous devez utiliser la Google Cloud CLI, l'API ou Terraform pour remplacer les paramètres de chiffrement et spécifier une nouvelle clé KMS dans la région cible.
Pour restaurer une ressource protégée par une nouvelle clé CMEK, procédez comme suit :
- Assurez-vous d'avoir une clé dans la région cible : assurez-vous d'avoir une clé Cloud Key Management Service dans la région où vous restaurez la VM (dans le projet cible ou dans un projet KMS partagé), et créez-en une si vous n'en avez pas.
Accorder des autorisations KMS : accordez le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) sur cette clé cible à l'agent de service Compute Engine du projet cible dans lequel la VM est restaurée.Effectuez la restauration : exécutez la restauration à l'aide de l'une des méthodes suivantes, en remplaçant la clé KMS pour chaque disque :
gcloud
Obtenir les détails de la sauvegarde : récupérez le nom de la sauvegarde et les noms d'appareil des disques à partir de la sauvegarde à l'aide de la commande
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"Remplacez les éléments suivants :
- PROJECT_ID : nom du projet dans lequel se trouve le coffre-fort de sauvegarde.
- SOURCE_REGION : emplacement du coffre de sauvegarde.
- BACKUP_VAULT_NAME : nom du coffre-fort de sauvegarde à partir duquel vous souhaitez restaurer les données.
- SOURCE_INSTANCE_NAME : nom de l'instance Compute Engine source.
Exécutez la commande de restauration : exécutez la commande de restauration et remplacez la clé KMS pour chaque disque à l'aide du paramètre
--create-disk.Restaurer une VM avec un seul disque :
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_NAMERemplacez les éléments suivants :
- BACKUP_ID : ID de la sauvegarde que vous souhaitez restaurer.
- PROJECT_ID : nom du projet dans lequel se trouve le coffre-fort de sauvegarde.
- SOURCE_REGION : emplacement du coffre de sauvegarde.
- BACKUP_VAULT_NAME : nom du coffre-fort de sauvegarde à partir duquel vous souhaitez restaurer les données.
- DATA_SOURCE : ID de la source de données à partir de laquelle vous souhaitez restaurer les données.
- RESTORED_VM_NAME : nom de la VM restaurée.
- TARGET_ZONE : zone où la VM est restaurée.
- TARGET_PROJECT_ID : projet dans lequel la VM est restaurée.
- DEVICE_NAME : nom de l'appareil du disque.
- KMS_PROJECT_ID : ID du projet dans lequel réside la clé Cloud Key Management Service.
- TARGET_REGION : région dans laquelle se trouve la clé Cloud Key Management Service.
- KEYRING : nom du trousseau de clés Cloud Key Management Service.
- KEY_NAME : nom de la clé Cloud Key Management Service pour le disque 1.
Restaurer une VM avec plusieurs disques : fournissez un indicateur
--create-diskdistinct pour chaque disque :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_2Remplacez les éléments suivants :
- BACKUP_ID : ID de la sauvegarde que vous souhaitez restaurer.
- PROJECT_ID : nom du projet dans lequel se trouve le coffre-fort de sauvegarde.
- SOURCE_REGION : emplacement du coffre de sauvegarde.
- BACKUP_VAULT_NAME : nom du coffre-fort de sauvegarde à partir duquel vous souhaitez restaurer les données.
- DATA_SOURCE : ID de la source de données à partir de laquelle vous souhaitez restaurer les données.
- RESTORED_VM_NAME : nom de la VM restaurée.
- TARGET_ZONE : zone où la VM est restaurée.
- TARGET_PROJECT_ID : projet dans lequel la VM est restaurée.
- DEVICE_NAME_1 : nom de l'appareil du disque 1.
- KMS_PROJECT_ID : ID du projet dans lequel réside la clé Cloud Key Management Service.
- TARGET_REGION : région dans laquelle se trouve la clé Cloud Key Management Service.
- KEYRING : nom du trousseau de clés Cloud Key Management Service.
- KEY_NAME_1 : nom de la clé Cloud Key Management Service pour le disque 1.
- DEVICE_NAME_2 : nom de l'appareil du disque 2.
- KEY_NAME_2 : nom de la clé Cloud Key Management Service pour le disque 2.
API
Obtenir les détails de la sauvegarde : récupérez le nom de la sauvegarde et les noms d'appareils des disques en envoyant une requête
GETpour lister les sauvegardes :GET https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backupsExécutez l'API de restauration : envoyez une requête
POSTà l'URIrestorede la sauvegarde.Restaurer une VM avec un seul disque :
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restoreCharge utile :
{ "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" } } ] } }Restaurer une VM avec plusieurs disques :
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restoreCharge utile :
{ "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
Utiliser la ressource google_backup_dr_restore_workload
Restaurer une VM avec un seul disque :
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" } } } }Restaurer une VM avec plusieurs disques :
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 clé Cloud Key Management Service qui protège la charge de travail source n'est pas disponible lors d'une opération de restauration, la restauration échoue par défaut. Dans ce cas, vous devez utiliser l'API ou Google Cloud CLI pour remplacer le paramètre de chiffrement en spécifiant une nouvelle clé CMEK ou en remplaçant le type de chiffrement par le chiffrement géré par Google pour la ressource restaurée.
Si la version de clé Cloud Key Management Service utilisée pour chiffrer les données dans le coffre-fort de sauvegarde est désactivée ou détruite, vous ne pourrez pas restaurer les données à partir de cette sauvegarde.
Guide Backup and DR pour Compute Engine
- Créer et gérer un plan de sauvegarde pour les sauvegardes dans le coffre-fort
- Vérifier les identifiants cloud
- Découvrir et protéger les instances Compute Engine
- Installer des images de sauvegarde de disque persistant Compute Engine
- Restaurer une instance Compute Engine
- Importer des images d'instantanés de disque persistant