Melindungi resource dengan menggunakan kunci Cloud KMS


Dokumen ini memberikan informasi tentang cara menggunakan kunci yang dikelola oleh Cloud Key Management Service Cloud KMS untuk mengenkripsi disk dan resource terkait penyimpanan lainnya. Kunci yang dikelola oleh Cloud KMS dikenal sebagai kunci enkripsi yang dikelola pelanggan (CMEK).

Anda dapat menggunakan CMEK untuk mengenkripsi resource Compute Engine, seperti disk, machine image, snapshot instan, dan snapshot standar.

Untuk mempelajari lebih lanjut cara menggunakan kunci enkripsi yang disediakan pelanggan (CSEK) guna mengenkripsi disk dan resource penyimpanan lainnya, lihat Mengenkripsi disk dengan kunci enkripsi yang disediakan pelanggan.

Pelajari lebih lanjut artikel Tentang enkripsi disk.

Sebelum memulai

  • Pahami disks, image, snapshot persistent disk, dan instance virtual machine (VM).
  • Tentukan apakah Anda akan menjalankan Compute Engine dan Cloud KMS di project Google Cloud yang sama, atau di project yang berbeda. Untuk informasi tentang project ID dan nomor project Google Cloud, lihat Mengidentifikasi project.
  • Untuk project Google Cloud yang menjalankan Cloud KMS, lakukan tindakan berikut:
    1. Enable the Cloud KMS API.

      Enable the API

    2. Buat key ring dan kunci seperti dijelaskan dalam Membuat key ring dan kunci.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

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

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Peran yang diperlukan

Untuk memastikan Agen Layanan Compute Engine memiliki izin yang diperlukan untuk melindungi resource dengan menggunakan kunci Cloud KMS, minta administrator Anda untuk memberikan peran IAM Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) ke Project Anda kepada Agen Layanan Compute Engine. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada Agen Layanan Compute Engine melalui peran khusus atau peran yang telah ditetapkan lainnya.

Agen Layanan Compute Engine memiliki formulir berikut:

service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

Anda dapat menggunakan Google Cloud CLI untuk menetapkan peran:

gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
    --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Ganti kode berikut:

  • KMS_PROJECT_ID: ID project Google Cloud Anda yang menjalankan Cloud KMS (meskipun project ini sama dengan yang menjalankan Compute Engine)
  • PROJECT_NUMBER: nomor project (bukan project ID Google Cloud) dari project Google Cloud Anda yang menjalankan resource Compute Engine

Spesifikasi enkripsi

Kunci Cloud KMS yang digunakan untuk membantu melindungi data Anda di Compute Engine adalah kunci AES-256. Kunci ini adalah kunci enkripsi kunci, dan mengenkripsi kunci enkripsi data yang mengenkripsi data Anda, bukan data itu sendiri.

Data pada disk dienkripsi menggunakan kunci yang dibuat oleh Google. Untuk spesifikasi yang terkait dengan enkripsi default di Google Cloud, lihat Enkripsi default dalam penyimpanan dalam dokumentasi Keamanan.

Batasan

  • Anda tidak dapat mengenkripsi resource yang ada dengan CMEK. Anda hanya dapat mengenkripsi disk, gambar, dan snapshot dengan CMEK saat membuatnya.

  • Anda tidak dapat menggunakan kunci Anda sendiri dengan disk SSD Lokal karena kunci tersebut dikelola oleh infrastruktur Google dan akan dihapus saat VM dihentikan.

  • Resource regional (disk) dapat dienkripsi oleh kunci di lokasi yang sama atau di lokasi global. Misalnya, disk di zona us-west1-a dapat dienkripsi oleh kunci di us-west1 atau global. Resource global (image, snapshot) dapat dienkripsi oleh kunci di lokasi mana pun.

  • Mengenkripsi disk, snapshot, atau image dengan kunci bersifat permanen. Anda tidak dapat menghapus enkripsi dari resource atau mengubah kunci yang digunakan. Satu-satunya cara untuk menghapus enkripsi atau mengubah kunci adalah dengan membuat salinan resource sambil menentukan opsi enkripsi baru.

Mengenkripsi Persistent Disk baru dengan CMEK

Anda dapat mengenkripsi Persistent Disk baru dengan menyediakan kunci selama pembuatan VM atau disk.

Konsol

  1. Di konsol Google Cloud, buka halaman Disks.

    Buka Disks

  2. Klik Create disk dan masukkan properti untuk disk baru.
  3. Di bagian Encryption, pilih Customer-managed key.
  4. Di menu drop-down, pilih kunci Cloud KMS yang ingin Anda gunakan untuk mengenkripsi disk ini.
  5. Untuk membuat disk, klik Create.

gcloud

Buat disk terenkripsi menggunakan perintah gcloud compute disks create, dan tentukan kunci menggunakan tanda --kms-key.

gcloud compute disks create DISK_NAME \
  --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY

Ganti kode berikut:

  • DISK_NAME: nama disk baru
  • KMS_PROJECT_ID: project yang memiliki kunci Cloud KMS
  • REGION: region tempat kunci berada
  • KEY_RING: nama key ring yang menyertakan kunci
  • KEY: nama kunci yang digunakan untuk mengenkripsi disk

REST

Buat permintaan POST ke metode instances.insert. Untuk mengenkripsi disk, gunakan properti diskEncryptionKey dengan properti kmsKeyName. Misalnya, Anda dapat mengenkripsi disk baru selama pembuatan VM dengan kunci Cloud KMS menggunakan hal berikut:

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

{
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
 {
  "type": "PERSISTENT",
  "diskEncryptionKey": {
    "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  },
  "initializeParams": {
   "sourceImage": "SOURCE_IMAGE"
  },
  "boot": true
 }
],
...
}

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud yang menjalankan Compute Engine
  • ZONE: zona untuk membuat VM
  • MACHINE_TYPE: jenis mesin, misalnya c3-standard-4
  • KMS_PROJECT_ID: project yang memiliki kunci Cloud KMS
  • REGION: region tempat disk berada
  • KEY_RING: nama key ring yang menyertakan kunci
  • KEY: nama kunci yang digunakan untuk mengenkripsi disk
  • SOURCE_IMAGE: image yang akan digunakan saat membuat VM, misalnya, projects/debian-cloud/global/images/debian-11-bullseye-v20231115

Anda juga dapat menggunakan metode disks.insert untuk membuat Persistent Disk mandiri baru dan mengenkripsinya dengan kunci Cloud KMS:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks?sourceImage=SOURCE_IMAGE
{
 "name": "DISK_NAME",
 "diskEncryptionKey": {
   "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  },
 "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE"
}

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud yang menjalankan Compute Engine
  • ZONE: zona untuk membuat disk tempat
  • SOURCE_IMAGE: gambar yang akan digunakan saat membuat disk, misalnya, projects/debian-cloud/global/images/debian-11-bullseye-v20231115
  • DISK_NAME: nama untuk disk baru
  • KMS_PROJECT_ID: project yang memiliki kunci Cloud KMS
  • REGION: region tempat disk berada
  • KEY_RING: nama key ring yang menyertakan kunci
  • KEY: nama kunci yang digunakan untuk mengenkripsi disk
  • DISK_TYPE: jenis disk yang akan dibuat

Membuat snapshot dari disk yang dienkripsi dengan CMEK

Untuk membantu melindungi snapshot yang Anda buat dari disk yang dienkripsi dengan CMEK, Anda harus menggunakan kunci enkripsi yang sama dengan yang Anda gunakan untuk mengenkripsi disk.

Anda tidak dapat membuat snapshot yang menggunakan CMEK kecuali jika disk sumber juga menggunakan CMEK. Selain itu, Anda tidak dapat mengonversi disk atau snapshot yang dienkripsi CMEK untuk menggunakan enkripsi default Google Cloud, kecuali jika Anda membuat disk image yang benar-benar baru dan persistent disk baru.

Snapshot dari disk yang dienkripsi dengan CMEK bersifat inkremental.

Konsol

  1. Di Konsol Google Cloud, buka halaman Snapshots.

    Buka Snapshots

  2. Klik Create snapshot.
  3. Pada Source disk, pilih disk sumber untuk snapshot. Snapshot akan otomatis dienkripsi dengan kunci yang sama dengan yang digunakan oleh disk sumber.

gcloud

Untuk enkripsi yang dikelola pelanggan, kunci Cloud KMS yang digunakan untuk mengenkripsi disk juga digunakan untuk mengenkripsi snapshot.

Anda dapat membuat snapshot dalam kebijakan lokasi penyimpanan yang ditentukan oleh setelan snapshot Anda atau menggunakan lokasi penyimpanan alternatif pilihan Anda. Untuk informasi selengkapnya, lihat Memilih lokasi penyimpanan snapshot.

  • Untuk membuat snapshot di lokasi default yang telah ditentukan sebelumnya atau disesuaikan yang dikonfigurasi di setelan snapshot Anda, gunakan perintah gcloud compute snapshots create.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE
    
  • Atau, untuk mengganti setelan snapshot dan membuat snapshot di lokasi penyimpanan kustom, sertakan flag --storage-location untuk menunjukkan tempat untuk menyimpan snapshot Anda.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --storage-location=STORAGE_LOCATION
    

    Ganti kode berikut:

    • SNAPSHOT_NAME: Nama untuk snapshot.
    • SOURCE_ZONE: Zona disk sumber.
    • SOURCE_DISK_NAME: Nama volume disk tempat Anda ingin membuat snapshot.
    • SNAPSHOT_TYPE: Jenis snapshot, STANDARD atau Arsip. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat.
    • STORAGE_LOCATION: Opsional: Multi-region Cloud Storage atau region Cloud Storage tempat Anda ingin menyimpan snapshot. Anda hanya dapat menentukan satu lokasi penyimpanan.

      Gunakan parameter --storage-location hanya jika Anda ingin mengganti lokasi penyimpanan default yang telah ditentukan sebelumnya atau disesuaikan yang dikonfigurasi di setelan snapshot Anda.

REST

Anda dapat membuat snapshot dalam kebijakan lokasi penyimpanan yang ditentukan oleh setelan snapshot Anda atau menggunakan lokasi penyimpanan alternatif pilihan Anda. Untuk informasi selengkapnya, lihat Memilih lokasi penyimpanan snapshot.

  • Untuk membuat snapshot di lokasi default yang telah ditentukan sebelumnya atau disesuaikan yang dikonfigurasi di setelan snapshot Anda, buat permintaan POST ke metode snapshots.insert:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
        "name": "SNAPSHOT_NAME",
        "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
        "snapshotEncryptionKey":  {
         "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY"
        },
        "snapshotType": "SNAPSHOT_TYPE"
    }
    
  • Atau, untuk mengganti setelan snapshot dan membuat snapshot di lokasi penyimpanan kustom, buat permintaan POST ke metode snapshots.insert dan sertakan properti storageLocations dalam permintaan Anda:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
        "name": "SNAPSHOT_NAME",
        "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
        "snapshotEncryptionKey":  {
         "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY"
        },
        "snapshotType": "SNAPSHOT_TYPE",
        "storageLocations": [
            "STORAGE_LOCATION"
        ],
    }
    

Ganti kode berikut:

  • DESTINATION_PROJECT_ID: ID project tempat Anda ingin membuat snapshot.
  • SNAPSHOT_NAME: Nama untuk snapshot.
  • SOURCE_PROJECT_ID: ID project disk sumber.
  • SOURCE_ZONE: Zona disk sumber.
  • SOURCE_DISK_NAME: Nama volume disk tempat Anda ingin membuat snapshot.
  • KMS_PROJECT_ID: Project yang berisi kunci enkripsi yang disimpan di Cloud Key Management Service.
  • KEY_REGION: Region tempat kunci Cloud KMS berada.
  • KEY_RING: Nama key ring yang berisi kunci Cloud KMS.
  • SNAPSHOT_KEY: Nama kunci Cloud KMS yang Anda gunakan untuk mengenkripsi disk sumber.
  • SNAPSHOT_TYPE: Jenis snapshot, STANDARD atau Arsip. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat.
  • STORAGE_LOCATION: Opsional: Multi-region Cloud Storage atau region Cloud Storage tempat Anda ingin menyimpan snapshot. Anda hanya dapat menentukan satu lokasi penyimpanan.

    Gunakan parameter storageLocations hanya jika Anda ingin mengganti lokasi penyimpanan default yang telah ditentukan sebelumnya atau disesuaikan yang dikonfigurasi di setelan snapshot Anda.

Mengenkripsi image yang diimpor dengan CMEK

Anda dapat mengenkripsi gambar baru saat mengimpor gambar kustom ke Compute Engine. Sebelum dapat mengimpor image, Anda harus membuat dan mengompresi file disk image serta mengupload file yang dikompresi tersebut ke Cloud Storage.

Konsol

  1. Di Konsol Google Cloud, buka halaman Images.

    Buka Images

  2. Klik Create image.
  3. Untuk Source disk, pilih disk yang ingin Anda buat imagenya.
  4. Untuk Encryption, pilih Customer-managed key.
  5. Di menu drop-down, pilih kunci Cloud KMS yang ingin Anda gunakan untuk mengenkripsi image ini.
  6. Lanjutkan proses pembuatan iamge.

gcloud

Untuk mengimpor dan mengenkripsi gambar, gunakan perintah gcloud compute images create. Untuk enkripsi yang dikelola pelanggan, tentukan kunci Cloud KMS untuk image.

gcloud compute images create IMAGE_NAME \
    --source-disk=SOURCE_DISK  \
    --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY

Ganti kode berikut:

  • IMAGE_NAME: nama gambar yang Anda buat
  • SOURCE_DISK: nama disk untuk membuat snapshot
  • KMS_PROJECT_ID: project yang berisi kunci Cloud KMS
  • REGION: region tempat kunci Cloud KMS berada
  • KEY_RING: key ring yang berisi kunci Cloud KMS
  • KEY: nama kunci yang akan digunakan untuk mengenkripsi disk baru

REST

Untuk mengenkripsi gambar yang diimpor, buat permintaan POST ke metode images.insert. Tentukan URI ke file yang dikompresi, tambahkan properti imageEncryptionKey ke permintaan pembuatan gambar, dan tentukan kunci untuk mengenkripsi gambar di properti kmsKeyName.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images

{
 "rawDisk": {
  "source": "http://storage.googleapis.com/example-image/example-image.tar.gz"
  },
 "name": "IMAGE_NAME",
 "sourceType": "RAW",
 "imageEncryptionKey": {
   "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
   }
}

Ganti kode berikut:

  • PROJECT_ID: project untuk membuat gambar terenkripsi di
  • IMAGE_NAME: nama gambar yang Anda buat
  • KMS_PROJECT_ID: project yang berisi kunci Cloud KMS
  • REGION: region tempat kunci Cloud KMS berada
  • KEY_RING: key ring yang berisi kunci Cloud KMS
  • KEY: nama kunci yang Anda gunakan untuk mengenkripsi disk sumber

Membuat Persistent Disk dari snapshot yang dienkripsi dengan CMEK

Untuk membuat Persistent Disk mandiri baru dari snapshot terenkripsi, lakukan langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Disks.

    Buka Disks

  2. Klik Create disk dan masukkan properti untuk disk baru.
  3. Untuk Jenis sumber, pilih ringkasan atau gambar yang ingin Anda gunakan.
  4. Opsional: Jika Anda ingin menentukan kunci enkripsi baru, untuk Enkripsi, tentukan jenis kunci enkripsi yang akan digunakan, lalu berikan informasi kunci enkripsi.

    Jika Anda ingin menghapus kunci enkripsi yang dikelola pelanggan atau yang diberikan pelanggan, untuk Enkripsi, gunakan kunci enkripsi yang dikelola Google dengan nilai default.

  5. Lanjutkan proses pembuatan Persistent Disk.

gcloud

Gunakan perintah gcloud compute disks create untuk membuat Persistent Disk mandiri baru dari snapshot terenkripsi.

gcloud compute disks create DISK_NAME \
    --source-snapshot SNAPSHOT_NAME \
    --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY

Ganti kode berikut:

  • DISK_NAME: nama disk baru
  • SNAPSHOT_NAME: nama snapshot terenkripsi

    Untuk menggunakan gambar, bukan snapshot, ganti --source-snapshot SNAPSHOT_NAME dengan --image IMAGE_NAME.

  • KMS_PROJECT_ID: Opsional: project yang berisi kunci Cloud KMS

  • REGION: Opsional: region tempat kunci Cloud KMS berada

  • KEY_RING: Opsional: key ring yang berisi kunci Cloud KMS

  • KEY: Opsional: nama kunci Cloud KMS yang akan digunakan untuk mengenkripsi disk baru

    Untuk mengenkripsi disk baru, Anda dapat melakukan salah satu langkah berikut:

    • Untuk menentukan kunci enkripsi baru yang dikelola pelanggan, gunakan flag --kms-key.
    • Untuk menggunakan enkripsi default yang dikelola Google, jangan sertakan flag --kms-key.

REST

Buat permintaan POST ke metode compute.disks.insert untuk membuat Persistent Disk mandiri baru dari snapshot terenkripsi. Gunakan properti sourceSnapshot untuk menentukan snapshot.

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

{
  "name": "DISK_NAME",
  "sourceSnapshot": "projects/SNAPSHOT_PROJECT_ID/global/snapshots/SNAPSHOT_NAME",
  "diskEncryptionKey": {
     "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  }
}

Ganti kode berikut:

  • PROJECT_ID: project tempat disk baru akan dibuat
  • ZONE: zona untuk membuat disk baru
  • DISK_NAME: nama disk baru
  • SNAPSHOT_PROJECT_ID: project yang berisi snapshot
  • SNAPSHOT_NAME: nama snapshot terenkripsi

    Untuk menggunakan gambar, bukan snapshot, ganti sourceSnapshot dengan sourceImage.

  • KMS_PROJECT_ID: Opsional: project yang berisi kunci Cloud KMS

  • REGION: Opsional: region tempat kunci Cloud KMS berada

  • KEY_RING: Opsional: key ring yang berisi kunci Cloud KMS

  • KEY: Opsional: nama kunci Cloud KMS yang akan digunakan untuk mengenkripsi disk baru

    Jika Anda menyertakan diskEncryptionKey, disk akan dienkripsi dengan kunci Cloud KMS yang ditentukan. Jika Anda tidak menyertakan diskEncryptionKey, disk akan dienkripsi menggunakan enkripsi yang dikelola Google.

Memasang boot disk yang dienkripsi dengan CMEK ke VM baru

Konsol

  1. Di konsol Google Cloud, buka halaman Create an instance.

    Buka Create an instance

  2. Tentukan detail VM, lalu di bagian Boot disk, klik Change. Kemudian, lakukan hal berikut:

    1. Klik Existing disk.
    2. Dalam daftar Disk, pilih disk yang ada untuk dipasang ke VM.
    3. Klik Select.
  3. Lanjutkan dengan proses pembuatan VM.

gcloud

Untuk memasang disk terenkripsi saat Anda membuat VM baru, gunakan perintah gcloud compute instances create. Gunakan flag --disk untuk menentukan boot disk yang dienkripsi, seperti ditunjukkan pada contoh berikut:

gcloud compute instances create VM_NAME \
  ...
  --disk name=DISK_NAME,boot=yes

Ganti kode berikut:

  • VM_NAME: nama VM yang Anda buat
  • DISK_NAME: nama disk yang dienkripsi

REST

Buat permintaan POST ke metode compute.instances.insert. Gunakan properti disks untuk menentukan boot disk terenkripsi, seperti yang ditunjukkan pada contoh berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  ...
  "disks": [
    {
      "deviceName": "DISK_ALIAS",
      "source": "projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME"
    }
  ]
}

Ganti kode berikut:

  • PROJECT_ID: project tempat membuat VM baru di
  • ZONE: zona untuk membuat VM baru
  • DISK_ALIAS: nama perangkat unik untuk digunakan sebagai alias disk di direktori /dev/disk/by-id/google-* VM yang menjalankan sistem operasi Linux. Nama ini dapat digunakan untuk mereferensikan disk untuk pemasangan, pengubahan ukuran, dan sebagainya dari dalam instance. Jika Anda tidak menentukan nama perangkat, VM akan memilih nama perangkat default untuk diterapkan ke disk ini dalam bentuk persistent-disk-x, dengan x sebagai nomor yang ditetapkan oleh Compute Engine. Kolom ini hanya berlaku untuk volume Persistent Disk.
  • DISK_NAME: nama disk yang dienkripsi

Menghapus kunci enkripsi Cloud KMS dari Persistent Disk

Anda dapat mendekripsi konten disk terenkripsi dan membuat disk baru yang menggunakan enkripsi default Google Cloud. Secara default, Google Cloud mengenkripsi semua data dalam penyimpanan.

  1. Buat snapshot disk terenkripsi.
  2. Gunakan snapshot terenkripsi baru untuk membuat persistent disk baru.

Setelah dibuat, Persistent Disk baru akan menggunakan enkripsi default Google Cloud untuk membantu melindungi konten disk. Snapshot apa pun yang Anda buat dari disk tersebut juga harus menggunakan enkripsi default.

Merotasi kunci enkripsi Cloud KMS untuk disk

Putar kunci yang digunakan untuk mengenkripsi disk dengan membuat disk baru yang menggunakan versi kunci Cloud KMS baru. Merotasi kunci adalah praktik terbaik untuk mematuhi praktik keamanan standar. Untuk merotasi kunci, lakukan langkah berikut:

  1. Rotasi kunci Cloud KMS Anda.
  2. Buat snapshot disk terenkripsi.
  3. Gunakan snapshot baru untuk membuat disk baru dengan kunci yang dirotasi pada langkah sebelumnya.
  4. Ganti disk yang terpasang ke VM Anda yang menggunakan kunci enkripsi lama.

Saat Anda membuat disk baru, versi kunci baru akan digunakan untuk enkripsi. Setiap snapshot yang Anda buat dari disk tersebut menggunakan versi kunci utama terbaru.

Saat Anda merotasi kunci, data yang dienkripsi dengan versi kunci sebelumnya tidak akan otomatis dienkripsi ulang. Untuk mengetahui informasi selengkapnya, lihat Enkripsi ulang data. Memutar kunci tidak otomatis akan menonaktifkan atau destroy versi kunci yang ada.

Dampak menonaktifkan atau menghapus CMEK

Menonaktifkan atau menghapus kunci enkripsi memiliki efek berikut pada resource berikut yang membantu dilindungi oleh kunci tersebut:

  • VM dengan disk yang terpasang tidak dapat melakukan booting. Jika Anda mengaktifkan penonaktifan VM saat pencabutan kunci, VM dengan disk terpasang yang digunakan oleh kunci tersebut untuk melindungi saat terjadi penonaktifan.
  • Disk tidak dapat dipasang ke VM, dan snapshot juga tidak dapat dibuat untuknya.
  • Snapshot tidak dapat digunakan untuk membuat disk.
  • Image tidak dapat digunakan untuk membuat disk.

Jika menonaktifkan kunci ini, Anda dapat membalik efek sebelumnya dengan mengaktifkan kunci tersebut. Jika Anda menghapus kunci ini, Anda tidak dapat membalikkan efek sebelumnya.

Mengonfigurasi penonaktifan VM pada pencabutan kunci Cloud KMS

Anda dapat mengonfigurasi VM agar otomatis dimatikan saat revoke kunci Cloud KMS yang membantu melindungi Persistent Disk yang terpasang ke VM. Anda dapat revoke kunci dengan menonaktifkan atau menghapusnya. Jika setelan ini diaktifkan, VM akan dihentikan dalam waktu 7 jam setelah pencabutan kunci.

Jika mengaktifkan kembali kunci tersebut, Anda dapat memulai ulang VM dengan disk yang terpasang yang ingin dilindungi oleh kunci tersebut. VM tidak secara otomatis dimulai ulang setelah Anda mengaktifkan kunci.

Konsol

Untuk mengonfigurasi VM agar berhenti beroperasi ketika kunci Cloud KMS dicabut, lakukan langkah berikut:

  1. Mulai buat VM yang berisi disk yang dilindungi oleh kunci Cloud KMS.
  2. Buka menu Networking, disk, security, management, sole-tenancy.
  3. Luaskan bagian Management.
  4. Di bagian Kebijakan pencabutan Kunci Enkripsi yang Dikelola Pelanggan (CMEK), pilih Matikan.

gcloud

Gunakan perintah gcloud compute instances create untuk membuat VM, dan menyertakan --key-revocation-action-type=stop.

gcloud compute instances create VM_NAME \
  --image IMAGE \
  --key-revocation-action-type=stop

REST

Gunakan metode instances.insert untuk membuat VM, dan tetapkan properti "keyRevocationActionType" ke "STOP". Contoh berikut membuat VM dari image publik.

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

{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "keyRevocationActionType": "STOP"
}

Atau, Anda dapat mengonfigurasi template instance untuk membuat VM yang akan dihentikan saat pencabutan kunci menggunakan Google Cloud CLI atau REST.

Konsol

Anda dapat menggunakan template instance untuk membuat VM yang dinonaktifkan saat kunci Cloud KMS dicabut.

  1. Mulai buat template instance baru yang berisi disk yang dilindungi oleh kunci Cloud KMS.
  2. Buka menu Networking, disk, security, management, sole-tenancy.
  3. Luaskan bagian Management.
  4. Di bagian Kebijakan pencabutan Kunci Enkripsi yang Dikelola Pelanggan (CMEK), pilih Shutdown.

gcloud

Buat template instance menggunakan perintah gcloud compute instance-templates create, dan sertakan --key-revocation-action-type=stop.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
  --key-revocation-action-type=stop

REST

Buat permintaan POST ke metode instanceTemplates.insert. Dalam isi permintaan, Anda harus secara eksplisit menentukan semua kolom konfigurasi yang diperlukan. Jika Anda ingin VM yang dibuat dari template ini dinonaktifkan saat kunci dicabut, tentukan "keyRevocationActionType":"STOP". Misalnya, template instance dengan kolom wajib diisi minimal yang akan membuat VM yang dinonaktifkan saat pencabutan kunci terlihat seperti berikut:

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

{
  "name": "example-template",
  "properties": {
  "machineType": "e2-standard-4",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs": [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-11"
      }
    }
  ],
  "keyRevocationActionType": "STOP"
  }
}

Setelah Anda membuat VM yang dikonfigurasi untuk dinonaktifkan pada pencabutan Cloud KMS, buat dan lampirkan Persistent Disk yang dienkripsi dengan kunci Cloud KMS.