Questa pagina descrive come proteggere le istanze Cloud SQL dall'eliminazione accidentale.
Panoramica
La protezione da eliminazione dell'istanza ti consente di impedire la rimozione accidentale esistenti e di quelle nuove. Con la protezione da eliminazione dell'istanza, puoi per salvaguardare le istanze importanti per le tue applicazioni e i tuoi servizi.
Puoi impostare l'opzione di protezione da eliminazione quando crei un'istanza. Inoltre, puoi impostare questa opzione su un'istanza esistente. In entrambi i casi, non è consentito l'eliminazione a livello di istanza. Per impostazione predefinita, la protezione da eliminazione è disabilitata a meno che non utilizzi la console Google Cloud o Terraform per creare in esecuzione in un'istanza Compute Engine.
Quando cloni un'istanza, la nuova istanza riceve la protezione da eliminazione (abilitata o disabilitata) dall'istanza di origine.
Pianificazione della protezione da eliminazione
Se prevedi di creare un'istanza, decidi se proteggere l'eliminazione accidentale della nuova istanza. Ad esempio, un'istanza critica devono essere protetti in questo modo.
Valuta anche se esistono già istanze da cui vuoi proteggere per eliminazione accidentale. Se ci sono più istanze da proteggere, imposta l'opzione su ciascuna istanza.
Valuta la protezione da eliminazione per le repliche di lettura
Quando crei una replica di lettura, questa non viene eliminata l'impostazione di protezione dell'istanza principale. questa impostazione rimane indipendente. Tuttavia, puoi abilitare la protezione da eliminazione su una replica di lettura nuova o esistente.
Per le repliche di lettura di Cloud SQL, l'opzione di protezione da eliminazione funziona allo stesso modo. come per le istanze Cloud SQL.
Conferma delle autorizzazioni o dei ruoli necessari
Per impostare l'opzione di protezione da eliminazione, l'account di servizio dell'istanza Cloud SQL devono avere alcune autorizzazioni o ruoli IAM.
Autorizzazioni o ruoli per la creazione di un'istanza
Come nel caso delle operazioni correlate, l'opzione di protezione da eliminazione richiede
l'autorizzazione cloudsql.instances.create
o il ruolo cloudsql.admin
. Pertanto,
quando crei un'istanza, non sono necessarie autorizzazioni aggiuntive per abilitare l'eliminazione.
protezione dei dati.
Autorizzazioni o ruoli per la modifica di un'istanza
Come nel caso delle operazioni correlate, le modifiche alla protezione da eliminazione richiedono
Autorizzazione cloudsql.instances.update
o ruolo cloudsql.editor
. Pertanto, quando
modifichi un'istanza per la protezione da eliminazione, non sono necessarie autorizzazioni aggiuntive.
Pianificazione dell'eliminazione delle istanze
Se prevedi di eliminare un'istanza, segui prima questi passaggi:
- Conferma che puoi eliminare l'istanza in sicurezza
- Conferma che la protezione da eliminazione sia disabilitata. se necessario, modifica per disabilitare la protezione da eliminazione
Limitazioni della protezione da eliminazione
La protezione dall'eliminazione su un'istanza non impedisce:
- Arresto dell'istanza
- Riavvio dell'istanza
- Modifica dell'istanza
- Eliminazione di un backup
- Sospensione dell'istanza a causa di problemi di fatturazione
- Eliminazione dell'istanza sospesa a causa di problemi di fatturazione
- Eliminazione dell'istanza a causa dell'eliminazione di un progetto
Impostazione della protezione da eliminazione su una nuova istanza
Di seguito sono riportati i modi per impostare l'opzione di protezione dall'eliminazione. Per impostazione predefinita, L'opzione di protezione da eliminazione è disabilitata a meno che non utilizzi la console Google Cloud. o Terraform per creare un'istanza.
Se è abilitata la protezione da eliminazione, un tentativo di eliminazione dell'istanza non va a buon fine.
Console
- Segui i passaggi per iniziare sulla creazione di un'istanza.
- In Personalizza la tua istanza, fai clic sul Freccia del menu a discesa Mostra opzioni di configurazione.
- Nella sezione Protezione dei dati, verifica che le La casella di controllo Abilita la protezione da eliminazione sia selezionata.
- Se necessario per la tua istanza, seleziona Altro opzioni di configurazione.
- Fai clic su Crea istanza.
gcloud
Per impostare la protezione da eliminazione durante la creazione dell'istanza, utilizza un comando simile a le seguenti:
gcloud sql instances create [INSTANCE_NAME] \ --deletion-protection
REST v1
Per impostare la protezione da eliminazione durante la creazione dell'istanza, specifica
true
nel campo deletionProtection
.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: il tuo ID progetto
- instance-id: ID istanza desiderato
- database-version: la versione del database
- region: regione desiderata
- machine-type: tipo di macchina desiderato
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Corpo JSON della richiesta:
{ "name": "instance-id", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "deletionProtectionEnabled": true } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per impostare la protezione da eliminazione durante la creazione dell'istanza, specifica
true
nel campo deletionProtection
.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: il tuo ID progetto
- instance-id: ID istanza desiderato
- database-version: la versione del database
- region: regione desiderata
- machine-type: tipo di macchina desiderato
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances
Corpo JSON della richiesta:
{ "name": "instance-id", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "deletionProtectionEnabled": true } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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" }
Impostazione o rimozione della protezione da eliminazione su un'istanza esistente
Di seguito sono riportati i modi per modificare un'istanza per la protezione dall'eliminazione. Se abilitare l'opzione, un tentativo successivo di eliminare l'istanza ha esito negativo.
Console
- Segui i passaggi per iniziare modificare un'istanza.
- Dopo aver fatto clic su Modifica, individua il Personalizza la tua istanza.
- Nella sezione Protezione dei dati, seleziona o deseleziona la casella Casella di controllo Abilita la protezione da eliminazione.
- Se necessario per la tua istanza, modifica l'altro opzioni di configurazione.
- Fai clic su Salva.
gcloud
Per abilitare la protezione dall'eliminazione quando aggiorni un'istanza, utilizza un comando simile al seguente:
gcloud sql instances patch [INSTANCE_NAME] \ --deletion-protection
Per disabilitare la protezione dall'eliminazione quando aggiorni un'istanza, utilizza un comando simile al seguente:
gcloud sql instances patch [INSTANCE_NAME] \ --no-deletion-protection
REST v1
Per impostare la protezione da eliminazione quando aggiorni un'istanza, specifica
true
nel campo deletionProtection
. Per rimuovere
protezione da eliminazione, specifica false
in questo campo.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: il tuo ID progetto
- instance-id: ID istanza desiderato
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Corpo JSON della richiesta:
{ "settings": { "deletionProtectionEnabled": true } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per impostare la protezione da eliminazione quando aggiorni un'istanza, specifica
true
nel campo deletionProtection
. Per rimuovere
protezione da eliminazione, specifica false
in questo campo.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: il tuo ID progetto
- instance-id: ID istanza desiderato
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/instance-id
Corpo JSON della richiesta:
{ "settings": { "deletionProtectionEnabled": true } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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" }