Restaurar um disco a partir de um snapshot instantâneo


Para acessar os dados capturados em um instantâneo , você deve restaurar ou criar um novo disco a partir do instantâneo.

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

Antes de começar

  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Funções e permissões necessárias

Para obter as permissões necessárias para criar um disco a partir de um instantâneo, peça ao administrador para conceder a você as seguintes funções do IAM no projeto:

Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .

Essas funções predefinidas contêm as permissões necessárias para criar um disco a partir de um snapshot instantâneo. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias :

Permissões necessárias

As seguintes permissões são necessárias para criar um disco a partir de um instantâneo:

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

Você também poderá obter essas permissões com funções personalizadas ou outras funções predefinidas .

Restrições

As seguintes restrições se aplicam:

  • Ao criar um disco a partir de um instantâneo, o novo disco sempre terá o mesmo tipo, local de armazenamento e criptografia que o disco de origem do instantâneo.

  • Não é possível criar uma VM diretamente de um snapshot instantâneo. Você deve criar um disco a partir do snapshot instantâneo e, em seguida, usar o novo disco para criar uma VM.

  • Se o disco de origem do instantâneo usar chaves de criptografia gerenciadas ou fornecidas pelo cliente , você deverá fornecer a mesma chave de criptografia ao criar um novo disco a partir do instantâneo.

    Considere este exemplo. Imagine que você tem um disco DISK-1 criptografado com uma chave de criptografia fornecida pelo cliente (CSEK), KEY-1 . Você também tem um instantâneo instantâneo, IS-1 , criado a partir de DISK-1 . Para criar um novo disco a partir de IS-1 , você deve fornecer a mesma chave, KEY-1 , ao criar o novo disco.

    Se o disco estiver criptografado com chaves de criptografia gerenciadas pelo cliente (CMEK), você só precisará fornecer a chave se usar o REST ou a CLI gcloud para criar o disco. Se você usa o console do Google Cloud, não precisa especificar a chave de criptografia.

Crie um disco a partir de um snapshot instantâneo

Um snapshot instantâneo é criptografado com a mesma criptografia do disco de origem. As etapas para criar um disco a partir de um instantâneo dependem de como o disco de origem do instantâneo é criptografado.

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

  • Google-owned and Google-managed encryption keys. Este é o padrão.
  • Chaves de criptografia gerenciadas pelo cliente (CMEK)
  • Chaves de criptografia fornecidas pelo cliente (CSEK).

Para saber como um disco específico é criptografado, consulte Visualizar informações sobre a criptografia de um disco .

Crie um disco a partir de um instantâneo criptografado com criptografia padrão

Você pode criar um disco a partir de um snapshot instantâneo com a CLI gcloud, o console do Google Cloud ou o REST.

Console

  1. Encontre o snapshot instantâneo que você deseja restaurar:

    1. No console do Google Cloud, acesse a página Instantâneos .

      Vá para Instantâneos

    2. Clique na guia Instantâneos .

    3. Na coluna Nome , clique no nome do instantâneo que deseja restaurar.

  2. Clique em Criar disco .

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

  4. Opcional: No campo Descrição , insira detalhes adicionais.

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

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

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

    • Insira um tamanho: No campo Tamanho , especifique um tamanho para o disco em GB. O tamanho deve ser igual ou maior que o tamanho do disco de origem do instantâneo.
    • Programar backups: se você quiser que o Compute Engine crie snapshots padrão desse novo disco de acordo com uma programação , marque a caixa de seleção Ativar agendamento de snapshot e escolha uma programação de snapshot. Caso contrário, desmarque a caixa de seleção.
  8. Opcional: para organizar seu projeto, adicione um ou mais rótulos .

  9. Para criar o disco, clique em Criar .

gcloud

Use o comando gcloud compute disks create . Os argumentos especificados dependem de você estar criando um disco zonal ou regional.

Crie um disco zonal

Especifique a zona com o sinalizador --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 instantâneo instantâneo de origem.

Crie um disco regional

Especifique a região com --region e as zonas das 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 onde o disco regional residirá, por exemplo: europe-west1 .
  • SOURCE_INSTANT_SNAPSHOT_NAME : o nome do instantâneo instantâneo de origem.
  • ZONE1,ZONE2 : as zonas dentro da região onde as duas réplicas de disco estão localizadas, por exemplo: europe-west1-b,europe-west1-c .

DESCANSAR

Para criar um disco zonal ou regional a partir de um snapshot instantâneo, use o método disks.insert . O novo disco deve ser do mesmo tipo do disco de origem do snapshot instantâneo. Por exemplo, não é possível criar um disco regional a partir de um instantâneo de um disco zonal.

Crie um disco zonal

Faça uma solicitação POST , especificando o snapshot 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 será criado o novo disco.
  • SOURCE_ZONE : a zona onde o snapshot 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 uma solicitação POST , especificando o snapshot instantâneo de origem e as zonas para onde 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 será criado o novo disco.
  • SOURCE_REGION : a região onde o snapshot 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 do instantâneo instantâneo de origem.
  • ZONE1,ZONE2 : as zonas dentro da região para as duas réplicas de disco, por exemplo, europe-west1-b , europe-west1-c .

Resposta de solicitação de API

Se a solicitação POST for bem-sucedida, o corpo da resposta será um objeto que você poderá pesquisar para obter o status da criação do disco. Consulte Tratamento de respostas de API para obter mais informações.

Criar um disco a partir de um instantâneo criptografado por CMEK ou CSEK

Console

Se o instantâneo usar criptografia padrão do Google ou CMEK, o console do Google Cloud fornecerá automaticamente a chave de criptografia quando você criar um disco a partir do instantâneo. Caso contrário, se o instantâneo for criptografado por CSEK, você deverá fornecer a chave de criptografia para criar um disco.

Siga as etapas na seção de criptografia gerenciada pelo Google , especificando a chave de criptografia usando estas instruções:

  1. Na seção Descriptografia , insira a chave de criptografia no campo Chave de criptografia .
  2. Se a chave estiver agrupada com a chave RSA pública, selecione Chave agrupada .

gcloud

Use o comando gcloud compute disks create .

Se o disco de origem estiver criptografado por CMEK, use o parâmetro --kms-key para fornecer o nome da chave.

Se o disco de origem for criptografado por CSEK, use o parâmetro --csek-key-file para especificar a chave de criptografia do disco de origem.

CMEK

Para criar um disco zonal a partir de um instantâneo criptografado por 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 snapshot 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 criptografar o disco.

CSEK

Para criar um disco zonal a partir de um instantâneo criptografado por 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 snapshot 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 arquivo JSON que contém a chave. Veja um exemplo do formato de arquivo CSEK .

Para criar um disco regional, substitua o sinalizador --zone no exemplo anterior pelos seguintes sinalizadores:

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

DESCANSAR

Para criar um disco zonal ou regional a partir de um instantâneo criptografado por CMEK ou CSEK, faça uma solicitação POST para o método disks.insert usando as propriedades listadas na seção de criptografia gerenciada pelo Google .

Além disso, forneça a chave de criptografia do disco de origem com o campo diskEncryptionKey . As propriedades do campo diskEncryptionKey dependem de o disco ser ou não criptografado por CMEK ou CSEK.

Os exemplos a seguir mostram como criar um novo disco zonal para cada tipo de criptografia.

CMEK

No corpo da solicitação, 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 será criado o novo disco.
  • SOURCE_ZONE : a zona onde o snapshot instantâneo está localizado, por exemplo, us-central1-a . O disco é criado nesta zona.
  • SOURCE_INSTANT_SNAPSHOT_NAME : o nome do instantâneo instantâneo de origem.
  • KMS_PROJECT : o projeto que contém a chave.
  • LOCATION : a localização do chaveiro 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 criptografar o disco.

CSEK

O corpo da solicitação depende se o CSEK usado para criptografar o snapshot instantâneo é criptografado por RSA ou não.

Para usar uma chave bruta (criptografada não RSA) , especifique a chave na propriedade diskEncryptionKey.rawKey do corpo da solicitação:

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 será criado o novo disco.
  • SOURCE_ZONE : a zona onde o snapshot 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 criptografar o snapshot instantâneo e seu disco de origem, por exemplo, SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0= .

Para usar uma chave criptografada RSA , modifique o exemplo anterior da seguinte maneira:

  • Faça uma solicitação POST para o 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 da solicitação:

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

Substitua RSA_ENCRYPTED_KEY pela sua chave criptografada.

Resposta de solicitação de API

Se a solicitação POST for bem-sucedida, o corpo da resposta será um objeto que você poderá pesquisar para obter o status da criação do disco. Consulte Tratamento de respostas de API para obter mais informações.