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
- Lee la documentación de Instancias.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:
Consola
Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.
gcloud
-
Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:
gcloud init
- Configura una región y una zona predeterminadas.
Go
Para usar las muestras de Go de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para usar las muestras de Java de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para usar las muestras de Node.js de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para usar las muestras de PHP de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para usar las muestras de Python de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:
gcloud init
-
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
En la consola de Google Cloud, ve a la página Crea una instancia.
Expande la sección Opciones avanzadas y sigue estos pasos:
- Expande la sección Administración.
- Selecciona la casilla de verificación Habilitar protección contra la eliminación
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:
gcloud compute instances create [INSTANCE_NAME] --no-deletion-protection
Go
Java
Node.js
Python
REST
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
.
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 el 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 gcloud CLI, 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
Go
Java
Node.js
Python
REST
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]
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 el 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 gcloud CLI, 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
:
gcloud compute instances update example-vm --deletion-protection
Go
Java
Node.js
Python
REST
En la API, realiza una solicitud POST
al método setDeletionProtection
con el parámetro de consulta deletionProtection
. 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 false
. No proporciones un cuerpo de solicitud con la solicitud.
¿Qué sigue?
- Aprende a detener una instancia.
- Borra tus instancias si ya no las necesitas.