Ce document décrit comment protéger des instances de VM spécifiques contre la suppression en définissant la propriété deletionProtection
sur une ressource Instance. Pour en savoir plus sur les instances de VM, consultez la documentation sur les instances.
Dans le cadre de votre charge de travail, certaines instances de VM peuvent s'avérer critiques pour l'exécution de votre application ou de vos services. Il peut par exemple s'agir d'une instance exécutant un serveur SQL, d'un serveur utilisé comme gestionnaire de licences, etc. Ces instances de VM doivent pouvoir continuer à s'exécuter indéfiniment. C'est pourquoi vous avez besoin d'un moyen de les protéger contre la suppression.
Vous pouvez protéger une instance de VM contre une suppression accidentelle en définissant l'option deletionProtection
. Si un utilisateur tente de supprimer une instance de VM sur laquelle vous avez défini l'option deletionProtection
, la requête échoue. Seul un utilisateur détenant un rôle associé à l'autorisation compute.instances.create
peut réinitialiser l'option et permettre la suppression de la ressource.
Avant de commencer
- Consultez la documentation relative aux instances.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :
gcloud init
- Définissez une région et une zone par défaut.
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
Node.js
Pour utiliser les exemples Node.js de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
PHP
Pour utiliser les exemples PHP de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :
gcloud init
-
Spécifications
La protection contre la suppression n'empêche pas les actions suivantes :
- L'interruption d'une instance depuis la VM (à l'aide de la commande
shutdown
, par exemple) - L'arrêt d'une instance
- La réinitialisation d'une instance
- La suspension d'une instance
- La suppression d'une instance en raison d'une fraude ou d'un abus détecté par Google
- La suppression d'une instance à la suite d'un arrêt du projet
- L'interruption d'une instance depuis la VM (à l'aide de la commande
La protection contre la suppression peut être appliquée à la fois aux VM classiques et préemptives.
La protection contre la suppression ne peut pas être appliquée aux VM appartenant à un groupe d'instances géré, mais elle peut être appliquée à des instances de groupes d'instances non gérés.
La protection contre la suppression ne peut pas être spécifiée dans des modèles d'instance.
Autorisations
Pour effectuer cette tâche, vous devez disposer des autorisations suivantes OU détenir l'un des rôles IAM suivants sur la ressource.
Autorisations
compute.instances.create
Rôles
compute.admin
compute.instanceAdmin.v1
Définir la protection contre la suppression lors de la création de l'instance
Par défaut, la protection contre la suppression est désactivée pour votre instance. Suivez les instructions ci-dessous pour l'activer.
Console
Accédez à la page Créer une instance dans Google Cloud Console.
Développez la section Options avancées et procédez comme suit :
- Développez la section Gestion.
- Cochez la case Activer la protection contre la suppression.
Poursuivez le processus de création de la VM.
gcloud
Lors de la création d'une instance de VM, incluez les options --deletion-protection
ou no-deletion-protection
. La protection contre la suppression est désactivée par défaut. Exécutez la commande suivante pour l'activer :
gcloud compute instances create [INSTANCE_NAME] --deletion-protection
où [INSTANCE_NAME]
est le nom de l'instance souhaitée.
Ou exécutez la commande ci-dessous pour la désactiver :
gcloud compute instances create [INSTANCE_NAME] --no-deletion-protection
Go
Java
Node.js
Python
REST
Lorsque vous créez une instance de VM à partir de l'API, spécifiez la propriété deletionProtection
dans le corps de votre requête. Exemple :
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
"name": "[INSTANCE_NAME]",
"deletionProtection": "true",
...
}
Pour désactiver la protection contre la suppression, définissez deletionProtection
sur false
.
Vérifier si une instance est protégée contre la suppression
Vous pouvez vérifier si une instance est protégée contre la suppression à l'aide de gcloud tool
ou à partir de l'API.
Console
Accédez à la page des instances de VM.
Si vous y êtes invité(e), sélectionnez votre projet et cliquez sur Continuer.
Sur la page Instances de VM, cliquez sur le menu déroulant Colonnes et activez l'option Deletion protection (Protection contre la suppression).
Une nouvelle colonne contenant l'icône de protection contre la suppression apparaît. Si cette fonctionnalité est activée sur une VM, l'icône apparaît à côté du nom de l'instance.
gcloud
Dans gcloud CLI, exécutez la commande instances describe
en recherchant le champ de protection contre la suppression. Exemple :
gcloud compute instances describe example-instance | grep "deletionProtection"
L'outil renvoie la valeur de la propriété deletionProtection
, définie sur true
ou false
:
deletionProtection: false
Go
Java
Node.js
Python
REST
Dans l'API, exécutez une requête GET
et recherchez le champ deletionProtection
:
GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]
Activer ou désactiver la protection contre la suppression pour les instances existantes
Vous pouvez activer ou désactiver la protection contre la suppression pour une instance existante, quel que soit son état actuel. Plus précisément, vous n'avez pas besoin d'arrêter l'instance pour pouvoir activer ou désactiver cette fonctionnalité.
Console
Accédez à la page des instances de VM.
Si vous y êtes invité(e), sélectionnez votre projet et cliquez sur Continuer.
Cliquez sur le nom de l'instance pour laquelle vous souhaitez activer ou désactiver la protection contre la suppression. La page de détails de l'instance s'affiche.
Sur la page des détails de l'instance, procédez comme suit :
- Cliquez sur le bouton Modifier en haut de la page.
Sous Deletion Protection (Protection contre la suppression), cochez ou décochez la case afin d'activer ou de désactiver la protection contre la suppression.
Enregistrez les modifications.
gcloud
À l'aide de gcloud CLI, exécutez la commande update
en spécifiant l'option --deletion-protection
ou --no-deletion-protection
:
gcloud compute instances update [INSTANCE_NAME] \
[--deletion-protection | --no-deletion-protection]
Si vous souhaitez par exemple désactiver la protection contre la suppression pour une instance appelée example-vm
, utilisez la commande suivante :
gcloud compute instances update example-vm --deletion-protection
Go
Java
Node.js
Python
REST
Dans l'API, envoyez une requête POST
à la méthode setDeletionProtection
avec le paramètre de requête deletionProtection
. Exemple :
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setDeletionProtection?deletionProtection=true
Pour désactiver la protection contre la suppression, définissez deletionProtection
sur false
. N'ajoutez pas de corps à votre requête.
Étapes suivantes
- Découvrez comment arrêter une instance.
- Supprimez vos instances si vous n'en avez plus besoin.