Questo documento descrive come proteggere istanze VM specifiche dall'eliminazione
impostando la proprietà deletionProtection su una risorsa Istanza. Per saperne di più sulle istanze VM, consulta la documentazione relativa alle istanze.
Nell'ambito del tuo workload, potrebbero esserci alcune istanze VM fondamentali per l'esecuzione dell'applicazione o dei servizi, ad esempio un'istanza che esegue un server SQL, un server utilizzato come gestore delle licenze e così via. Queste istanze VM potrebbero dover rimanere in esecuzione a tempo indeterminato, quindi devi trovare 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 relativa alle istanze.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Go
Per utilizzare gli esempi di Go in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per utilizzare gli esempi Java in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per utilizzare gli esempi di Node.js in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per utilizzare gli esempi di PHP in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per utilizzare gli esempi di Python in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, 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, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Specifiche
La prevenzione dell'eliminazione non impedisce le seguenti azioni:
- Terminazione di un'istanza all'interno della VM
(ad esempio, esecuzione del comando
shutdown) - Arresto di un'istanza
- Reimpostazione di un'istanza
- Sospensione di un'istanza
- Istanze rimosse a causa di frodi e abusi dopo essere state rilevate da Google
- Istanze in fase di rimozione a causa della chiusura del progetto
- Terminazione di un'istanza all'interno della VM
(ad esempio, esecuzione del comando
La protezione dall'eliminazione può essere applicata sia alle VM normali che a quelle prerilasciabili.
La protezione dall'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 disporre delle seguenti autorizzazioni O di uno dei seguenti ruoli IAM sulla risorsa.
Autorizzazioni
compute.instances.create
Ruoli
compute.admincompute.instanceAdmin.v1
Impostazione della protezione da eliminazione durante la creazione dell'istanza
Per impostazione predefinita, la protezione da eliminazione è disattivata per la tua istanza. Attiva la protezione dall'eliminazione seguendo le istruzioni riportate di seguito.
Console
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Espandi la sezione Opzioni avanzate e segui questi passaggi:
- 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 abilitarla:
gcloud compute instances create [INSTANCE_NAME] --deletion-protection
dove [INSTANCE_NAME] è il nome dell'istanza desiderata.
Per disattivare la protezione da 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 da eliminazione, imposta deletionProtection su false.
Determinare se per un'istanza è abilitata la protezione da eliminazione
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, apri il menu Colonne e attiva Protezione dall'eliminazione.
Viene visualizzata una nuova colonna con l'icona di protezione dall'eliminazione. Se per una VM è abilitata la protezione dall'eliminazione, l'icona viene visualizzata accanto al nome dell'istanza.
gcloud
In gcloud CLI, esegui il comando instances describe e cerca
il campo di protezione dall'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, invia 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 dall'eliminazione per le istanze esistenti
Puoi attivare o disattivare la protezione da eliminazione per un'istanza esistente, indipendentemente dallo stato attuale dell'istanza. In particolare, non devi arrestare l'istanza prima di poter attivare o disattivare 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.
Nella pagina dei dettagli dell'istanza, completa i seguenti passaggi:
- Fai clic sul pulsante Modifica nella parte superiore della pagina.
Nella sezione Protezione da eliminazione, seleziona la casella per attivare la protezione da eliminazione o deselezionala per disattivarla.
Salva le modifiche.
gcloud
Utilizzando 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 attivare 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 da eliminazione, imposta deletionProtection su false. Non
fornire un corpo della richiesta con la richiesta.
Passaggi successivi
- Scopri come arrestare un'istanza.
- Elimina le istanze se non ti servono più.