Restaurar un disco a partir de una captura instantánea


Para acceder a los datos capturados en una captura instantánea, debes restaurar o crear un disco a partir de la captura instantánea.

En esta página se explica cómo crear un disco a partir de una instantánea. Una vez que hayas creado el disco, podrás usarlo vinculándolo a una máquina virtual (VM).

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Roles y permisos necesarios

Para obtener los permisos que necesitas para crear un disco a partir de una captura instantánea, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para crear un disco a partir de una captura instantánea. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para crear un disco a partir de una captura instantánea, se necesitan los siguientes permisos:

  • Para crear un disco:
    • compute.disks.create en el proyecto de destino del nuevo disco.
    • compute.instantSnapshots.useReadOnly en la captura instantánea de origen

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

Restricciones

Se aplican las siguientes limitaciones:

  • Cuando creas un disco a partir de una instantánea, el nuevo disco siempre tiene el mismo tipo, ubicación de almacenamiento y cifrado que el disco de origen de la instantánea.

  • No puedes crear una VM directamente a partir de una captura instantánea. Debes crear un disco a partir de la captura instantánea y, a continuación, usar el nuevo disco para crear una VM.

  • Si el disco de origen de la captura instantánea usa claves de cifrado gestionadas o proporcionadas por el cliente, debes proporcionar la misma clave de cifrado al crear un disco a partir de la captura instantánea.

    Veamos un ejemplo. Supongamos que tienes un disco DISK-1 cifrado con una clave de cifrado proporcionada por el cliente (CSEK) KEY-1. También tienes una captura instantánea, IS-1, creada a partir de DISK-1. Para crear un disco a partir de IS-1, debes proporcionar la misma clave, KEY-1, al crear el nuevo disco.

    Si el disco está cifrado con claves de cifrado gestionadas por el cliente (CMEK), solo tienes que proporcionar la clave si usas la API REST o la interfaz de línea de comandos de gcloud para crear el disco. Si usas la Google Cloud consola, no tienes que especificar la clave de cifrado.

Crear un disco a partir de una instantánea

Una captura instantánea se cifra con el mismo cifrado que su disco de origen. Los pasos para crear un disco a partir de una captura instantánea dependen de cómo esté cifrado el disco de origen de la captura instantánea.

Cada disco de origen se cifra con uno de los siguientes métodos:

  • Google-owned and Google-managed encryption keys. Esta es la opción predeterminada.
  • Claves de encriptado gestionadas por el cliente (CMEK)
  • Claves de cifrado proporcionadas por el cliente (CSEK).

Para saber cómo se cifra un disco concreto, consulta Ver información sobre el cifrado de un disco.

Crear un disco a partir de una instantánea cifrada con el cifrado predeterminado

Puedes crear un disco a partir de una captura instantánea con la CLI de gcloud, la Google Cloud consola o la API REST.

Consola

  1. Busca la copia de seguridad instantánea que quieras restaurar:

    1. En la Google Cloud consola, ve a la página Snapshots (Capturas).

      Ir a Capturas

    2. Haz clic en la pestaña Instantáneas.

    3. En la columna Nombre, haz clic en el nombre de la copia de seguridad instantánea que quieras restaurar.

  2. Haz clic en Crear disco.

  3. En el campo Nombre, introduce un nombre para el disco.

  4. Opcional: En el campo Descripción, introduce más detalles.

  5. Verifica que el Tipo de origen del disco sea Captura instantánea.

  6. En la lista Fuente de la captura instantánea, elige la captura instantánea.

  7. Opcional: Configura personalizaciones adicionales para el disco.

    • Introduce un tamaño: en el campo Tamaño, especifica el tamaño del disco en GB. El tamaño debe ser igual o superior al del disco de origen de la instantánea.
    • Programar copias de seguridad: si quieres que Compute Engine cree capturas estándar de este nuevo disco según una programación, selecciona la casilla Habilitar programación de capturas y elige una programación. De lo contrario, desmarca la casilla.
  8. Opcional: Para organizar tu proyecto, añade una o varias etiquetas.

  9. Para crear el disco, haz clic en Crear.

gcloud

Usa el comando gcloud compute disks create. Los argumentos que especifiques dependerán de si vas a crear un disco zonal o regional.

Crear un disco zonal

Especifica la zona con la marca --zone:

gcloud compute disks create DISK_NAME --zone=ZONE \
  --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME

Haz los cambios siguientes:

  • DISK_NAME: el nombre del nuevo disco.
  • ZONE: la zona del nuevo disco. Por ejemplo, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nombre de la captura instantánea de origen.

Crear un disco regional

Especifica la región con --region y las zonas de replicación de destino del nuevo disco con --replica-zones.

gcloud compute disks create DISK_NAME \
 --region=REGION \
 --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \
 --replica-zones=ZONE1,ZONE2

Haz los cambios siguientes:

  • DISK_NAME: el nombre del nuevo disco.
  • REGION: la región en la que se ubicará el disco regional. Por ejemplo, europe-west1.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nombre de la captura instantánea de origen.
  • ZONE1,ZONE2: las zonas de la región en las que se encuentran las dos réplicas del disco. Por ejemplo, europe-west1-b,europe-west1-c.

REST

Para crear un disco de zona o regional a partir de una captura instantánea, usa el método disks.insert. El nuevo disco debe ser del mismo tipo que el disco de origen de la captura instantánea. Por ejemplo, no puedes crear un disco regional a partir de una captura de un disco de zona.

Crear un disco zonal

Haz una solicitud POST y especifica la captura instantánea de origen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/SOURCE_ZONE/disks/insert
{
"name": "NEW_DISK_NAME",
"sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME"
}

Haz los cambios siguientes:

  • PROJECT: el proyecto en el que se creará el nuevo disco.
  • SOURCE_ZONE: la zona en la que se encuentra la captura instantánea, por ejemplo, us-central1-a. El disco se crea en esta zona.
  • NEW_DISK_NAME: un nombre único para el nuevo disco.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nombre de la captura instantánea de origen.

Crear un disco regional

Haz una solicitud POST, especificando la captura instantánea de origen y las zonas en las que se debe replicar el disco.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/region/SOURCE_REGION/disks/insert

{
"name": "NEW_DISK_NAME",
"sourceInstantSnapshot": "projects/PROJECT/regions/SOURCE_REGION/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME",
"replicaZones": [
  "projects/PROJECT/zones/ZONE1",
  "projects/PROJECT/zones/ZONE2"
]
}

Haz los cambios siguientes:

  • PROJECT: el proyecto en el que se creará el nuevo disco.
  • SOURCE_REGION: la región en la que se encuentra la captura instantánea. El disco se crea en esta región.
  • NEW_DISK_NAME: un nombre único para el nuevo disco.
  • SOURCE_INSTANT_SNAPSHOT_NAME: el nombre de la instantánea de origen.
  • ZONE1,ZONE2: las zonas de la región de las dos réplicas de disco. Por ejemplo, europe-west1-b y europe-west1-c.

Respuesta de la solicitud a la API

Si la solicitud POST se realiza correctamente, el cuerpo de la respuesta será un objeto que puedes sondear para obtener el estado de la creación del disco. Consulta más información en el artículo sobre cómo gestionar las respuestas de la API.

Crear un disco a partir de una captura instantánea cifrada con CMEK o CSEK

Consola

Si la copia de seguridad instantánea usa el cifrado predeterminado de Google o el cifrado con CMEK,la consola proporciona automáticamente la clave de cifrado cuando creas un disco a partir de la copia de seguridad instantánea. Google Cloud De lo contrario, si la captura instantánea está cifrada con CSEK, debes proporcionar la clave de cifrado para crear un disco.

Sigue los pasos de la sección sobre el cifrado gestionado por Google y especifica la clave de cifrado con estas instrucciones:

  1. En la sección Descifrado, introduce la clave de cifrado en el campo Clave de cifrado.
  2. Si la clave está encapsulada con la clave RSA pública, selecciona Clave encapsulada.

gcloud

Usa el comando gcloud compute disks create.

Si el disco de origen está cifrado con CMEK, usa el parámetro --kms-key para proporcionar el nombre de la clave.

Si el disco de origen está cifrado con CSEK, usa el parámetro --csek-key-file para especificar la clave de cifrado del disco de origen.

CMEK

Para crear un disco zonal a partir de una captura instantánea cifrada con CMEK, usa el siguiente comando:

     gcloud compute disks create NEW_DISK_NAME \
       --zone=SOURCE_ZONE \
       --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \
       --kms-key=projects/KMS_PROJECT_NAME/locations/KEYRING_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Haz los cambios siguientes:

  • NEW_DISK_NAME: el nombre del nuevo disco.
  • SOURCE_ZONE: la zona en la que se almacena la captura instantánea, por ejemplo, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nombre de la captura instantánea de origen.
  • KMS_PROJECT_NAME: el proyecto que contiene la clave.
  • KEYRING_LOCATION: la ubicación del conjunto de claves al que pertenece la clave. Si el llavero es global, especifica global. De lo contrario, especifica el nombre de la región en la que se encuentra el conjunto de claves (por ejemplo, us-west1).
  • KEY_RING_NAME: el nombre del conjunto de claves que incluye la clave (por ejemplo, key-ring-1).
  • KEY_NAME: el nombre de la clave utilizada para cifrar el disco.

CSEK

Para crear un disco zonal a partir de una captura instantánea cifrada con CSEK, usa el siguiente comando:

     gcloud compute disks create NEW_DISK_NAME \
       --zone=SOURCE_ZONE \
       --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \
       --csek-key-file=PATH_TO_CSEK_JSON_FILE
 

Haz los cambios siguientes:

  • NEW_DISK_NAME: el nombre del nuevo disco.
  • SOURCE_ZONE: la zona en la que se almacena la captura instantánea, por ejemplo, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nombre de la captura instantánea de origen.
  • CSEK_JSON_FILE: ruta a un archivo JSON que contiene la clave. Consulta un ejemplo del formato de archivo CSEK.

Para crear un disco regional, sustituye la marca --zone del ejemplo anterior por las siguientes marcas:

  • --region: la región del nuevo disco
  • --replica-zones: las zonas de la región de las dos réplicas del disco.

REST

Para crear un disco zonal o regional a partir de una instantánea con cifrado CMEK o CSEK, haz una solicitud POST al método disks.insert con las propiedades que se indican en la sección Cifrado gestionado por Google.

Además, proporciona la clave de cifrado del disco de origen con el campo diskEncryptionKey. Las propiedades del campo diskEncryptionKey dependen de si el disco está cifrado con CMEK o CSEK.

En los siguientes ejemplos se muestra cómo crear un disco zonal para cada tipo de cifrado.

CMEK

En el cuerpo de la solicitud, especifica el nombre de la clave con la propiedad diskEncryptionKey.kmsKeyName:

{
"name": "NEW_DISK_NAME",
"sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME",
"diskEncryptionKey": {
      "kmsKeyName": "projects/KMS_PROJECT/locations/LOCATION/keyRings/KEYRING_LOCATION/cryptoKeys/KEY_NAME"
  }
}

Haz los cambios siguientes:

  • NEW_DISK_NAME: un nombre único para el nuevo disco.
  • PROJECT: el proyecto en el que se creará el nuevo disco.
  • SOURCE_ZONE: la zona en la que se encuentra la captura instantánea, por ejemplo, us-central1-a. El disco se crea en esta zona.
  • SOURCE_INSTANT_SNAPSHOT_NAME: el nombre de la instantánea de origen.
  • KMS_PROJECT: el proyecto que contiene la clave.
  • LOCATION: la ubicación del conjunto de claves al que pertenece la clave. Si el llavero es global, especifica global. De lo contrario, especifica el nombre de la región en la que se encuentra el conjunto de claves. Por ejemplo, us-west1.
  • KEY_RING: el nombre del conjunto de claves que incluye la clave (por ejemplo, key-ring-1).
  • KEY: el nombre de la clave utilizada para cifrar el disco.

CSEK

El cuerpo de la solicitud depende de si la CSEK utilizada para cifrar la instantánea está cifrada con RSA o no.

Para usar una clave sin formato (no cifrada con RSA), especifica la clave en la propiedad diskEncryptionKey.rawKey del cuerpo de la solicitud:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/SOURCE_ZONE/disks/insert
{
  "name": "NEW_DISK_NAME",
  "sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME,
  "diskEncryptionKey": {
      "rawKey": "RAW_ENCRYPTION_KEY"
  }
}

Sustituye lo siguiente por los valores correspondientes:

  • PROJECT: el proyecto en el que se creará el nuevo disco.
  • SOURCE_ZONE: la zona en la que se encuentra la captura instantánea, por ejemplo, us-central1-a. El disco se crea en esta zona.
  • NEW_DISK_NAME: un nombre único para el nuevo disco.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nombre de la captura instantánea de origen.
  • RAW_ENCRYPTION_KEY: clave usada para cifrar la captura instantánea y su disco de origen (por ejemplo, SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=).

Para usar una clave cifrada con RSA, modifica el ejemplo anterior de la siguiente manera:

  • Haz una solicitud POST al método disks.insert:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/insert
    

  • Especifica la clave en la propiedad diskEncryptionKey.rsaEncryptedKey del cuerpo de la solicitud:

    "diskEncryptionKey": {
     "rsaEncryptedKey": "RSA_ENCRYPTED_KEY"
    }
    

Sustituye RSA_ENCRYPTED_KEY por tu clave cifrada.

Respuesta de la solicitud a la API

Si la solicitud POST se realiza correctamente, el cuerpo de la respuesta será un objeto que puedes sondear para obtener el estado de la creación del disco. Consulta más información en el artículo sobre cómo gestionar las respuestas de la API.