Empêcher la suppression d'une instance

Cette page explique comment protéger des instances Cloud SQL contre toute suppression accidentelle.

Présentation

La protection contre la suppression d'instances vous permet d'empêcher la suppression accidentelle d'instances existantes et nouvelles. Grâce à cette protection, vous pouvez protéger les instances importantes pour vos applications et services.

Vous pouvez définir l'option de protection contre la suppression lorsque vous créez une instance. Vous pouvez également définir cette option sur une instance existante. Dans les deux cas, la suppression est rendue impossible au niveau de l'instance. Par défaut, l'option de protection contre la suppression est désactivée, sauf si vous créez une instance à l'aide de la console Google Cloud ou de Terraform.

Lorsque vous clonez une instance, la nouvelle instance reçoit l'option de protection contre la suppression (activée ou désactivée) de l'instance source.

Planifier la protection contre la suppression

Si vous avez l'intention de créer une instance, décidez si vous souhaitez protéger ou non la nouvelle instance contre toute suppression accidentelle. Une instance critique, par exemple, doit être protégée de cette manière.

Déterminez également si vous avez des instances existantes que vous souhaitez protéger contre toute suppression accidentelle. Si vous souhaitez protéger plusieurs instances, définissez l'option sur chaque instance.

Considérer la protection contre la suppression pour les instances dupliquées avec accès en lecture

Lorsque vous créez une instance dupliquée avec accès en lecture, le paramètre de protection contre la suppression n'est pas transmis depuis l'instance principale. Ce paramètre reste indépendant. Toutefois, vous pouvez activer la protection contre la suppression sur une instance dupliquée avec accès en lecture nouvelle ou existante.

Pour les instances dupliquées avec accès en lecture Cloud SQL, l'option de protection contre la suppression fonctionne de la même manière que pour les instances Cloud SQL.

Confirmer les autorisations ou les rôles nécessaires

Pour définir l'option de protection contre la suppression, le compte de service de l'instance Cloud SQL doit disposer de certaines autorisations ou rôles IAM.

Autorisations ou rôles pour créer une instance

Comme pour les opérations associées, l'option de protection contre la suppression nécessite l'autorisation cloudsql.instances.create ou le rôle cloudsql.admin. Ainsi, lorsque vous créez une instance, aucune autorisation supplémentaire n'est nécessaire pour activer la protection contre la suppression.

Autorisations ou rôles pour modifier une instance

Comme pour les opérations associées, il est nécessaire de disposer de l'autorisation cloudsql.instances.update ou du rôle cloudsql.editor pour apporter des modifications à la protection contre la suppression. Ainsi, lorsque vous modifiez une instance pour la protection contre la suppression, aucune autorisation supplémentaire n'est nécessaire.

Planifier la suppression d'une instance

Si vous prévoyez de supprimer une instance, procédez comme suit :

  • Confirmez que vous pouvez supprimer l'instance sans risque.
  • Vérifiez que la protection contre la suppression est désactivée. Si nécessaire, modifiez l'instance pour désactiver la protection contre la suppression.

Limites de la protection contre la suppression

La protection contre la suppression sur une instance n'empêche pas les actions suivantes :

  • Arrêter l'instance
  • Redémarrer l'instance
  • Modifier l'instance
  • Supprimer une sauvegarde
  • Suspendre l'instance en raison de problèmes de facturation
  • Supprimer l'instance suspendue en raison de problèmes de facturation
  • Supprimer l'instance en raison d'une suppression de projet

Définir la protection contre la suppression sur une nouvelle instance

Voici les méthodes permettant de définir l'option de protection contre la suppression. Par défaut, l'option de protection contre la suppression est désactivée, sauf si vous créez une instance à l'aide de la console Google Cloud ou de Terraform.

Si la protection contre la suppression est activée, toute tentative de suppression de l'instance échoue.

Console

  1. Suivez les étapes pour commencer à créer une instance.
  2. Sous Personnaliser votre instance, cliquez sur la flèche du menu déroulant Afficher les options de configuration.
  3. Sous Protection des données, vérifiez que la case Activer la protection contre la suppression est cochée.
  4. Si nécessaire, sélectionnez d'autres options de configuration pour votre instance.
  5. Cliquez sur Créer une instance.

gcloud

Pour définir la protection contre la suppression lors de la création de l'instance, utilisez une commande semblable à celle-ci :

gcloud sql instances create [INSTANCE_NAME] \
    --deletion-protection

REST v1

Pour définir la protection contre la suppression lors de la création de l'instance, spécifiez true dans le champ deletionProtection.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID d'instance souhaité
  • database-version : version de la base de données.
  • region : région souhaitée
  • machine-type : type de machine souhaité

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances

Corps JSON de la requête :

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "deletionProtectionEnabled": true
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-05-24T15:34:10.929Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Pour définir la protection contre la suppression lors de la création de l'instance, spécifiez true dans le champ deletionProtection.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID d'instance souhaité
  • database-version : version de la base de données.
  • region : région souhaitée
  • machine-type : type de machine souhaité

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances

Corps JSON de la requête :

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "deletionProtectionEnabled": true
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-05-26T15:37:10.929Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
Pour découvrir comment est formée la requête sous-jacente à l'API REST pour cette tâche, consultez la page dédiée à la méthode "instances:insert" dans APIs Explorer.

Définir ou supprimer la protection contre la suppression sur une instance existante

Voici les méthodes permettant de modifier une instance pour définir ou supprimer la protection contre la suppression. Si vous activez cette option, toute tentative ultérieure de suppression de l'instance échouera.

Console

  1. Suivez les étapes pour commencer à modifier une instance.
  2. Après avoir cliqué sur Modifier, recherchez la section Personnaliser votre instance.
  3. Sous Protection des données, cochez ou décochez la case Activer la protection contre la suppression.
  4. Si nécessaire, modifiez d'autres options de configuration pour votre instance.
  5. Cliquez sur Enregistrer.

gcloud

Pour activer la protection contre la suppression lorsque vous mettez à jour une instance, utilisez une commande semblable à celle-ci :

gcloud sql instances patch [INSTANCE_NAME] \
    --deletion-protection

Pour désactiver la protection contre la suppression lorsque vous mettez à jour une instance, utilisez une commande semblable à celle-ci :

gcloud sql instances patch [INSTANCE_NAME] \
    --no-deletion-protection

REST v1

Pour définir la protection contre la suppression lorsque vous mettez à jour une instance, spécifiez true dans le champ deletionProtection. Pour supprimer la protection contre la suppression, spécifiez false dans ce champ.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID d'instance souhaité

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings": {
    "deletionProtectionEnabled": true
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-06-1T03:42:12.281Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Pour définir la protection contre la suppression lorsque vous mettez à jour une instance, spécifiez true dans le champ deletionProtection. Pour supprimer la protection contre la suppression, spécifiez false dans ce champ.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID d'instance souhaité

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings": {
    "deletionProtectionEnabled": true
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-06-1T03:32:12.281Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
Pour découvrir comment est formée la requête sous-jacente à l'API REST pour cette tâche, consultez la page dédiée à la méthode "instances:patch" dans APIs Explorer.