Questa pagina descrive come proteggere le istanze Cloud SQL da eliminazioni accidentali.
Panoramica
La protezione da eliminazione delle istanze consente di impedire la rimozione accidentale di istanze esistenti e nuove. Utilizzando la protezione da eliminazione delle istanze, puoi proteggere 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, l'eliminazione viene impedita a livello di istanza. Per impostazione predefinita, l'opzione di protezione da eliminazione è disabilitata, a meno che tu non utilizzi la Google Cloud console o Terraform per creare un' istanza.
Quando cloni un'istanza, la nuova istanza riceve l'opzione di protezione da eliminazione (abilitata o disabilitata) dall'istanza di origine.
Pianificare la protezione da eliminazione
Se prevedi di creare un'istanza, decidi se vuoi proteggere la nuova istanza da eliminazioni accidentali. Ad esempio, un'istanza critica deve essere protetta in questo modo.
Valuta anche se esistono istanze esistenti che vuoi proteggere da eliminazioni accidentali. Se devi proteggere più istanze, imposta l'opzione su ogni istanza.
Considerare la protezione da eliminazione per le repliche di lettura
Quando crei una replica di lettura, questa non riceve un'impostazione di protezione da eliminazione dall'istanza primaria; questa impostazione rimane indipendente. Tuttavia, puoi abilitare la protezione da eliminazione su una replica di lettura nuova o esistente.
Per le repliche di lettura Cloud SQL, l'opzione di protezione da eliminazione funziona allo stesso modo delle istanze Cloud SQL.
Confermare le autorizzazioni o i ruoli necessari
Per impostare l'opzione di protezione da eliminazione, l'account di servizio dell'istanza Cloud SQL deve disporre di determinate 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 la protezione da eliminazione.
Autorizzazioni o ruoli per la modifica di un'istanza
Come nel caso delle operazioni correlate, le modifiche alla protezione da eliminazione richiedono l'autorizzazione cloudsql.instances.update o il ruolo cloudsql.editor. Pertanto, quando modifichi un'istanza per la protezione da eliminazione, non sono necessarie autorizzazioni aggiuntive.
Pianificare l'eliminazione dell'istanza
Se prevedi di eliminare un'istanza, esegui prima le seguenti operazioni:
- Verifica che sia sicuro eliminare l'istanza
- Verifica che la protezione da eliminazione sia disabilitata; se necessario, modifica l'istanza per disabilitare la protezione da eliminazione
Limitazioni della protezione da eliminazione
La protezione da 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
Impostare la protezione da eliminazione su una nuova istanza
Di seguito sono riportati i modi per impostare l'opzione di protezione da eliminazione. Per impostazione predefinita, l'opzione di protezione da eliminazione è disabilitata, a meno che tu non utilizzi la Google Cloud console o Terraform per creare un'istanza.
Se la protezione da eliminazione è abilitata, un tentativo di eliminare l'istanza non riesce.
Console
- Segui i passaggi per iniziare a creare un'istanza.
- In Personalizza la tua istanza, fai clic sulla freccia del menu a discesa Mostra opzioni di configurazione.
- In Protezione dei dati, verifica che la Abilita protezione da eliminazione casella di controllo sia selezionata.
- Se necessario per l'istanza, seleziona altre opzioni di configurazione.
- Fai clic su Crea istanza.
gcloud
Per impostare la protezione da eliminazione durante la creazione dell'istanza, utilizza un comando simile al seguente:
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, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'ID istanza desiderato
- database-version: la versione del database
- region: la regione desiderata
- machine-type: il 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 di queste 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, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'ID istanza desiderato
- database-version: la versione del database
- region: la regione desiderata
- machine-type: il 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 di queste 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"
}
Impostare o rimuovere la protezione da eliminazione su un'istanza esistente
Di seguito sono riportati i modi per modificare un'istanza per la protezione da eliminazione. Se abiliti l'opzione, un tentativo successivo di eliminare l'istanza non riesce.
Console
- Segui i passaggi per iniziare a modificare un'istanza.
- Dopo aver fatto clic su Modifica, individua la Personalizza la tua istanza sezione.
- In Protezione dei dati, seleziona o deseleziona la casella di controllo Abilita protezione da eliminazione.
- Se necessario per l'istanza, modifica altre opzioni di configurazione.
- Fai clic su Salva.
gcloud
Per abilitare la protezione da eliminazione quando aggiorni un'istanza, utilizza un comando simile al seguente:
gcloud sql instances patch [INSTANCE_NAME] \ --deletion-protection
Per disabilitare la protezione da 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 la protezione da eliminazione, specifica false in questo campo.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'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 di queste 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 la protezione da eliminazione, specifica false in questo campo.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'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 di queste 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"
}