Questo documento descrive come proteggere dall'eliminazione istanze VM specifiche impostando la proprietà deletionProtection
su una risorsa istanza. Per scoprire di più sulle istanze VM, consulta la documentazione relativa alle istanze.
Nell'ambito del tuo carico di lavoro potrebbero esserci alcune istanze VM fondamentali per l'esecuzione dell'applicazione o dei servizi, ad esempio un'istanza che esegue un SQL Server, 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 va a buon fine. Solo un utente a cui è stato assegnato un ruolo con 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 è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API. Google Cloud
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Vai
Per utilizzare gli Go esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Java
Per utilizzare gli Java esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Node.js
Per utilizzare gli Node.js esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
PHP
Per utilizzare gli PHP esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Python
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
-
Specifiche
La prevenzione dell'eliminazione non impedisce le seguenti azioni:
- Terminazione di un'istanza all'interno della VM
(ad esempio l'esecuzione del comando
shutdown
) - Arrestare un'istanza
- Reimpostazione di un'istanza
- Sospensione di un'istanza
- Istanze rimosse a causa di attività fraudolente e illecite dopo essere state rilevate da Google
- Istanze rimosse a causa della terminazione del progetto
- Terminazione di un'istanza all'interno della VM
(ad esempio l'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 istanze.
Autorizzazioni
Per eseguire questa attività, devi disporre delle seguenti autorizzazioni OPPURE di uno dei seguenti ruoli IAM per la 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 dall'eliminazione è disabilitata per l'istanza. Attiva la protezione da eliminazione seguendo le istruzioni riportate di seguito.
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 la procedura di creazione della VM.
Quando crei un'istanza VM, includi i flag --deletion-protection
o no-deletion-protection
. La protezione da eliminazione è disabilitata per impostazione predefinita, quindi per attivarla:
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
Nell'API, quando
crei un'istanza VM,
incorpora 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.
Vai alla pagina delle istanze VM.
Se richiesto, seleziona il progetto e fai clic su Continua.
Nella pagina Istanze VM, espandi il menu Colonne e attiva Protezione dall'eliminazione.
Viene visualizzata una nuova colonna con l'icona di protezione dall'eliminazione. Se per una VM è attivata la protezione dall'eliminazione, l'icona viene visualizzata accanto al nome dell'istanza.
In gcloud CLI, esegui il comando instances describe
e cerca il campo della protezione dall'eliminazione. Ad esempio:
gcloud compute instances describe example-instance | grep "deletionProtection"
Lo strumento restituisce il valore della proprietà deletionProtection
, impostata su true
o false
:
deletionProtection: false
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]
Attivare/disattivare la protezione da eliminazione per le istanze esistenti
Puoi attivare/disattivare la protezione da eliminazione per un'istanza esistente, indipendentemente dal suo stato corrente. Nello specifico, non è necessario arrestare l'istanza prima di poter attivare o disattivare la protezione da eliminazione.
Vai alla pagina delle 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.
In Protezione da eliminazione, seleziona la casella per attivare o deselezionala per disattivare la protezione da eliminazione.
Salva le modifiche.
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
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.
Passaggi successivi
- Scopri come arrestare un'istanza.
- Elimina le istanze se non ti servono più.