Crea copias de seguridad de instancias de Cloud SQL en un backup vault

En esta página, se describe cómo crear copias de seguridad de las instancias de Cloud SQL en un almacén de copias de seguridad, lo que proporciona inmutabilidad y retención forzosa.

En la consola de Google Cloud , puedes crear copias de seguridad de las instancias de Cloud SQL en un backup vault aplicando planes de copia de seguridad. Puedes crear copias de seguridad de cualquiera de estas dos maneras. Ambos métodos te permiten almacenar tus copias de seguridad de forma segura en una bóveda de copias de seguridad, lo que proporciona una forma confiable de recuperar tus instancias de Cloud SQL en caso de pérdida de datos o de otros eventos inesperados.

  • Copias de seguridad programadas: Crea copias de seguridad automáticas de las instancias de Cloud SQL en intervalos específicos, como diarios, semanales, mensuales o anuales.
  • Copias de seguridad a pedido. Puedes crear copias de seguridad a pedido cuando sea necesario. Las copias de seguridad a pedido son útiles para crear copias de seguridad antes de realizar cambios significativos en tus bases de datos o para la protección de datos ad hoc.

Antes de comenzar

  1. Habilita la API de Backup and DR en la ubicación de las instancias de Cloud SQL.

    Habilitar la API

  2. Crea una backup vault.

  3. Crea un plan de creación de copias de seguridad.

  4. Asigna roles y permisos de IAM al usuario de copia de seguridad.

  5. Otorga acceso al backup vault en el proyecto de Cloud SQL.

  6. Configura las Estadísticas de observabilidad en tu bucket para supervisar los trabajos de copia de seguridad de Backup and DR.

  7. Para las instancias habilitadas para CMEK: Si la instancia de Cloud SQL de origen está protegida con una clave de encriptación administrada por el cliente (CMEK), debes otorgar el rol de Identity and Access Management roles/cloudkms.cryptoKeyEncrypterDecrypter al agente de servicio de Backup and DR. Este permiso es obligatorio en la clave de Cloud Key Management Service que usa la instancia de Cloud SQL de origen.

    El agente de servicio de Backup and DR se encuentra en el proyecto en el que se encuentra la backup vault. Otorga este rol a la cuenta de servicio antes de intentar proteger las instancias de Cloud SQL con CMEK habilitadas.

Roles y permisos de IAM para el usuario de copia de seguridad

Para obtener los permisos que necesitas para configurar copias de seguridad programadas o ejecutar copias de seguridad a pedido, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto de almacén de copias de seguridad:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para configurar copias de seguridad programadas o ejecutar copias de seguridad a pedido. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para configurar copias de seguridad programadas o ejecutar copias de seguridad a pedido:

  • backupdr.backupPlans.list
  • backupdr.backupPlanAssociations.createForCloudSqlInstance
  • backupdr.backupPlanAssociations.fetchForCloudSqlInstance
  • backupdr.backupPlanAssociations.updateForCloudSqlInstance
  • backupdr.backupPlanAssociations.list
  • backupdr.backupPlanAssociations.getForCloudSqlInstance
  • backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance
  • backupdr.backupPlanAssociations.deleteForCloudSqlInstance
  • backupdr.backupPlans.useForCloudSqlInstance
  • backupdr.locations.list
  • backupdr.operations.get
  • cloudasset.assets.searchAllResources

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Permisos dinámicos necesarios para cada llamada a la API

En la siguiente tabla, se enumeran los permisos dinámicos necesarios para cada llamada a la API:

Recurso Acción que se realizará en el recurso Permisos necesarios para cada llamada a la API Proyecto al que se le asignará el permiso
Backup vault Crear una backup vault backupdr.backupVaults.create Proyecto del administrador
Borrar la backup vault backupdr.backupVaults.delete Proyecto del administrador
Actualiza la backup vault backupdr.backupVaults.update Proyecto del administrador
Enumera las backup vaults backupdr.backupVaults.list Proyecto del administrador
Obtén una backup vault backupdr.backupVaults.get Proyecto del administrador
Plan de creación de copias de seguridad Crear plan de copia de seguridad backupdr.backupPlans.create Proyecto del administrador
Borrar plan de copia de seguridad backupdr.backupPlans.delete Proyecto del administrador
Obtener plan de copia de seguridad backupdr.backupPlans.get Proyecto del administrador
Enumera los planes de copias de seguridad backupdr.backupPlans.list Proyecto del administrador
Actualiza el plan de copias de seguridad backupdr.backupPlans.update Proyecto del administrador
Obtén la revisión del plan de copias de seguridad backupdr.backupPlanRevisions.get Proyecto del administrador
Enumera las revisiones del plan de copias de seguridad backupdr.backupPlanRevisions.list Proyecto del administrador
Crea una revisión del plan de copia de seguridad backupdrproducer.backupPlanRevisions.create Proyecto del administrador
Borra la revisión del plan de copia de seguridad backupdrproducer.backupPlanRevisions.delete Proyecto del administrador
Asociaciones de planes de copia de seguridad Crea una asociación de plan de copia de seguridad cloudsql.instances.updateBackupDrConfig
backupdr.backupPlanAssociations.createForCloudSqlInstance
backupdr.backupPlans.useForCloudSqlInstance
Proyecto de carga de trabajo
Proyecto de carga de trabajo
Proyecto del administrador
Borra la asociación del plan de copias de seguridad backupdr.backupPlanAssociations.deleteForCloudSqlInstance
cloudsql.instances.updateBackupDrConfig
Proyecto de carga de trabajo
Proyecto de carga de trabajo
Activa una copia de seguridad a pedido en la asociación del plan de copia de seguridad backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance Proyecto de carga de trabajo
Obtén la asociación del plan de copia de seguridad backupdr.backupPlanAssociations.getForCloudSqlInstance Proyecto de carga de trabajo
Enumera las asociaciones de planes de copia de seguridad backupdr.backupPlanAssociations.list Proyecto de carga de trabajo
Recupera las asociaciones de planes de copia de seguridad backupdr.backupPlanAssociations.fetchForCloudSqlInstance Proyecto de carga de trabajo
Cambia las asociaciones de planes de copias de seguridad backupdr.backupPlanAssociations.updateForCloudSqlInstance Proyecto de carga de trabajo
Fuente de datos Obtén la fuente de datos backupdr.bvdataSources.get Proyecto del administrador
Enumera la fuente de datos backupdr.backupPlanAssociations.list Proyecto del administrador
Restablecimiento de la recuperación de un momento determinado backupdr.bvdataSources.useReadOnlyForCloudSqlInstance Proyecto del administrador
Copias de seguridad Obtener copia de seguridad backupdr.bvbackups.get Proyecto del administrador
Mostrar una lista de las copias de seguridad backupdr.bvbackups.list Proyecto del administrador
Recupera copias de seguridad backupdr.bvbackups.fetchForCloudSqlInstance Proyecto del administrador
Borrar copia de seguridad backupdr.bvbackups.delete Proyecto del administrador
Restaurar copia de seguridad backupdr.bvbackups.useReadOnlyForCloudSqlInstance Proyecto del administrador
Referencias de fuentes de datos Obtén la referencia de la fuente de datos backupdr.dataSourceReferences.getForCloudSqlInstance Proyecto de carga de trabajo
Enumera las referencias de fuentes de datos backupdr.dataSourceReferences.list Proyecto de carga de trabajo
Recupera referencias de fuentes de datos backupdr.dataSourceReferences.fetchForCloudSqlInstance Proyecto de carga de trabajo
Operaciones Mostrar lista de operaciones backupdr.operations.list Proyecto respectivo
Obtener operaciones backupdr.operations.get Proyecto respectivo

Otorga acceso a la backup vault en el proyecto de Cloud SQL

Para crear una copia de seguridad de una instancia de Cloud SQL en un proyecto diferente de donde se crea la backup vault, debes otorgar el rol de IAM de Operador de Cloud SQL de Backup and DR (roles/backupdr.cloudSqlOperator) al agente de servicio de la backup vault dentro del proyecto de Cloud SQL. Si el proyecto de backup vault en el que se almacenarán las copias de seguridad es diferente del proyecto de Cloud SQL, asigna el rol al agente de servicio de backup vault dentro del proyecto de Cloud SQL.

Para crear una copia de seguridad de una instancia de Cloud SQL en el mismo proyecto en el que se crea la backup vault, no es necesario otorgar ningún rol.

Para obtener información sobre cómo otorgar roles al agente de servicio de backup vault en el proyecto del que quieres crear una copia de seguridad, consulta Otorga un rol al agente de servicio.

Configura una copia de seguridad programada

Usa las siguientes instrucciones para configurar una copia de seguridad programada para las instancias de Cloud SQL.

Console

  1. En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.

    Ir a Copias de seguridad almacenadas en vault

  2. Haz clic en Programar copia de seguridad.

  3. En la lista Tipo de recurso, selecciona Cloud SQL.

  4. En la lista Proyecto, selecciona un proyecto en el que se encuentre la instancia de Cloud SQL.

  5. En la lista Región, selecciona la región en la que se encuentran tus instancias.

  6. En la lista Recursos, haz clic en Explorar. Elige la instancia de Cloud SQL de la que quieres crear una copia de seguridad y haz clic en Listo.

  7. Haz clic en Continuar.

  8. En la lista Plan de copia de seguridad, haz clic en Seleccionar.

  9. Elige un plan de copia de seguridad con el que quieras proteger las instancias de Cloud SQL.

  10. Haz clic en Listo.

  11. Revisa los detalles de la copia de seguridad y haz clic en Programar.

gcloud

  1. Crea un plan de copia de seguridad y una instancia de Cloud SQL.

  2. Configura una copia de seguridad programada con el comando gcloud backup-dr backup-plan-associations create:

      gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \
          --location=CSQL_REGION \
          --project=CSQL_PROJECT_ID \
          --resource=projects/CSQL_PROJECT_ID/instances/CSQL_INSTANCE_ID \
          --resource-type=sqladmin.googleapis.com/Instance \
          --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN
    

    Reemplaza lo siguiente:

    • BACKUP_PLAN_ASSOCIATION_NAME: Es el nombre de la asociación del plan de copia de seguridad.

    • CSQL_REGION: Es la región en la que se encuentran las instancias de Cloud SQL.

    • CSQL_PROJECT_ID: el nombre del proyecto en el que se encuentran las instancias de Cloud SQL.

    • CSQL_INSTANCE_ID: Es el ID de la instancia de Cloud SQL.

    • PROJECT_ID: Es el nombre del proyecto en el que existen los planes de copia de seguridad.

    • LOCATION: Es la ubicación de la instancia.

    • BACKUP_PLAN: Es el nombre del plan de copia de seguridad.

Terraform

Puedes usar un recurso de Terraform para configurar una copia de seguridad programada.


# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
# and Cloud SQL Instance (google_sql_database_instance).
resource "google_backup_dr_backup_plan_association" "csql_association" {
  provider                   = google-beta
  location                   = "us-central1"
  backup_plan_association_id = "my-csql-bpa"
  resource                   = "projects/${google_sql_database_instance.default.project}/instances/${google_sql_database_instance.default.name}"
  resource_type              = "sqladmin.googleapis.com/Instance"
  backup_plan                = google_backup_dr_backup_plan.csql_default.name
}

Cambia el plan de copia de seguridad asociado para una instancia de Cloud SQL

Puedes cambiar el plan de copia de seguridad que se aplica a una instancia de Cloud SQL por otro plan de copia de seguridad. El plan de copia de seguridad al que quieras cambiar debe cumplir con los siguientes criterios:

  • El plan de creación de copias de seguridad se encuentra en la misma backup vault.

  • El plan de copia de seguridad se encuentra en la misma región que la instancia de Cloud SQL.

Usa las siguientes instrucciones para cambiar el plan de copia de seguridad asociado con una instancia de Cloud SQL.

Console

  1. En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault de Backup and DR.

    Ir a Copias de seguridad almacenadas en vault

    En la página Copias de seguridad en la bóveda, solo se enumeran las instancias que tienen (o tenían) planes de copia de seguridad aplicados o sus copias de seguridad almacenadas en un backup vault dentro de un proyecto.

  2. Selecciona la fuente de datos que tendrá un plan diferente. En la página de detalles de la copia de seguridad o en el menú , selecciona Cambiar plan de copias de seguridad. En la ventana Selecciona un plan de copia de seguridad, solo se enumeran los planes de copia de seguridad válidos para esta instancia.

  3. Selecciona un plan de copia de seguridad y haz clic en Aplicar.

gcloud

  • Cambia el plan de copias de seguridad asignado.

      gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \
      --workload-project=INSTANCE_PROJECT_ID \
      --location=INSTANCE_REGION \
      --backup-plan=BACKUP_PLAN \
      --project=SELECTED_BACKUP_PLAN_PROJECT_ID
    

    Reemplaza lo siguiente:

    • BACKUP_PLAN_ASSOCIATION_NAME: Es el nombre del recurso de asociación del plan de copia de seguridad.

    • INSTANCE_PROJECT_ID: ID del proyecto de la instancia de Cloud SQL.

    • INSTANCE_REGION: Es la ubicación de la instancia de Cloud SQL.

    • BACKUP_PLAN: Es el nombre del plan de copia de seguridad al que cambiarás.

    • SELECTED_BACKUP_PLAN_PROJECT_ID: Es el ID del proyecto del plan de copia de seguridad seleccionado.

Enumera las instancias para las que se programaron copias de seguridad

Usa las siguientes instrucciones para enumerar las instancias de Cloud SQL para las que se programan las copias de seguridad.

Console

  1. En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.

    Ir a Copias de seguridad almacenadas en vault

  2. En la parte superior de la tabla, selecciona Filtrar tabla > Tipo de recurso. Selecciona Cloud SQL. Esto limita la visualización solo a las instancias de Cloud SQL que tienen planes de copias de seguridad aplicados y sus copias de seguridad almacenadas en una backup vault dentro de un proyecto.

gcloud

Enumera las instancias de Cloud SQL para las que se programaron copias de seguridad con el comando gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type:

  gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type sqladmin.googleapis.com/Instance \
  --location=LOCATION \
  --project=PROJECT_ID

Reemplaza lo siguiente:

  • LOCATION: Es la ubicación de las copias de seguridad programadas.

  • PROJECT_ID: el nombre del proyecto en el que se encuentran las instancias de Cloud SQL.

Copias de seguridad a pedido

Puedes iniciar una copia de seguridad a pedido para una instancia de Cloud SQL con un plan de copia de seguridad activando la regla de copia de seguridad que elijas para que se ejecute de inmediato. Por lo general, las copias de seguridad a pedido solo capturan los datos que cambiaron desde la última copia de seguridad incremental.

Cuando creas una copia de seguridad a pedido, puedes elegir una regla del plan de copia de seguridad asociado con la instancia de Cloud SQL. Esta regla determina cuándo se borra la copia de seguridad a pedido. Puedes verificar el estado del trabajo de copia de seguridad en la página Trabajos. Para obtener más información, consulta Supervisa los trabajos de copia de seguridad y restablecimiento en la consola de Google Cloud .

Crea una copia de seguridad según demanda

Usa las siguientes instrucciones para crear una copia de seguridad a pedido.

Console

  1. En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.

    Ir a Copias de seguridad almacenadas en vault

    En la página Copias de seguridad en la bóveda, solo se enumeran los recursos de datos que tienen planes de copia de seguridad aplicados y sus copias de seguridad almacenadas en una backup vault dentro de un proyecto.

  2. Selecciona el recurso del que quieres crear una copia de seguridad. En el menú o en la página de detalles del recurso, selecciona Crear copia de seguridad a pedido.

  3. En la ventana Crear una copia de seguridad a pedido, selecciona una regla de copia de seguridad para usar y haz clic en Crear.

  4. Para ver el estado del trabajo de copia de seguridad a pedido, haz clic en Notificaciones.

gcloud

  1. Crear una copia de seguridad a pedido Inicia una copia de seguridad a pedido con una asociación de plan de copia de seguridad existente. Especifica un ID de regla para determinar el período de vencimiento de esta copia de seguridad única on demand:

    gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
    --backup-rule-id=RULE_ID \
    --project=PROJECT_ID \
    --location=LOCATION \
    [--no-async]
    

    Reemplaza lo siguiente:

    • BACKUP_PLAN_ASSOCIATION_NAME: Es el nombre de la asociación del plan de copia de seguridad.

    • RULE_ID: Es el nombre de la regla de copia de seguridad que deseas asociar para ejecutar copias de seguridad on demand.

    • PROJECT_ID: el nombre del proyecto.

    • LOCATION: Es la ubicación de las copias de seguridad programadas.

Quita la protección de una instancia de Cloud SQL

Puedes quitar la protección de una instancia de Cloud SQL si quitas el plan de copia de seguridad aplicado a la instancia. Quitar un plan de copia de seguridad de una instancia de Cloud SQL no borra ninguna copia de seguridad creada mientras el plan de copia de seguridad estaba en uso. Aún puedes acceder a estas copias de seguridad existentes y administrarlas hasta que venzan.

Sigue estas instrucciones para quitar la protección de una instancia de Cloud SQL:

Console

  1. En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.

    Ir a Copias de seguridad almacenadas en vault

  2. Haz clic en el nombre de la base de datos de la que deseas quitar un plan de copia de seguridad.

  3. Selecciona Quitar plan de copia de seguridad.

gcloud

Anula la protección de una instancia de Cloud SQL.

  gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
  --project=PROJECT_ID \
  --location=LOCATION

Reemplaza lo siguiente:

  • BACKUP_PLAN_ASSOCIATION_NAME: Es el nombre de la asociación del plan de copia de seguridad que deseas borrar.

  • PROJECT_ID: el nombre del proyecto.

  • LOCATION: Es la ubicación de la copia de seguridad programada.

Limitaciones

En el caso de las instancias de Cloud SQL encriptadas con CMEK, Backup and DR valida los permisos de forma proactiva. Si el agente de servicio de Backup and DR del proyecto de la backup vault no tiene el rol de roles/cloudkms.cryptoKeyEncrypterDecrypter necesario en la clave de KMS de la instancia de origen, falla la creación de la asociación del plan de copia de seguridad. Asegúrate de que los permisos de IAM necesarios estén vigentes antes de asociar un plan de copia de seguridad.

¿Qué sigue?