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 permet 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 en sélectionnant l'une des options suivantes :
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 Google Cloud et aux API, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
- Définissez une région et une zone par défaut.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez 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 la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez 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 la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez 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 la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez 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 la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .
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.admincompute.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 la console Google Cloud .
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.
Pour désactiver la protection contre la suppression lors de la création :
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 la protection contre la suppression 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 la protection contre la suppression.
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.