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 Google Cloud services et aux API.
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:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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.
Pour en savoir plus, consultez Set up authentication for a local development environment.
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.
Pour en savoir plus, consultez Set up authentication for a local development environment.
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.
Pour en savoir plus, consultez Set up authentication for a local development environment.
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.
Pour en savoir plus, consultez Set up authentication for a local development environment.
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.
Pour en savoir plus, consultez Set up authentication for a local development environment.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
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.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.
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.
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
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.
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.
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
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é.
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.
À 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
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.