Restaure um disco a partir de um instantâneo


Para aceder aos dados capturados numa imagem instantânea, tem de restaurar ou criar um novo disco a partir da imagem instantânea.

Esta página explica como criar um disco a partir de um instantâneo. Depois de criar o disco, pode usá-lo associando-o a uma máquina virtual (VM).

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    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. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Funções e autorizações necessárias

Para receber as autorizações de que precisa para criar um disco a partir de uma captura instantânea instantânea, peça ao seu administrador que lhe conceda as seguintes funções do IAM no projeto:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para criar um disco a partir de uma captura instantânea. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar um disco a partir de um instantâneo instantâneo:

  • Para criar um disco:
    • compute.disks.create no projeto de destino do novo disco
    • compute.instantSnapshots.useReadOnly no instantâneo de origem

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Restrições

Aplicam-se as seguintes restrições:

  • Quando cria um disco a partir de um instantâneo, o novo disco tem sempre o mesmo tipo, localização de armazenamento e encriptação que o disco de origem do instantâneo.

  • Não pode criar uma VM diretamente a partir de um instantâneo. Tem de criar um disco a partir do instantâneo e, em seguida, usar o novo disco para criar uma VM.

  • Se o disco de origem do instantâneo usar chaves de encriptação geridas pelo cliente ou fornecidas pelo cliente, tem de fornecer a mesma chave de encriptação quando criar um novo disco a partir do instantâneo.

    Considere este exemplo. Imagine que tem um disco DISK-1 encriptado com uma chave de encriptação fornecida pelo cliente (CSEK) KEY-1. Também tem um instantâneo, IS-1, criado a partir de DISK-1. Para criar um novo disco a partir de IS-1, tem de fornecer a mesma chave, KEY-1, quando criar o novo disco.

    Se o disco estiver encriptado com chaves de encriptação geridas pelo cliente (CMEK), só tem de fornecer a chave se usar a REST ou a CLI gcloud para criar o disco. Se usar aGoogle Cloud consola, não precisa de especificar a chave de encriptação.

Crie um disco a partir de um instantâneo

Um instantâneo instantâneo é encriptado com a mesma encriptação que o respetivo disco de origem. Os passos para criar um disco a partir de um instantâneo dependem da forma como o disco de origem do instantâneo está encriptado.

Cada disco de origem é encriptado com um dos seguintes métodos:

  • Google-owned and Google-managed encryption keys. Esta é a predefinição.
  • Chaves de encriptação geridas pelo cliente (CMEK)
  • Chaves de encriptação fornecidas pelos clientes (CSEK).

Para saber como um disco específico está encriptado, consulte o artigo Veja informações sobre a encriptação de um disco.

Crie um disco a partir de um instantâneo encriptado com a encriptação predefinida

Pode criar um disco a partir de uma captura instantânea com a CLI gcloud, a Google Cloud consola ou a API REST.

Consola

  1. Encontre a foto instantânea que quer restaurar:

    1. Na Google Cloud consola, aceda à página Instantâneos.

      Aceder a Resumos

    2. Clique no separador Capturas instantâneas.

    3. Na coluna Nome, clique no nome da captura instantânea que quer restaurar.

  2. Clique em Criar disco.

  3. No campo Nome, introduza um novo nome para o disco.

  4. Opcional: no campo Descrição, introduza detalhes adicionais.

  5. Verifique se o tipo de origem do disco é Instantâneo.

  6. Na lista Instantâneo de origem, escolha o instantâneo.

  7. Opcional: configure personalizações adicionais para o disco.

    • Introduza um tamanho: no campo Tamanho, especifique um tamanho para o disco em GB. O tamanho tem de ser igual ou superior ao tamanho do disco de origem da captura de ecrã.
    • Agendar cópias de segurança: se quiser que o Compute Engine crie snapshots padrão deste novo disco de acordo com um agendamento, selecione a caixa de verificação Ativar agendamento de snapshots e escolha um agendamento de snapshots. Caso contrário, desmarque a caixa de verificação.
  8. Opcional: para organizar o seu projeto, adicione uma ou mais etiquetas.

  9. Para criar o disco, clique em Criar.

gcloud

Use o comando gcloud compute disks create. Os argumentos que especificar dependem de estar a criar um disco zonal ou regional.

Crie um disco zonal

Especifique a zona com o indicador --zone:

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

Substitua o seguinte:

  • DISK_NAME: o nome do novo disco.
  • ZONE: a zona do novo disco, por exemplo, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: o nome do resumo instantâneo de origem.

Crie um disco regional

Especifique a região com --region e as zonas de replicação de destino do novo disco com --replica-zones.

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

Substitua o seguinte:

  • DISK_NAME: o nome do novo disco.
  • REGION: a região em que o disco regional deve residir, por exemplo: europe-west1.
  • SOURCE_INSTANT_SNAPSHOT_NAME: o nome do resumo instantâneo de origem.
  • ZONE1,ZONE2: as zonas na região onde as duas réplicas de disco estão localizadas, por exemplo: europe-west1-b,europe-west1-c.

REST

Para criar um disco zonal ou regional a partir de um instantâneo, use o método disks.insert. O novo disco tem de ser do mesmo tipo que o disco de origem do instantâneo. Por exemplo, não pode criar um disco regional a partir de uma captura de ecrã de um disco zonal.

Crie um disco zonal

Faça um pedido POST, especificando o instantâneo de origem.

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

Substitua o seguinte:

  • PROJECT: o projeto no qual criar o novo disco.
  • SOURCE_ZONE: a zona onde o instantâneo está localizado, por exemplo, us-central1-a. O disco é criado nesta zona.
  • NEW_DISK_NAME: um nome exclusivo para o novo disco.
  • SOURCE_INSTANT_SNAPSHOT_NAME: o nome do instantâneo instantâneo de origem.

Crie um disco regional

Faça um pedido POST, especificando o instantâneo de origem e as zonas para as quais o disco deve ser replicado.

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

Substitua o seguinte:

  • PROJECT: o projeto no qual criar o novo disco.
  • SOURCE_REGION: a região onde o instantâneo está localizado. O disco é criado nesta região.
  • NEW_DISK_NAME: um nome exclusivo para o novo disco.
  • SOURCE_INSTANT_SNAPSHOT_NAME: o nome da captura de ecrã instantânea de origem.
  • ZONE1,ZONE2: as zonas na região para as duas réplicas de disco, por exemplo, europe-west1-b,europe-west1-c.

Resposta do pedido de API

Se o pedido POST for bem-sucedido, o corpo da resposta é um objeto que pode sondar para obter o estado da criação do disco. Consulte Processar respostas da API para mais informações.

Crie um disco a partir de um instantâneo instantâneo encriptado com CMEK ou CSEK

Consola

Se o instantâneo usar a encriptação predefinida da Google ou CMEK,a Google Cloud consola fornece automaticamente a chave de encriptação quando cria um disco a partir do instantâneo. Caso contrário, se a captura instantânea estiver encriptada com CSEK, tem de fornecer a chave de encriptação para criar um disco.

Siga os passos na secção Encriptação gerida pela Google, especificando a chave de encriptação através destas instruções:

  1. Na secção Desencriptação, introduza a chave de encriptação no campo Chave de encriptação.
  2. Se a chave estiver envolvida com a chave RSA pública, selecione Chave envolvida.

gcloud

Use o comando gcloud compute disks create.

Se o disco de origem estiver encriptado com CMEK, use o parâmetro --kms-key para indicar o nome da chave.

Se o disco de origem estiver encriptado com CSEK, use o parâmetro --csek-key-file para especificar a chave de encriptação do disco de origem.

CMEK

Para criar um disco zonal a partir de um instantâneo instantâneo encriptado com CMEK, use o seguinte 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

Substitua o seguinte:

  • NEW_DISK_NAME: o nome do novo disco.
  • SOURCE_ZONE: a zona onde o resumo instantâneo está armazenado, por exemplo, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: o nome do instantâneo instantâneo de origem.
  • KMS_PROJECT_NAME: o projeto que contém a chave.
  • KEYRING_LOCATION: a localização do conjunto de chaves ao qual a chave pertence. Se o conjunto de chaves for global, especifique global. Caso contrário, especifique o nome da região onde o conjunto de chaves está localizado, por exemplo, us-west1.
  • KEY_RING_NAME: o nome do conjunto de chaves que inclui a chave, por exemplo, key-ring-1.
  • KEY_NAME: o nome da chave usada para encriptar o disco.

CSEK

Para criar um disco zonal a partir de um instantâneo instantâneo encriptado com CSEK, use o seguinte 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
 

Substitua o seguinte:

  • NEW_DISK_NAME: o nome do novo disco.
  • SOURCE_ZONE: a zona onde o resumo instantâneo está armazenado, por exemplo, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: o nome do instantâneo instantâneo de origem.
  • CSEK_JSON_FILE: Caminho para um ficheiro JSON que contém a chave. Veja um exemplo do formato de ficheiro CSEK.

Para criar um disco regional, substitua a flag --zone no exemplo anterior pelas seguintes flags:

  • --region: a região do novo disco
  • --replica-zones: as zonas na região para as duas réplicas de disco.

REST

Para criar um disco zonal ou regional a partir de uma captura instantânea encriptada com CMEK ou CSEK, faça um pedido POST ao método disks.insert usando as propriedades indicadas na secção Encriptação gerida pela Google.

Além disso, forneça a chave de encriptação do disco de origem com o campo diskEncryptionKey. As propriedades do campo diskEncryptionKey dependem de o disco estar ou não encriptado com CMEK ou CSEK.

Os exemplos seguintes mostram como criar um novo disco zonal para cada tipo de encriptação.

CMEK

No corpo do pedido, especifique o nome da chave com a propriedade 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"
  }
}

Substitua o seguinte:

  • NEW_DISK_NAME: um nome exclusivo para o novo disco.
  • PROJECT: o projeto no qual criar o novo disco.
  • SOURCE_ZONE: a zona onde o instantâneo está localizado, por exemplo, us-central1-a. O disco é criado nesta zona.
  • SOURCE_INSTANT_SNAPSHOT_NAME: o nome da captura de ecrã instantânea de origem.
  • KMS_PROJECT: o projeto que contém a chave.
  • LOCATION: a localização do conjunto de chaves ao qual a chave pertence. Se o conjunto de chaves for global, especifique global. Caso contrário, especifique o nome da região onde o conjunto de chaves está localizado, por exemplo, us-west1.
  • KEY_RING: o nome do conjunto de chaves que inclui a chave, por exemplo, key-ring-1.
  • KEY: o nome da chave usada para encriptar o disco.

CSEK

O corpo do pedido depende de a CSEK usada para encriptar a imagem instantânea estar ou não encriptada com RSA.

Para usar uma chave não processada (não encriptada com RSA), especifique a chave na propriedade diskEncryptionKey.rawKey do corpo do pedido:

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

Substitua o seguinte pelos valores correspondentes:

  • PROJECT: o projeto no qual criar o novo disco.
  • SOURCE_ZONE: a zona onde o instantâneo está localizado, por exemplo, us-central1-a. O disco é criado nesta zona.
  • NEW_DISK_NAME: um nome exclusivo para o novo disco.
  • SOURCE_INSTANT_SNAPSHOT_NAME: o nome do instantâneo instantâneo de origem.
  • RAW_ENCRYPTION_KEY: a chave usada para encriptar a captura de ecrã instantânea e o respetivo disco de origem, por exemplo, SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=.

Para usar uma chave encriptada com RSA, modifique o exemplo anterior da seguinte forma:

  • Faça um pedido POST ao método disks.insert:

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

  • Especifique a chave na propriedade diskEncryptionKey.rsaEncryptedKey do corpo do pedido:

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

Substitua RSA_ENCRYPTED_KEY pela sua chave encriptada.

Resposta do pedido de API

Se o pedido POST for bem-sucedido, o corpo da resposta é um objeto que pode sondar para obter o estado da criação do disco. Consulte Processar respostas da API para mais informações.