En este documento, se describe cómo proteger instancias de VM específicas contra la eliminación mediante la configuración de la propiedad deletionProtection
en un recurso de instancia. Para obtener más información sobre las instancias de VM, lee la documentación de instancias.
Como parte de tu carga de trabajo, puede haber ciertas instancias de VM que sean críticas para ejecutar tu aplicación o servicios, como una instancia que ejecuta un servidor SQL, un servidor utilizado como administrador de licencias, etcétera. Es posible que estas instancias de VM deban permanecer en ejecución de forma indefinida, por lo que necesitas una forma de proteger estas VM para que no se borren.
Mediante la configuración de la marca deletionProtection
, se puede proteger una instancia de VM contra la eliminación por error. Si un usuario intenta borrar una instancia de VM para la que estableciste la marca deletionProtection
, la solicitud falla. Solo un usuario al que se le otorgó una función con el permiso compute.instances.create
puede restablecer la marca para permitir que se borre el recurso.
Antes de comenzar
- Si deseas usar los ejemplos de línea de comandos en esta guía, haz lo siguiente:
- Instala la herramienta de línea de comandos de gcloud o actualízala a la última versión.
- Configura una región y una zona predeterminadas.
- Si deseas usar los ejemplos de API de esta guía, configura el acceso a la API.
- Lee la documentación de Instancias.
Especificaciones
La prevención de eliminaciones no evita las siguientes acciones:
- Terminar una instancia desde dentro de la VM (como ejecutar el comando
shutdown
) - Detener una instancia
- Restablecer una instancia
- Suspender una instancia
- Quitar las instancias debido a fraude y abuso después de que Google lo detecte
- Quitar las instancias debido a la terminación del proyecto
- Terminar una instancia desde dentro de la VM (como ejecutar el comando
La protección contra la eliminación se puede aplicar tanto a las VM normales como a las VM interrumpibles.
La protección contra la eliminación no se puede aplicar a las VM que forman parte de un grupo de instancias administrado, pero se puede aplicar a instancias que forman parte de grupos de instancias no administrados.
No se puede especificar la prevención de eliminación en las plantillas de instancias.
Permisos
Para realizar esta tarea, debes tener los siguientes permisos O una de las siguientes funciones de IAM en el recurso.
Permisos
compute.instances.create
Funciones
compute.admin
compute.instanceAdmin.v1
Configura la protección contra la eliminación durante la creación de instancias
De manera predeterminada, la protección contra la eliminación está inhabilitada para tu instancia. Habilita la protección contra la eliminación con las siguientes instrucciones.
Console
- Ve a la página Instancias de VM
- Si se te solicita, selecciona el proyecto y haz clic en Continuar.
- Haz clic en el botón Crear instancia.
- Expande la sección Administración, seguridad, discos, herramientas de redes, instancia única.
En Administración, activa o desactiva la casilla de verificación Habilitar protección contra la eliminación (Enable deletion protection).
Continúa con el proceso de creación de VM.
gcloud
Cuando creas una instancia de VM, incluye las marcas --deletion-protection
o no-deletion-protection
. La protección contra la eliminación está inhabilitada de manera predeterminada; para habilitarla, usa el siguiente código:
gcloud compute instances create [INSTANCE_NAME] --deletion-protection
donde [INSTANCE_NAME]
es el nombre de la instancia deseada.
Para inhabilitar la protección contra la eliminación durante la creación, agrega la marca correspondiente:
gcloud compute instances create [INSTANCE_NAME] --no-deletion-protection
API
En la API, cuando crees una instancia de VM, incluye la propiedad deletionProtection
en el cuerpo de tu solicitud. Por ejemplo:
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
"name": "[INSTANCE_NAME]",
"deletionProtection": "true",
...
}
Para inhabilitar la protección contra la eliminación, establece deletionProtection
en false
.
Activa o desactiva la protección contra la eliminación en instancias existentes
Puedes activar o desactivar la protección contra la eliminación para una instancia existente, sin importar el estado actual de la instancia. Específicamente, no tienes que detener la instancia antes de poder habilitar o inhabilitar la protección contra la eliminación.
Console
- Ve a la página Instancias de VM
- Si se te solicita, selecciona tu proyecto y haz clic en Continuar.
- Haz clic en el nombre de la instancia para la que deseas activar o desactivar la protección contra la eliminación. Se mostrará la página de detalles de la instancia.
En la página de detalles de la instancia, completa los siguientes pasos:
- Haz clic en el botón Editar en la parte superior de la página.
En Protección contra la eliminación (Deletion protection), marca la casilla si quieres habilitar la protección contra la eliminación o desmárcala si quieres inhabilitar la función.
Guarda los cambios.
gcloud
Con la herramienta de gcloud
, ejecuta el comando update
con la marca --deletion-protection
o --no-deletion-protection
:
gcloud compute instances update [INSTANCE_NAME] \
[--deletion-protection | --no-deletion-protection]
Por ejemplo, a fin de habilitar la protección contra la eliminación para una instancia llamada example-vm
, usa este código:
gcloud compute instances update example-vm --deletion-protection
API
En la API, realiza una solicitud POST
al método setDeletionProtection
con el parámetro de consulta delectionProtection
. Por ejemplo:
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setDeletionProtection?deletionProtection=true
Para inhabilitar la protección contra la eliminación, establece deletionProtection
en falso. No proporciones un cuerpo de solicitud con la solicitud.
Determina si una instancia tiene habilitada la protección contra la eliminación
Puedes determinar si una instancia tiene habilitada la protección contra la eliminación en gcloud tool
o en la API.
Console
- Ve a la página Instancias de VM
- Si se te solicita, selecciona tu proyecto y haz clic en Continuar.
En la página Instancias de VM, despliega el menú Columnas y habilita Protección contra la eliminación (Deletion protection).
Aparece una columna nueva con el ícono de protección contra la eliminación. Si una VM tiene habilitada la protección contra la eliminación, el ícono aparece junto al nombre de la instancia.
gcloud
En la herramienta de gcloud
, ejecuta el comando instances describe
y busca el campo de protección contra la eliminación. Por ejemplo:
gcloud compute instances describe example-instance | grep "deletionProtection"
La herramienta muestra el valor de la propiedad deletionProtection
, ya sea establecido en true
o false
:
deletionProtection: false
API
En la API, haz una solicitud GET
y busca el campo deletionProtection
:
GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]
¿Qué sigue?
- Aprende a detener una instancia.
- Borra tus instancias si ya no las necesitas.