Dokumen ini memberikan informasi tentang cara menggunakan kunci yang dikelola oleh Cloud KMS Cloud Key Management Service untuk mengenkripsi disk dan penyimpanan terkait penyimpanan lainnya Google Cloud Platform. Kunci yang dikelola oleh Cloud KMS dikenal sebagai kunci enkripsi yang dikelola pelanggan (Customer-Managed Encryption Key/CMEK).
Anda dapat menggunakan CMEK untuk mengenkripsi Resource Compute Engine, seperti disk, image mesin, snapshot instan dan snapshot standar.
Untuk mempelajari lebih lanjut penggunaan kunci enkripsi yang disediakan pelanggan (CSEK) untuk mengenkripsi {i>disk<i} dan sumber daya penyimpanan lainnya, lihat Mengenkripsi disk dengan kunci enkripsi yang disediakan pelanggan.
Pelajari Enkripsi disk lebih lanjut.
Sebelum memulai
- Pahami disk, image, snapshot persistent disk, dan instance virtual machine (VM).
- Putuskan apakah Anda akan menjalankan Compute Engine dan Cloud KMS di project Google Cloud yang sama, atau di project yang berbeda project secara terprogram. Untuk mengetahui informasi tentang project ID dan nomor project Google Cloud, lihat Mengidentifikasi project.
- Untuk project Google Cloud yang menjalankan Cloud KMS, lakukan
berikut ini:
-
Aktifkan API Cloud KMS.
-
-
Jika Anda belum melakukannya, siapkan autentikasi.
Authentication adalah
proses yang digunakan untuk memverifikasi identitas Anda agar dapat mengakses 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
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- 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 bahwa Agen Layanan Compute Engine memiliki
izin untuk melindungi resource dengan menggunakan kunci Cloud KMS,
minta administrator untuk memberi Agen Layanan Compute Engine
Peran IAM Cloud KMS CryptoKey dalam Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter
) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga bisa memberikan Agen Layanan Compute Engine izin yang diperlukan melalui perintah peran atau setelan standar lainnya peran tertentu.
Agen Layanan Compute Engine memiliki format berikut:
service-PROJECT_NUMBER@compute-system.
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. \ --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 di disk dienkripsi menggunakan kunci milik dan dikelola Google. Untuk mengetahui spesifikasi yang terkait dengan enkripsi default di Google Cloud, lihat Enkripsi default dalam penyimpanan dalam dokumentasi Keamanan.
Dengan Confidential mode untuk Hyperdisk Balanced dan Cloud HSM, kunci enkripsi data (DEK) memiliki properti keamanan dengan enklave yang didukung hardware.
Batasan
Anda tidak dapat mengenkripsi resource yang ada dengan CMEK. Anda hanya dapat mengenkripsi {i>disk<i}, {i>image<i}, dan {i>snapshot <i}dengan CMEK saat Anda membuatnya.
Saat membuat disk dari snapshot instan terenkripsi CMEK, Anda harus menentukan kunci yang digunakan untuk mengenkripsi disk sumber. Anda tidak perlu menentukan kunci saat bekerja dengan resource lain yang dienkripsi CMEK seperti clone disk dan snapshot standar.
Anda tidak dapat menggunakan kunci Anda sendiri dengan disk SSD Lokal karena kuncinya dikelola oleh infrastruktur Google Cloud dan dihapus saat VM dihentikan.
Resource regional (disk) hanya dapat dienkripsi dengan kunci di salah satu opsi berikut Lokasi Cloud KMS:
- Kunci di region yang sama dengan disk
- Kunci multi-regional di lokasi geografis yang sama dengan disk
- Kunci di lokasi global.
Misalnya, disk di zona
us-west1-a
dapat dienkripsi dengan kunci di lokasi global, regionus-west1
, atau multi-regionus
.Resource global (seperti gambar dan snapshot) dapat dienkripsi oleh kunci dalam lokasi HTTP/HTTPS. Untuk informasi selengkapnya, lihat Jenis lokasi untuk Cloud KMS.
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.
Confidential Mode untuk Hyperdisk Balanced mewarisi batasan hyperdisk yang ada, dan memiliki batasan tambahan berikut:
- Anda hanya dapat memasang disk Balanced Hyperdisk dalam mode Rahasia ke VM N2D dengan
Confidential VM atau Confidential Google Kubernetes Engine Node dalam hal berikut
wilayah:
europe-west4
us-central1
us-east4
us-east5
us-south1
us-west4
- Anda tidak dapat menangguhkan atau melanjutkan instance virtual machine (VM) dengan Confidential Mode untuk disk Balanced Hyperdisk.
- Anda tidak dapat menggunakan Hyperdisk Storage Pools dengan Confidential mode untuk Hyperdisk Balanced.
- Anda tidak dapat membuat image kustom dari Confidential mode untuk disk Hyperdisk Balanced.
- Anda hanya dapat memasang disk Balanced Hyperdisk dalam mode Rahasia ke VM N2D dengan
Confidential VM atau Confidential Google Kubernetes Engine Node dalam hal berikut
wilayah:
Pembuatan kunci manual atau otomatis
Anda dapat membuat kunci Cloud KMS secara manual atau menggunakan Kunci Otomatis Cloud KMS (Pratinjau). Kunci otomatis menyederhanakan pembuatan dan pengelolaan kunci Cloud KMS dengan mengotomatiskan penyediaan dan penugasan. Dengan {i>Autokey<i}, Anda tidak perlu menyediakan kunci cincin, kunci, dan akun layanan terlebih dahulu. Sebaliknya, mereka dibuat pada permintaan sebagai bagian dari pembuatan resource Compute Engine. Untuk informasi selengkapnya, lihat Ringkasan kunci otomatis.
Membuat key ring dan kunci secara manual
Untuk project Google Cloud yang menjalankan Cloud KMS, buat key ring dan kunci sebagaimana dijelaskan dalam Membuat key ring dan kunci.
Mengenkripsi Persistent Disk baru dengan CMEK
Anda dapat mengenkripsi Persistent Disk baru dengan menyediakan kunci selama VM atau disk pembuatan konten.
Konsol
- Di konsol Google Cloud, buka halaman Disks.
- Klik Create disk dan masukkan properti untuk disk baru.
- Di bagian Encryption, pilih Customer-managed key.
- Di menu drop-down, pilih kunci Cloud KMS yang ingin Anda gunakan untuk mengenkripsi disk ini.
- Untuk membuat disk, klik Create.
gcloud
Buat disk terenkripsi dengan menggunakan
Perintah gcloud compute disks create
,
dan tentukan kunci menggunakan flag --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 baruKMS_PROJECT_ID
: project yang memiliki kunci Cloud KMSREGION
: region tempat kunci beradaKEY_RING
: nama key ring yang menyertakan kunciKEY
: nama kunci yang digunakan untuk mengenkripsi disk
REST
Buat permintaan POST
ke
metode instances.insert
.
Untuk mengenkripsi disk, gunakan properti diskEncryptionKey
dengan
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 EngineZONE
: zona untuk membuat VMMACHINE_TYPE
: jenis mesin, misalnyac3-standard-4
KMS_PROJECT_ID
: project yang memiliki Kunci Cloud KMSREGION
: region tempat disk beradaKEY_RING
: nama key ring yang menyertakan kunciKEY
: nama kunci yang digunakan untuk mengenkripsi diskSOURCE_IMAGE
: gambar yang akan digunakan saat membuat Misalnya,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
Demikian pula, Anda 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 EngineZONE
: zona untuk membuat diskSOURCE_IMAGE
: gambar yang akan digunakan saat membuat misalnya,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
DISK_NAME
: nama untuk disk baruKMS_PROJECT_ID
: project yang memiliki Kunci Cloud KMSREGION
: region tempat disk beradaKEY_RING
: nama key ring yang menyertakan kunciKEY
: nama kunci yang digunakan untuk mengenkripsi diskDISK_TYPE
: jenis disk yang akan dibuat
Membuat volume Hyperdisk Balanced dalam mode Confidential
Untuk membuat Hyperdisk baru dalam mode Rahasia dengan konsol Google Cloud, Google Cloud CLI, atau REST.
Konsol
- Di konsol Google Cloud, buka halaman Disks.
- Klik Create disk dan masukkan properti untuk disk baru.
- Di bagian Disk settings, pilih Hyperdisk Balanced untuk jenis disk.
- Opsional. Ubah Size disk default, Provisioninged IOPS, dan Setelan throughput yang disediakan untuk disk.
- Di bagian Enkripsi, pilih kunci Cloud KMS.
- Di daftar kunci, pilih kunci Cloud HSM yang Anda inginkan untuk mengenkripsi disk ini.
- Di bagian Confidential Computing, pilih Enable Confidential Computing services.
- Untuk membuat disk, klik Buat.
gcloud
Enkripsi disk baru dengan Confidential Mode untuk Hyperdisk Balanced dengan menggunakan
Perintah gcloud compute disks create
.
Aktifkan Mode rahasia dengan flag --confidential-compute
dan tentukan
kunci tersebut menggunakan flag --kms-key
.
gcloud compute disks create DISK_NAME \ --type=hyperdisk-balanced \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY \ --confidential-compute
Ganti kode berikut:
DISK_NAME
: nama disk baruKMS_PROJECT_ID
: project yang memiliki Kunci Cloud HSMREGION
: region tempat kunci beradaKEY_RING
: nama key ring yang menyertakan kunciKEY
: nama kunci yang digunakan untuk mengenkripsi disk
REST
Buat permintaan POST
ke
metode instances.insert
.
Untuk mengenkripsi disk dengan Confidential mode untuk Hyperdisk Balanced, gunakan properti diskEncryptionKey
dengan
kmsKeyName
dan setel tanda enableConfidentialCompute
. Misalnya,
Anda dapat mengenkripsi disk baru selama
pembuatan VM menggunakan kunci Cloud HSM dengan
menggunakan hal berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "type": "DISK_TYPE", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "initializeParams": { "sourceImage": "SOURCE_IMAGE", "enableConfidentialCompute": true }, "boot": true } ], "networkInterfaces": [ { "network": "global/networks/default" } ] }
Ganti kode berikut:
DISK_TYPE
: jenis disk yang akan dibuat, untuk contoh,hyperdisk-balanced
PROJECT_ID
: ID project Google Cloud menjalankan Compute EngineZONE
: zona untuk membuat VMMACHINE_TYPE
: jenis mesin, misalnyan2d-standard-4
KMS_PROJECT_ID
: project yang memiliki kunci Cloud HSMREGION
: region tempat disk beradaKEY_RING
: nama key ring yang menyertakan kunciKEY
: nama kunci yang digunakan untuk mengenkripsi diskSOURCE_IMAGE
: gambar yang mendukung Confidential VM yang digunakan saat membuat VM, misalnya,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
Demikian pula, Anda dapat menggunakan metode disks.insert
untuk membuat mode Confidential baru untuk Hyperdisk Balanced:
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", "enableConfidentialCompute": true }
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud yang menjalankan Compute EngineZONE
: zona untuk membuat diskSOURCE_IMAGE
: image yang mendukung Confidential VM saat membuat misalnya,projects/debian-cloud/global/images/debian-11-bullseye-v20231115
DISK_NAME
: nama untuk disk baruKMS_PROJECT_ID
: project yang memiliki Kunci Cloud HSMREGION
: region tempat disk beradaKEY_RING
: nama key ring yang menyertakan kunciKEY
: nama kunci yang digunakan untuk mengenkripsi diskDISK_TYPE
: jenis disk yang akan dibuat, untuk contoh,hyperdisk-balanced
.
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 terenkripsi 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 inkremental.
Konsol
- Di Konsol Google Cloud, buka halaman Snapshots.
- Klik Create snapshot.
- 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 {i>disk<i} juga digunakan untuk mengenkripsi {i>snapshot<i}.
Anda dapat membuat snapshot di kebijakan lokasi penyimpanan yang ditentukan oleh setelan snapshot 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 yang disesuaikan yang dikonfigurasi di setelan snapshot, 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 khusus, sertakan Flag
--storage-location
untuk menunjukkan tempat menyimpan snapshot.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 ARCHIVE.
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 di kebijakan lokasi penyimpanan yang ditentukan oleh setelan snapshot 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 yang disesuaikan yang dikonfigurasi di setelan snapshot Anda, buat permintaan
POST
ke Metodesnapshots.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 Metodesnapshots.insert
dan sertakan propertistorageLocations
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 disk yang ingin Anda gunakan 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 mengenkripsi disk sumber.
- SNAPSHOT_TYPE: Jenis snapshot, STANDARD atau ARCHIVE.
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 bila Anda ingin mengganti lokasi penyimpanan default yang telah ditentukan sebelumnya atau yang telah disesuaikan dalam snapshot Anda. setelan.
Mengenkripsi image yang diimpor dengan CMEK
Anda dapat mengenkripsi gambar baru saat Anda mengimpor gambar kustom untuk Compute Engine. Sebelum dapat mengimpor image, Anda harus membuat dan mengompresi file disk image serta mengupload file yang dikompresi tersebut ke Cloud Storage.
Konsol
- Di Konsol Google Cloud, buka halaman Images.
- Klik Create image.
- Untuk Source disk, pilih disk yang ingin Anda buat imagenya.
- Untuk Encryption, pilih Customer-managed key.
- Di menu drop-down, pilih kunci Cloud KMS yang ingin Anda gunakan untuk mengenkripsi image ini.
- 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
gambar tersebut.
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 buatSOURCE_DISK
: nama disk untuk membuat snapshot penggunaKMS_PROJECT_ID
: project yang berisi Kunci Cloud KMSREGION
: region tempat kunci Cloud KMS berada terletak diKEY_RING
: key ring yang berisi kunci Cloud KMSKEY
: nama kunci yang digunakan untuk mengenkripsi disk baru
REST
Untuk mengenkripsi gambar yang diimpor, buat permintaan POST
ke
Metode images.insert
.
Menentukan URI ke file yang dikompresi, menambahkan
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 inciIMAGE_NAME
: nama image yang Anda buatKMS_PROJECT_ID
: project yang berisi kunci Cloud KMSREGION
: region tempat kunci Cloud KMS berada terletak diKEY_RING
: key ring yang berisi kunci Cloud KMSKEY
: nama kunci yang Anda gunakan mengenkripsi disk sumber
Membuat Persistent Disk dari snapshot yang dienkripsi dengan CMEK
Untuk membuat Persistent Disk mandiri baru dari snapshot terenkripsi, lakukan metode berikut ini:
Konsol
- Di konsol Google Cloud, buka halaman Disks.
- Klik Create disk dan masukkan properti untuk disk baru.
- Untuk Source type, pilih snapshot atau gambar yang ingin Anda gunakan.
Opsional: Jika Anda ingin menentukan kunci enkripsi baru, untuk Enkripsi, tentukan jenis kunci enkripsi yang akan digunakan, lalu menyediakan informasi kunci enkripsi.
Jika Anda ingin menghapus kunci enkripsi yang dikelola pelanggan atau yang disediakan pelanggan, untuk Enkripsi, gunakan nilai default Kunci enkripsi yang dikelola Google.
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 baruSNAPSHOT_NAME
: nama snapshot terenkripsiUntuk menggunakan gambar, bukan snapshot, ganti
--source-snapshot SNAPSHOT_NAME
dengan--image IMAGE_NAME
.KMS_PROJECT_ID
: Opsional: project yang berisi kunci Cloud KMSREGION
: Opsional: region Cloud KMS kunci terletak diKEY_RING
: Opsional: key ring yang berisi Kunci Cloud KMSKEY
: Opsional: nama kunci Cloud KMS untuk mengenkripsi disk baru.Untuk mengenkripsi disk baru, Anda dapat melakukan salah satu langkah berikut:
- Untuk menentukan kunci enkripsi yang dikelola pelanggan baru, gunakan metode
--kms-key
. - Untuk menggunakan kunci default yang dimiliki Google dan dikelola Google, jangan sertakan
--kms-key
.
- Untuk menentukan kunci enkripsi yang dikelola pelanggan baru, gunakan metode
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 untuk membuat disk baruZONE
: zona untuk membuat disk baruDISK_NAME
: nama disk baruSNAPSHOT_PROJECT_ID
: project yang berisi ringkasanSNAPSHOT_NAME
: nama snapshot terenkripsiUntuk menggunakan gambar, bukan snapshot, ganti
sourceSnapshot
dengansourceImage
.KMS_PROJECT_ID
: Opsional: project yang berisi kunci Cloud KMSREGION
: Opsional: region Cloud KMS kunci terletak diKEY_RING
: Opsional: key ring yang berisi Kunci Cloud KMSKEY
: Opsional: nama kunci Cloud KMS untuk mengenkripsi disk baru.Jika Anda menyertakan
diskEncryptionKey
, disk akan dienkripsi dengan kunci Cloud KMS yang ditentukan. Jika Anda tidak menyertakandiskEncryptionKey
, lalu disk akan dienkripsi menggunakan kunci yang dimiliki Google dan dikelola Google.
Memasang boot disk yang dienkripsi dengan CMEK ke VM baru
Konsol
Di konsol Google Cloud, buka halaman Create an instance.
Tentukan detail VM, lalu di bagian Boot disk, klik Change. Kemudian, lakukan hal berikut:
- Klik Existing disk.
- Dalam daftar Disk, pilih disk yang ada untuk dipasang ke VM.
- Klik Select.
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 terenkripsi, seperti yang ditunjukkan dalam
contoh berikut:
gcloud compute instances create VM_NAME \ ... --disk name=DISK_NAME,boot=yes
Ganti kode berikut:
VM_NAME
: nama VM yang Anda buatDISK_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 dalam
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 baruZONE
: zona tempat membuat VM baruDISK_ALIAS
: nama perangkat unik yang akan digunakan sebagai alias disk di direktori/dev/disk/by-id/google-*
VM yang menjalankan sistem operasi Linux. Nama ini dapat digunakan sebagai referensi {i>disk<i} untuk seperti memasang atau mengubah ukuran dari dalam instance. Jika Anda tidak menentukan nama perangkat, VM memilih nama perangkat default untuk diterapkan disk ini, dalam bentukpersistent-disk-x
, denganx
adalah angka yang ditetapkan oleh Compute Engine. Bidang ini hanya berlaku untuk Volume Persistent Disk.DISK_NAME
: nama disk yang dienkripsi
Menghapus kunci enkripsi Cloud KMS dari Persistent Disk
Anda dapat membongkar enkripsi isi {i>disk<i} terenkripsi dan membuat {i>disk<i} baru yang menggunakan enkripsi default Google Cloud. Secara default, Google Cloud mengenkripsi semua data dalam penyimpanan.
- Buat snapshot disk terenkripsi.
- Gunakan snapshot terenkripsi baru untuk membuat persistent disk baru.
Setelah dibuat, Persistent Disk baru akan menggunakan default Google Cloud enkripsi untuk membantu melindungi isi {i>disk<i}. 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:
- Rotasi kunci Cloud KMS Anda.
- Buat snapshot disk terenkripsi.
- Gunakan snapshot baru untuk membuat disk baru dengan kunci yang diputar pada langkah sebelumnya.
- Ganti disk yang terpasang ke VM Anda yang menggunakan kunci enkripsi lama.
Saat Anda membuat {i>disk<i} baru, {i>disk<i} itu menggunakan versi kunci baru untuk enkripsi. Setiap snapshot yang Anda buat dari disk tersebut menggunakan versi kunci.
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 menghancurkan 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 mati secara otomatis saat mencabut kunci Cloud KMS yang membantu melindungi Persistent Disk yang terpasang ke VM. Anda dapat mencabut 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:
- Mulai buat VM yang berisi disk yang dilindungi oleh kunci Cloud KMS.
- Buka menu Networking, disks, security, management, sole-tenancy.
- Luaskan bagian Management.
- Di bagian Kebijakan pencabutan Kunci Enkripsi yang Dikelola Pelanggan (CMEK), pilih Matikan.
gcloud
Gunakan gcloud compute instances create
untuk membuat VM, dan
menyertakan --key-revocation-action-type=stop
.
gcloud compute instances createVM_NAME
\ --imageIMAGE
\ --key-revocation-action-type=stop
REST
Gunakan metode instances.insert
membuat VM, dan menyetel 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 mematikan saat pencabutan kunci dengan menggunakan Google Cloud CLI atau REST.
Konsol
Anda dapat menggunakan template instance untuk membuat VM yang dimatikan saat kunci Cloud KMS dicabut.
- Mulai buat template instance baru yang berisi disk yang dilindungi oleh kunci Cloud KMS.
- Buka menu Networking, disk, security, management, sole-tenancy.
- Luaskan bagian Management.
- 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 mendefinisikan semua
isian 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 dimatikan di Cloud KMS pencabutan, membuat dan pasang Persistent Disk dienkripsi dengan kunci Cloud KMS.