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.

    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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Roles y permisos requeridos

Para obtener los permisos que necesitas para crear un disco a partir de una instantánea inmediata, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

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 crear un disco a partir de una instantánea inmediata. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear un disco a partir de una instantánea inmediata:

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

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

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 que son propiedad de Google y está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 predeterminada

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

Usa el gcloud 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 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 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. El disco nuevo debe ser del mismo tipo que el del disco de origen de la instantánea. Por ejemplo, no puedes crear un disco regional a partir de una instantánea de un disco zonal.

Crea un disco zonal

Realiza una solicitud POST y especifica la instantánea inmediata 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"
}

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

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 de la sección Encriptación administrada por Google y especifica la clave de encriptación mediante 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

Usa el comando gcloud 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 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: Es 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 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 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"
    }
    

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.