Memulihkan disk dari snapshot instan


Untuk mengakses data yang diambil dalam snapshot instan, Anda harus memulihkan, atau membuat disk baru dari snapshot instan tersebut.

Halaman ini menjelaskan cara membuat disk dari snapshot instan. Setelah membuat disk, Anda dapat menggunakannya dengan memasangnya ke mesin virtual (VM).

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    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

      Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

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

        gcloud init

      Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang Anda perlukan guna membuat disk dari snapshot instan, minta administrator untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk membuat disk dari snapshot instan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat disk dari snapshot instan:

  • Untuk membuat disk:
    • compute.disks.create di project tujuan untuk disk baru
    • compute.instantSnapshots.useReadOnly pada snapshot instan sumber

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Pembatasan

Berlaku batasan berikut:

  • Saat Anda membuat disk dari snapshot instan, disk baru selalu memiliki jenis, lokasi penyimpanan, dan enkripsi yang sama dengan disk sumber snapshot.

  • Anda tidak dapat membuat VM langsung dari snapshot instan. Anda harus membuat disk dari snapshot instan, lalu menggunakan disk baru untuk membuat VM.

  • Jika disk sumber snapshot instan menggunakan kunci enkripsi yang dikelola pelanggan atau yang disediakan pelanggan, Anda harus memberikan kunci enkripsi yang sama saat membuat disk baru dari snapshot instan.

    Pertimbangkan contoh ini. Bayangkan Anda memiliki disk, DISK-1 yang dienkripsi dengan kunci enkripsi yang disediakan pelanggan (CSEK), KEY-1. Anda juga memiliki snapshot instan, IS-1, yang dibuat dari DISK-1. Untuk membuat disk baru dari IS-1, Anda harus memberikan kunci yang sama, KEY-1, saat membuat disk baru.

    Jika disk dienkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK), Anda hanya perlu memberikan kunci jika menggunakan REST atau gcloud CLI untuk membuat disk. Jika menggunakan Konsol Google Cloud, Anda tidak perlu menentukan kunci enkripsi.

Membuat disk dari snapshot instan

Instant snapshot dienkripsi dengan enkripsi yang sama dengan disk sumbernya. Langkah-langkah untuk membuat disk dari snapshot instan bergantung pada cara disk sumber snapshot instan dienkripsi.

Setiap disk sumber dienkripsi dengan salah satu metode berikut:

  • Kunci yang dimiliki dan dikelola Google. Ini adalah setelan defaultnya.
  • Kunci enkripsi yang dikelola pelanggan (Customer-Managed Encryption Key/CMEK)
  • Kunci enkripsi yang disediakan pelanggan (CSEK).

Untuk mengetahui cara disk tertentu dienkripsi, lihat Melihat informasi tentang enkripsi disk.

Membuat disk dari snapshot instan yang dienkripsi dengan enkripsi default

Anda dapat membuat disk dari snapshot instan dengan gcloud CLI, Konsol Google Cloud, atau REST.

Konsol

  1. Temukan snapshot instan yang ingin Anda pulihkan:

    1. Di Konsol Google Cloud, buka halaman Snapshots.

      Buka Snapshot

    2. Klik tab Instant snapshot.

    3. Di kolom Name, klik nama snapshot instan yang ingin dipulihkan.

  2. Klik Create disk.

  3. Di kolom Name, masukkan nama baru untuk disk.

  4. Opsional: Di kolom Deskripsi, masukkan detail tambahan.

  5. Pastikan Disk source type adalah Instant snapshot.

  6. Pada daftar Source instant snapshot, pilih snapshot instan.

  7. Opsional: Konfigurasikan penyesuaian tambahan untuk disk.

    • Masukkan ukuran: Di kolom Size, tentukan ukuran disk dalam GB. Ukuran harus sama dengan atau lebih besar dari ukuran disk sumber untuk snapshot.
    • Jadwalkan pencadangan: Jika Anda ingin Compute Engine membuat snapshot standar disk baru ini sesuai jadwal, centang kotak Enable snapshot schedule, lalu pilih snapshot jadwal proyek. Jika tidak, hapus centang pada kotak.
  8. Opsional: Untuk mengatur project Anda, tambahkan satu atau beberapa label.

  9. Untuk membuat disk, klik Buat.

gcloud

Gunakan perintah gcloud compute disks create. Argumen yang Anda tentukan bergantung pada apakah Anda membuat disk zonal atau regional.

Membuat disk zonal

Tentukan zona dengan flag --zone:

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

Ganti kode berikut:

  • DISK_NAME: nama disk baru.
  • ZONE: zona untuk disk baru, misalnya, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.

Membuat disk regional

Tentukan region dengan --region dan zona replikasi target disk baru dengan --replica-zones.

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

Ganti kode berikut:

  • DISK_NAME: nama disk baru.
  • REGION: region tempat disk regional berada, misalnya: europe-west1.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • ZONE1,ZONE2: zona dalam region tempat dua replika disk berada, misalnya: europe-west1-b,europe-west1-c.

REST

Untuk membuat disk zonal atau regional dari snapshot instan, gunakan metode disks.insert. Disk baru harus sama dengan jenis disk sumber snapshot instan. Misalnya, Anda tidak dapat membuat disk regional dari snapshot disk zona.

Membuat disk zonal

Buat permintaan POST, yang menentukan snapshot instan sumber.

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

Ganti kode berikut:

  • PROJECT: project tempat disk baru akan dibuat.
  • SOURCE_ZONE: zona tempat snapshot instan berada, misalnya, us-central1-a. Disk dibuat di zona ini.
  • NEW_DISK_NAME: nama unik untuk disk baru.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.

Membuat disk regional

Buat permintaan POST, dengan menentukan snapshot instan sumber dan zona tempat disk harus direplikasi.

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

Ganti kode berikut:

  • PROJECT: project tempat disk baru akan dibuat.
  • SOURCE_REGION: region tempat snapshot instan berada. Disk tersebut dibuat di region ini.
  • NEW_DISK_NAME: nama unik untuk disk baru.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • ZONE1,ZONE2: zona dalam region untuk dua replika disk, misalnya, europe-west1-b,europe-west1-c.

Respons permintaan API

Jika permintaan POST berhasil, isi respons akan menjadi objek yang dapat Anda polling untuk mendapatkan status pembuatan disk. Lihat Menangani respons API untuk informasi selengkapnya.

Membuat disk dari snapshot instan yang dienkripsi CMEK atau CSEK

Konsol

Jika snapshot instan menggunakan enkripsi default Google atau CMEK, Konsol Google Cloud akan otomatis menyediakan kunci enkripsi saat Anda membuat disk dari snapshot instan. Jika tidak, jika snapshot instan dienkripsi CSEK, Anda harus memberikan kunci enkripsi untuk membuat disk.

Ikuti langkah-langkah di bagian enkripsi yang dikelola Google, yang menentukan kunci enkripsi menggunakan petunjuk ini:

  1. Di bagian Dekripsi, masukkan kunci enkripsi di kolom Kunci enkripsi.
  2. Jika kunci digabungkan dengan kunci RSA publik, pilih Wrapped key.

gcloud

Gunakan perintah gcloud compute disks create.

Jika disk sumber dienkripsi CMEK, gunakan parameter --kms-key untuk memberikan nama kunci.

Jika disk sumber dienkripsi CSEK, gunakan parameter --csek-key-file untuk menentukan kunci enkripsi disk sumber.

CMEK

Untuk membuat disk zona dari snapshot instan terenkripsi CMEK, gunakan perintah berikut:

     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

Ganti kode berikut:

  • NEW_DISK_NAME: nama disk baru.
  • SOURCE_ZONE: zona tempat snapshot instan disimpan, misalnya, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • KMS_PROJECT_NAME: project yang berisi kunci.
  • KEYRING_LOCATION: lokasi key ring tempat kunci berada. Jika ring kunci bersifat global, tentukan global. Jika tidak, tentukan nama region tempat key ring berada, misalnya, us-west1.
  • KEY_RING_NAME: nama key ring yang menyertakan kunci, misalnya, key-ring-1.
  • KEY_NAME: nama kunci yang digunakan untuk mengenkripsi disk.

CSEK

Untuk membuat disk zona dari snapshot instan terenkripsi CSEK, gunakan perintah berikut:

     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
 

Ganti kode berikut:

  • NEW_DISK_NAME: nama disk baru.
  • SOURCE_ZONE: zona tempat snapshot instan disimpan, misalnya, europe-west1-a.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • CSEK_JSON_FILE: Jalur ke file JSON yang berisi kunci. Lihat contoh format file CSEK.

Untuk membuat disk regional, ganti flag --zone dalam contoh sebelumnya dengan flag berikut:

  • --region: region untuk disk baru
  • --replica-zones: zona dalam region untuk dua replika disk.

REST

Untuk membuat disk zonal atau regional dari snapshot instan terenkripsi CMEK atau CSEK, buat permintaan POST ke metode disks.insert menggunakan properti yang tercantum di bagian Enkripsi yang dikelola Google.

Selain itu, berikan kunci enkripsi disk sumber dengan kolom diskEncryptionKey. Properti kolom diskEncryptionKey bergantung pada apakah disk dienkripsi CMEK atau CSEK.

Contoh berikut menunjukkan cara membuat disk zonal baru untuk setiap jenis enkripsi.

CMEK

Dalam isi permintaan, tentukan nama kunci dengan properti 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"
  }
}

Ganti kode berikut:

  • NEW_DISK_NAME: nama unik untuk disk baru.
  • PROJECT: project tempat disk baru akan dibuat.
  • SOURCE_ZONE: zona tempat snapshot instan berada, misalnya, us-central1-a. Disk dibuat di zona ini.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • KMS_PROJECT: project yang berisi kunci.
  • LOCATION: lokasi key ring tempat kunci berada. Jika ring kunci bersifat global, tentukan global. Jika tidak, tentukan nama region tempat key ring berada, misalnya, us-west1.
  • KEY_RING: nama key ring yang menyertakan kunci, misalnya, key-ring-1.
  • KEY: nama kunci yang digunakan untuk mengenkripsi disk.

CSEK

Isi permintaan bergantung pada apakah CSEK yang digunakan untuk mengenkripsi snapshot instan dienkripsi RSA atau tidak.

Untuk menggunakan kunci mentah (tidak dienkripsi RSA), tentukan kunci dalam properti diskEncryptionKey.rawKey isi permintaan:

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

Ganti nilai berikut dengan nilai yang sesuai:

  • PROJECT: project tempat disk baru akan dibuat.
  • SOURCE_ZONE: zona tempat snapshot instan berada, misalnya, us-central1-a. Disk dibuat di zona ini.
  • NEW_DISK_NAME: nama unik untuk disk baru.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • RAW_ENCRYPTION_KEY: Kunci yang digunakan untuk mengenkripsi snapshot instan dan disk sumbernya, misalnya, SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=.

Untuk menggunakan kunci terenkripsi RSA, ubah contoh sebelumnya sebagai berikut:

  • Buat permintaan POST ke metode disks.insert:

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

  • Tentukan kunci di properti diskEncryptionKey.rsaEncryptedKey dari isi permintaan:

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

Ganti RSA_ENCRYPTED_KEY dengan kunci terenkripsi Anda.

Respons permintaan API

Jika permintaan POST berhasil, isi respons akan menjadi objek yang dapat Anda polling untuk mendapatkan status pembuatan disk. Lihat Menangani respons API untuk informasi selengkapnya.