Restablece un disco a partir de una instantánea


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

En esta página, se explica cómo crear un disco a partir de una instantánea. Después de crear el disco, puedes usarlo conectándolo a una máquina virtual (VM).

Antes de comenzar

  • Configura la autenticación si aún no lo hiciste. 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 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

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    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

Restricciones

Se aplican las siguientes restricciones:

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

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

  • Si el disco de origen de la instantánea inmediata usa claves de encriptación administradas o proporcionadas por el cliente, debes proporcionar la misma clave de encriptación cuando crees un disco nuevo a partir de la instantánea inmediata.

    Considera el siguiente ejemplo. Imagina que tienes un disco DISK-1 encriptado con una clave de encriptación proporcionada por el cliente (CSEK), KEY-1. También tienes una instantánea inmediata, IS-1, creada a partir de DISK-1. Para crear un disco nuevo a partir de IS-1, debes proporcionar la misma clave, KEY-1, cuando crees el disco nuevo.

    Si el disco está encriptado con claves de encriptación administradas por el cliente (CMEK), solo debes proporcionar la clave si usas REST o gcloud CLI para crear el disco. Si usas la consola de Google Cloud, no necesitas especificar la clave de encriptación.

Crea un disco a partir de una instantánea inmediata

Una instantánea inmediata se encripta con la misma encriptación que su disco de origen. Los pasos para crear un disco a partir de una instantánea inmediata dependen de cómo se encripta el disco de origen de la instantánea inmediata.

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

  • Claves de encriptación administradas por Google Esta es la opción predeterminada.
  • Claves de encriptación administradas por el cliente (CMEK)
  • Claves de encriptación proporcionadas por el cliente (CSEK)

Para saber cómo se encripta un disco en particular, consulta Visualiza información sobre la encriptación de un disco.

Crea un disco a partir de una instantánea inmediata encriptada con encriptación administrada por Google (predeterminado)

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

Console

  1. Busca la instantánea que deseas restablecer:

    1. En la consola de Google Cloud, ve a la página Instantáneas.

      Ir a Instantáneas

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

    3. En la columna Nombre, haz clic en el nombre de la instantánea que deseas restablecer.

  2. Haga clic en Create disk.

  3. En el campo Nombre, ingresa un nuevo nombre para el disco.

  4. Opcional: En el campo Descripción, ingresa detalles adicionales.

  5. Verifica que el Tipo de origen de disco sea Instantánea.

  6. En la lista Instantánea de origen, elige la instantánea.

  7. Opcional: Configura personalizaciones adicionales para el disco.

    • Ingresa un tamaño: en el campo Tamaño, especifica un tamaño para el disco en GB. El tamaño debe ser igual o mayor que el tamaño del disco de origen de la instantánea.
    • Programa copias de seguridad: si deseas que Compute Engine cree instantáneas estándar de este disco nuevo en función de una programación, selecciona la casilla de verificación Habilitar programación de instantáneas y elige una programación de instantáneas. De lo contrario, desmarca la casilla de verificación.
  8. Opcional: Para organizar tu proyecto, agrega una o más etiquetas.

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

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Usa el gcloud beta compute disks create comando . Los argumentos que especifiques dependerán de si creas un disco zonal o regional.

    Crea un disco zonal

    Especifica la zona con la marca --zone:

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

    Reemplaza lo siguiente:

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

    Crea un disco regional

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

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

    Reemplaza lo siguiente:

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

REST

Para crear un disco zonal o regional a partir de una instantánea inmediata, usa el método disks.insert.

Crea un disco zonal

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

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

Reemplaza lo siguiente:

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

Crea un disco regional

Realiza una solicitud POST y especifica la instantánea de origen y las zonas en las que se debe replicar el disco.


POST https://compute.googleapis.com/compute/beta/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"
]
}

Reemplaza lo siguiente:

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

Respuesta de solicitud a la API

Si la solicitud POST se realiza de forma correcta, el cuerpo de la respuesta será un objeto que puedes sondear para obtener el estado de creación del disco. Consulta Maneja respuestas de la API para obtener más información.

Crea un disco a partir de una instantánea inmediata encriptada con CMEK o CSEK

Console

Si la instantánea inmediata usa la encriptación predeterminada de Google o CMEK, la consola de Google Cloud proporciona de forma automática la clave de encriptación cuando creas un disco a partir de la instantánea inmediata. De lo contrario, si la instantánea inmediata está encriptada con CSEK, debes proporcionar la clave de encriptación para crear un disco.

Sigue los pasos en la sección Encriptación administrada por Google y especifica la clave de encriptación con estas instrucciones:

  1. En la sección Desencriptación, ingresa la clave de encriptación en el campo Clave de encriptación.
  2. Si la clave está unida con la clave RSA pública, selecciona Clave unida.

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Usa el comando gcloud beta compute disks create

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

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

    CMEK

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

         gcloud beta 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
    

    Reemplaza lo siguiente:

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

    CSEK

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

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

    Reemplaza lo siguiente:

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

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

    • --region: Es la región del disco nuevo.
    • --replica-zones: las zonas dentro 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 inmediata encriptada con CMEK o CSEK, realiza una solicitud POST al método disks.insert mediante las propiedades que se enumeran en la sección Encriptación administrada por Google.

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

En los siguientes ejemplos, se muestra cómo crear un disco zonal nuevo para cada tipo de encriptación.

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"
  }
}

Reemplaza lo siguiente:

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

CSEK

El cuerpo de la solicitud depende de si la CSEK que se usa para encriptar la instantánea inmediata está encriptada con RSA o no.

Para usar una clave sin procesar (no encriptada 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"
  }
}

Reemplaza lo siguiente por los valores correspondientes:

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

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

  • Realiza una solicitud POST a la versión beta del método disks.insert:

    POST https://compute.googleapis.com/compute/beta/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"
    }
    

Reemplaza RSA_ENCRYPTED_KEY por tu clave encriptada.

Respuesta de solicitud a la API

Si la solicitud POST se realiza de forma correcta, el cuerpo de la respuesta será un objeto que puedes sondear para obtener el estado de creación del disco. Consulta Maneja respuestas de la API para obtener más información.