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 à la protection contre la suppression des instances, vous pouvez protéger les instances importantes pour vos applications et services.
Vous pouvez activer l'option de protection contre la suppression lorsque vous créez une instance. Vous pouvez également activer 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 Google Cloud console 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 avez plusieurs instances à protéger, activez l'option sur chacune d'elles.
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 activer l'option de protection contre la suppression, le compte de service associé à 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
Activer la protection contre la suppression sur une nouvelle instance
Voici les méthodes permettant d'activer 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 Google Cloud console ou de Terraform.
Si la protection contre la suppression est activée, toute tentative de suppression de l'instance échoue.
Console
- Suivez les étapes pour commencer à créer une instance .
- Dans la section Personnaliser votre instance, développez Afficher les options de configuration.
- Développez la section Protection des données.
- Dans la section Protection des données, vérifiez que la case Empêcher la suppression d'instance est cochée.
- Si nécessaire, sélectionnez d'autres options de configuration pour votre instance.
- Cliquez sur Créer une instance.
gcloud
Pour activer la protection contre la suppression lors de la création d'une instance, utilisez la
gcloud sql instances create
commande, comme suit :
gcloud sql instances create INSTANCE_NAME \ --deletion-protection
REST v1
Pour activer la protection contre la suppression lors de la création d'une 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 activer la protection contre la suppression lors de la création d'une 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"
}
Activer ou désactiver 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
- Suivez les étapes pour commencer à modifier une instance.
- Après avoir cliqué sur Modifier, recherchez la section Personnaliser votre instance et développez Afficher les options de configuration.
- Développez la section Protection des données.
- Dans la section Protection des données, cochez ou décochez la case Empêcher la suppression d'instance.
- Si nécessaire, modifiez d'autres options de configuration pour votre instance.
- Cliquez sur Enregistrer.
gcloud
Pour activer la protection contre la suppression lorsque vous mettez à jour une instance, utilisez la
gcloud sql instances patch
commande, comme suit :
gcloud sql instances patch INSTANCE_NAME \ --deletion-protection
Pour désactiver la protection contre la suppression lorsque vous mettez à jour une instance, utilisez la
gcloud sql instances patch
commande, comme suit :
gcloud sql instances patch INSTANCE_NAME \ --no-deletion-protection
REST v1
Pour activer 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 activer 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"
}