Questo documento descrive come proteggere l'eliminazione di istanze VM specifiche impostando la proprietà deletionProtection
su una risorsa Istanza. Per saperne di più sulle istanze VM, consulta la documentazione relativa alle istanze.
Come parte del carico di lavoro, potrebbero esserci alcune istanze VM fondamentali per l'esecuzione dell'applicazione o dei servizi, come un'istanza che esegue un server SQL, un server utilizzato come gestore delle licenze e così via. È possibile che queste istanze VM debbano rimanere in esecuzione a tempo indeterminato, quindi hai bisogno di un modo per proteggerle dall'eliminazione.
Se imposti il flag deletionProtection
, un'istanza VM può essere protetta dall'eliminazione accidentale. Se un utente tenta di eliminare un'istanza VM per la quale hai impostato il flag deletionProtection
, la richiesta non riesce. Solo un utente a cui è stato concesso un ruolo con l'autorizzazione compute.instances.create
può reimpostare il flag per consentire l'eliminazione della risorsa.
Prima di iniziare
- Leggi la documentazione sulle istanze.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
Go
Per utilizzare gli esempi Go in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per utilizzare gli esempi Java in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per utilizzare gli esempi Node.js in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per utilizzare gli esempi PHP in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per utilizzare gli esempi Python in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Specifiche
La prevenzione dell'eliminazione non impedisce le seguenti azioni:
- Terminare un'istanza all'interno della VM (ad esempio l'esecuzione del comando
shutdown
) - Arresto di un'istanza
- Reimpostazione di un'istanza
- Sospensione di un'istanza
- Istanze rimosse a causa di attività fraudolente e abusi dopo essere state rilevate da Google
- Istanze rimosse a causa della terminazione del progetto
- Terminare un'istanza all'interno della VM (ad esempio l'esecuzione del comando
La protezione dall'eliminazione può essere applicata sia alle VM normali sia alle VM prerilasciabili.
La protezione da eliminazione non può essere applicata alle VM che fanno parte di un gruppo di istanze gestite, ma può essere applicata alle istanze che fanno parte di gruppi di istanze non gestite.
La prevenzione dell'eliminazione non può essere specificata nei modelli di istanza.
Autorizzazioni
Per eseguire questa attività, devi aver ricevuto le seguenti autorizzazioni OPPURE uno dei seguenti ruoli IAM nella risorsa.
Autorizzazioni
compute.instances.create
Ruoli
compute.admin
compute.instanceAdmin.v1
Impostazione della protezione da eliminazione durante la creazione dell'istanza
Per impostazione predefinita, la protezione da eliminazione è disabilitata per l'istanza. Abilita la protezione da eliminazione seguendo le istruzioni riportate di seguito.
Console
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Espandi la sezione Opzioni avanzate e procedi nel seguente modo:
- Espandi la sezione Gestione.
- Seleziona la casella di controllo Attiva la protezione da eliminazione.
Continua con il processo di creazione della VM.
gcloud
Quando crei un'istanza VM, includi i flag --deletion-protection
o no-deletion-protection
. La protezione da eliminazione è disabilitata per impostazione predefinita, quindi per abilitare la protezione da eliminazione:
gcloud compute instances create [INSTANCE_NAME] --deletion-protection
dove [INSTANCE_NAME]
è il nome dell'istanza desiderata.
Per disabilitare la protezione dall'eliminazione durante la creazione:
gcloud compute instances create [INSTANCE_NAME] --no-deletion-protection
Go
Java
Node.js
Python
REST
Nell'API, quando crei un'istanza VM, includi la proprietà deletionProtection
nel corpo della richiesta. Ad esempio:
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
"name": "[INSTANCE_NAME]",
"deletionProtection": "true",
...
}
Per disattivare la protezione dall'eliminazione, imposta deletionProtection
su false
.
Determinazione dell'abilitazione della protezione da eliminazione per un'istanza
Puoi determinare se per un'istanza è abilitata la protezione da eliminazione in gcloud tool
o nell'API.
Console
Vai alla pagina Istanze VM.
Se richiesto, seleziona il progetto e fai clic su Continua.
Nella pagina Istanze VM, seleziona il menu Colonne e attiva Protezione da eliminazione.
Viene visualizzata una nuova colonna con l'icona della protezione da eliminazione. Se per una VM è abilitata la protezione da eliminazione, viene visualizzata l'icona accanto al nome dell'istanza.
gcloud
Nell'interfaccia alla gcloud CLI, esegui il comando instances describe
e cerca il campo di protezione da eliminazione. Ad esempio:
gcloud compute instances describe example-instance | grep "deletionProtection"
Lo strumento restituisce il valore della proprietà deletionProtection
, impostato su true
o false
:
deletionProtection: false
Go
Java
Node.js
Python
REST
Nell'API, effettua una richiesta GET
e cerca il campo deletionProtection
:
GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]
Attivazione/disattivazione della protezione da eliminazione per le istanze esistenti
Puoi attivare/disattivare la protezione da eliminazione per un'istanza esistente, indipendentemente dallo stato attuale dell'istanza. In particolare, non è necessario arrestare l'istanza prima di poter abilitare o disabilitare la protezione da eliminazione.
Console
Vai alla pagina Istanze VM.
Se richiesto, seleziona il progetto e fai clic su Continua.
Fai clic sul nome dell'istanza per la quale vuoi attivare/disattivare la protezione da eliminazione. Viene visualizzata la pagina dei dettagli dell'istanza.
Dalla pagina dei dettagli dell'istanza, completa i seguenti passaggi:
- Fai clic sul pulsante Modifica nella parte superiore della pagina.
In Protezione da eliminazione, seleziona la casella per attivare o deselezionare la casella per disabilitare la protezione da eliminazione.
Salva le modifiche.
gcloud
Utilizza gcloud CLI, esegui il comando update
con il flag --deletion-protection
o --no-deletion-protection
:
gcloud compute instances update [INSTANCE_NAME] \
[--deletion-protection | --no-deletion-protection]
Ad esempio, per abilitare la protezione da eliminazione per un'istanza denominata example-vm
:
gcloud compute instances update example-vm --deletion-protection
Go
Java
Node.js
Python
REST
Nell'API, invia una richiesta POST
al metodo setDeletionProtection
con il parametro di query deletionProtection
. Ad esempio:
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setDeletionProtection?deletionProtection=true
Per disattivare la protezione dall'eliminazione, imposta deletionProtection
su false
. Non
fornire il corpo della richiesta con la richiesta.
Passaggi successivi
- Scopri come arrestare un'istanza.
- Elimina le istanze se non ti servono più.