En esta página se describe cómo proteger las instancias de Cloud SQL frente a eliminaciones accidentales.
Información general
La protección contra la eliminación de instancias te permite evitar que se eliminen instancias nuevas y ya creadas por error. Con la protección contra la eliminación de instancias, puede proteger las instancias que sean importantes para sus aplicaciones y servicios.
Puedes definir la opción de protección contra la eliminación al crear una instancia. Además, puedes definir esta opción en una instancia que ya tengas. En ambos casos, no se puede eliminar a nivel de instancia. De forma predeterminada, la opción de protección contra eliminación está inhabilitada, a menos que uses la consola de Google Cloud o Terraform para crear una instancia.
Cuando clonas una instancia, la nueva instancia recibe la opción de protección contra la eliminación (habilitada o inhabilitada) de la instancia de origen.
Planificar la protección contra la eliminación
Si tienes previsto crear una instancia, decide si quieres protegerla contra la eliminación accidental. Por ejemplo, una instancia crítica debe protegerse de esta forma.
También debes tener en cuenta si hay instancias que quieras proteger contra la eliminación accidental. Si tienes varias instancias que proteger, activa la opción en cada una de ellas.
Consideraciones sobre la protección contra eliminación de réplicas de lectura
Cuando creas una réplica de lectura, esta no hereda la configuración de protección contra eliminación de la instancia principal, sino que mantiene su propia configuración. Sin embargo, puedes habilitar la protección contra eliminación en una réplica de lectura nueva o ya creada.
En el caso de las réplicas de lectura de Cloud SQL, la opción de protección contra eliminación funciona igual que en las instancias de Cloud SQL.
Confirmar los permisos o roles necesarios
Para definir la opción de protección contra eliminación, la cuenta de servicio de la instancia de Cloud SQL debe tener determinados permisos o roles de gestión de identidades y accesos.
Permisos o roles para crear una instancia
Al igual que en el caso de las operaciones relacionadas, la opción de protección contra la eliminación requiere el permiso cloudsql.instances.create
o el rol cloudsql.admin
. Por lo tanto, cuando creas una instancia, no se necesitan permisos adicionales para habilitar la protección contra eliminación.
Permisos o roles para editar una instancia
Al igual que en el caso de las operaciones relacionadas, los cambios en la protección contra eliminación requieren el permiso cloudsql.instances.update
o el rol cloudsql.editor
. Por lo tanto, cuando editas una instancia para protegerla contra la eliminación, no se necesitan permisos adicionales.
Planificar la eliminación de una instancia
Si tienes previsto eliminar una instancia, primero haz lo siguiente:
- Confirma que es seguro eliminar la instancia
- Confirma que la protección contra la eliminación está inhabilitada. Si es necesario, edita la instancia para inhabilitar la protección contra la eliminación.
Limitaciones de la protección contra la eliminación
La protección contra la eliminación de una instancia no impide lo siguiente:
- Detener la instancia
- Reiniciar la instancia
- Editar la instancia
- Eliminar una copia de seguridad
- Suspender la instancia debido a problemas de facturación
- Eliminar la instancia suspendida debido a problemas de facturación
- Eliminar la instancia debido a la eliminación de un proyecto
Configurar la protección frente a la eliminación en una instancia nueva
A continuación, se indican las formas de definir la opción de protección contra eliminación. De forma predeterminada, la opción de protección contra la eliminación está inhabilitada, a menos que utilices la Google Cloud consola o Terraform para crear una instancia.
Si la protección contra la eliminación está habilitada, no se podrá eliminar la instancia.
Consola
- Sigue los pasos para empezar a crear una instancia.
- En Personalizar tu instancia, haz clic en la flecha hacia abajo Mostrar opciones de configuración.
- En Protección de datos, comprueba que la casilla Habilitar protección contra la eliminación esté marcada.
- Selecciona otras opciones de configuración según sea necesario para tu instancia.
- Haz clic en Crear instancia.
gcloud
Para definir la protección contra eliminación durante la creación de la instancia, usa un comando similar al siguiente:
gcloud sql instances create [INSTANCE_NAME] \ --deletion-protection
REST v1
Para configurar la protección frente a la eliminación durante la creación de la instancia, especifica true
en el campo deletionProtection
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: tu ID de proyecto
- instance-id: ID de instancia deseado
- database-version: la versión de la base de datos
- region: región deseada
- machine-type: tipo de máquina deseado
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Cuerpo JSON de la solicitud:
{ "name": "instance-id", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "deletionProtectionEnabled": true } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-05-24T15:34:10.929Z", "operationType": "CREATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Para configurar la protección frente a la eliminación durante la creación de la instancia, especifica true
en el campo deletionProtection
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: tu ID de proyecto
- instance-id: ID de instancia deseado
- database-version: la versión de la base de datos
- region: región deseada
- machine-type: tipo de máquina deseado
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances
Cuerpo JSON de la solicitud:
{ "name": "instance-id", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "deletionProtectionEnabled": true } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-05-26T15:37:10.929Z", "operationType": "CREATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Configurar o quitar la protección frente a la eliminación en una instancia
A continuación, se indican las formas de editar una instancia para la protección contra eliminación. Si habilitas la opción, no se podrá eliminar la instancia en un intento posterior.
Consola
- Sigue los pasos para empezar a editar una instancia.
- Después de hacer clic en Editar, busca la sección Personalizar la instancia.
- En Protección de datos, marca o desmarca la casilla Habilitar protección contra eliminación.
- Edite otras opciones de configuración según sea necesario para su instancia.
- Haz clic en Guardar.
gcloud
Para habilitar la protección contra la eliminación al actualizar una instancia, usa un comando similar al siguiente:
gcloud sql instances patch [INSTANCE_NAME] \ --deletion-protection
Para inhabilitar la protección contra la eliminación al actualizar una instancia, usa un comando similar al siguiente:
gcloud sql instances patch [INSTANCE_NAME] \ --no-deletion-protection
REST v1
Para definir la protección contra la eliminación al actualizar una instancia, especifica true
en el campo deletionProtection
. Para quitar la protección contra eliminación, especifica false
en ese campo.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: tu ID de proyecto
- instance-id: ID de instancia deseado
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings": { "deletionProtectionEnabled": true } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-06-1T03:42:12.281Z", "operationType": "CREATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Para definir la protección contra la eliminación al actualizar una instancia, especifica true
en el campo deletionProtection
. Para quitar la protección contra eliminación, especifica false
en ese campo.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: tu ID de proyecto
- instance-id: ID de instancia deseado
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings": { "deletionProtectionEnabled": true } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-06-1T03:32:12.281Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }