Topik ini memberikan informasi tentang cara mengenkripsi disk dengan kunci enkripsi yang disediakan pelanggan.
Untuk informasi tentang enkripsi disk, lihat Tentang enkripsi disk.
Untuk informasi tentang cara mengenkripsi disk dengan kunci enkripsi yang dikelola pelanggan (CMEK), lihat Melindungi resource dengan menggunakan kunci Cloud KMS.
Menggunakan CSEK berarti Anda menyediakan kunci enkripsi Anda sendiri dan Compute Engine menggunakan kunci Anda untuk melindungi kunci buatan Google yang digunakan untuk mengenkripsi dan mendekripsi data Anda. Hanya pengguna yang dapat memberikan kunci yang benar yang dapat menggunakan resource yang dilindungi dengan kunci enkripsi yang disediakan pelanggan (CSEK).
Google tidak menyimpan kunci Anda di servernya dan tidak dapat mengakses data yang Anda lindungi kecuali jika Anda memberikan kuncinya. Hal ini juga berarti bahwa, jika Anda lupa atau kehilangan kunci, Google tidak dapat memulihkan kunci tersebut atau memulihkan data apa pun yang dienkripsi dengannya.
Saat Anda menghapus persistent disk, Google akan menghapus kunci cipher, sehingga data menjadi tidak dapat diambil. Proses ini tidak dapat diurungkan.
Sebelum memulai
- Baca disk, image, dan snapshot disk.
-
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Brasil
- India
Anda hanya dapat mengenkripsi persistent disk baru dengan kunci Anda sendiri. Anda tidak dapat mengenkripsi persistent disk yang sudah ada dengan kunci Anda sendiri.
Anda tidak dapat menggunakan kunci Anda sendiri dengan Disk SSD Lokal karena kunci dikelola oleh infrastruktur Google dan dihapus saat VM dihentikan.
Compute Engine tidak menyimpan kunci enkripsi dengan template instance, sehingga Anda perlu menyimpan kunci Anda sendiri di KMS untuk mengenkripsi disk di grup instance terkelola.
Anda tidak dapat menangguhkan instance yang memiliki disk yang dilindungi dengan CSEK.
- Gabung kunci Anda menggunakan kunci publik yang diberikan dalam sertifikat yang dikelola Compute Engine. Pastikan untuk menggabung kunci Anda menggunakan padding OAEP, bukan padding PKCS #1 v1.5.
- Enkode kunci yang digabungkan RSA menggunakan encoding base64 standar.
Opsional: Hasilkan kunci acak 256 bit (32 byte). Jika sudah memiliki kunci yang ingin digunakan, Anda dapat melewati langkah ini. Ada banyak cara untuk menghasilkan kunci. Contoh:
$ head -c 32 /dev/urandom | LC_CTYPE=C tr '\n' = > mykey.txt
Download public key certificate:
$ curl -s -O -L https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Ekstrak kunci publik dari sertifikat:
$ openssl x509 -pubkey -noout -in google-cloud-csek-ingress.pem > pubkey.pem
Gabungkan RSA kunci Anda. Pastikan untuk mengganti
mykey.txt
dengan file kunci Anda sendiri.$ openssl rsautl -oaep -encrypt -pubin -inkey pubkey.pem -in mykey.txt -out rsawrappedkey.txt
Enkode kunci yang digabungkan RSA menggunakan base64.
$ openssl enc -base64 -in rsawrappedkey.txt | tr -d '\n' | sed -e '$a\' > rsawrapencodedkey.txt
- URI yang sepenuhnya memenuhi syarat ke resource yang dilindungi oleh kunci
- Kunci yang terkait
- Jenis kunci,
raw
ataursa-encrypted
- Di Windows, pertimbangkan untuk menggunakan BitLocker atau Encrypting File System (EFS).
- Di macOS, pertimbangkan untuk menggunakan FileVault 2.
- Di Linux, pertimbangkan Linux Unified Key Setup (LUKS) atau eCryptfs.
Buka halaman Disks.
Klik Create disk dan masukkan properti untuk disk baru.
Di bagian Encryption, pilih Customer-supplied key.
Berikan kunci enkripsi untuk disk di kotak teks, lalu pilih Wrapped key jika kunci telah digabung dengan kunci RSA publik.
rawKey
: jika kunci Anda dienkode base64rsaEncryptedKey
: jika kunci Anda digabungkan RSA dan dienkode base64Buka halaman Snapshots.
Klik Create snapshot.
Pada Source disk, pilih disk terenkripsi yang ingin Anda buat snapshot-nya.
Berikan kunci enkripsi untuk disk di kotak teks, lalu pilih Wrapped key jika kunci telah digabung dengan kunci RSA publik.
Enkripsi snapshot baru dengan menyediakan kunci enkripsi tambahan di bagian Encryption.
Buka halaman Images.
Klik Create image.
Pada Source disk, pilih disk terenkripsi yang ingin Anda buat image-nya.
Di bagian Encryption, pilih solusi pengelolaan kunci enkripsi.
Jika kunci telah digabungkan dengan kunci RSA publik, pilih Wrapped key.
- Persistent disk:
sourceDiskEncryptionKey
- Image:
sourceImageEncryptionKey
Buka halaman Images.
Klik Create image.
Pada Source, pilih Cloud Storage file.
Di bagian Cloud Storage file, masukkan Cloud Storage URI.
Di bagian Encryption, pilih Customer-provided key dan berikan kunci enkripsi untuk mengenkripsi gambar di dalam kotak teks.
[IMAGE_NAME]
: nama untuk image kustom baru.[BUCKET_NAME]
: nama bucket Cloud Storage yang menyimpan file image terkompresi.[COMPRESSED_FILE]
: nama file image terkompresi.[KEY_FILE]
: jalur ke file kunci enkripsi di workstation lokal Anda.Buka halaman Disks.
Klik Create disk.
Di bagian Source type, pilih Snapshot.
Di bagian Encryption, pilih solusi pengelolaan kunci enkripsi.
Jika kunci telah digabungkan dengan kunci RSA publik, pilih Wrapped key.
Buka halaman Disks.
Klik Create disk.
Di bagian Source type, pilih Image.
Di bagian Encryption, pilih solusi pengelolaan kunci enkripsi.
Jika kunci telah digabungkan dengan kunci RSA publik, pilih Wrapped key.
Buka halaman Create an instance.
Di bagian Boot disk, klik Change, dan lakukan hal berikut:
- Di halaman Boot disk, klik tab Existing disks.
- Dari daftar Disk, pilih disk terenkripsi yang sudah ada untuk dipasang ke VM.
Masukkan kunci enkripsi di kotak teks, lalu pilih Wrapped key jika kunci telah digabungkan dengan kunci RSA publik.
Klik Select.
Lanjutkan dengan proses pembuatan VM.
- Buat image disk yang dienkripsi dan tentukan enkripsi otomatis untuk image baru.
- Gunakan image baru untuk membuat persistent disk baru.
Python
Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.
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.
Pembatasan
Untuk CSEK, batasan berikut berlaku:
Batasan umum
Ketersediaan kunci enkripsi yang disediakan pelanggan bergantung pada lokasi akun penagihan Anda, bukan lokasi resource.
Kunci enkripsi yang disediakan pelanggan tidak tersedia untuk akun penagihan yang berada di negara berikut:
Batasan teknis
Spesifikasi
Bagian ini menjelaskan spesifikasi enkripsi dan format CSEK.
Enkripsi
Compute Engine menggunakan kunci enkripsi Anda untuk melindungi kunci enkripsi Google dengan enkripsi AES-256.
Format kunci yang diperlukan
Andalah yang menentukan untuk membuat dan mengelola kunci. Anda harus memberikan kunci yang merupakan string 256-bit yang dienkode dalam base64 standard RFC 4648 ke Compute Engine.
Berikut adalah contoh kunci berenkode base64, yang dihasilkan dengan string "Hello from Google Cloud Platform".
SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=
Kunci ini dapat dihasilkan menggunakan skrip berikut:
read -sp "String:" ; \ [[ ${#REPLY} == 32 ]] && \ echo "$(echo -n "$REPLY" | base64)" || \ (>&2 echo -e "\nERROR:Wrong Size"; false)
Penggabungan kunci RSA
Selain mengenkode kunci dalam base64, Anda juga dapat menggabungkan kunci menggunakan public key certificate RSA yang disediakan oleh Google, mengenkode kunci tersebut dalam base64, lalu menggunakannya dalam permintaan Anda.
Penggabungan RSA adalah proses di mana Anda menggunakan kunci publik untuk mengenkripsi data Anda. Setelah dienkripsi dengan kunci publik, data hanya dapat didekripsi oleh kunci pribadi yang terkait. Dalam hal ini, kunci pribadi hanya diketahui oleh layanan Google Cloud. Dengan menggabungkan kunci menggunakan sertifikat RSA, Anda memastikan bahwa hanya layanan Google Cloud yang dapat membuka kunci Anda dan menggunakannya untuk melindungi data Anda.
Untuk mengetahui informasi selengkapnya, lihat Enkripsi RSA.
Agar dapat membuat kunci yang digabungkan RSA untuk Compute Engine, lakukan langkah berikut:
Download sertifikat publik yang dikelola oleh Compute Engine dari:
https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Ada banyak cara untuk menghasilkan dan menggabungkan RSA kunci Anda; menggunakan metode yang familier. Berikut ini dua contoh penggabungan RSA kunci yang dapat Anda gunakan.
Contoh 1
Petunjuk berikut menggunakan utilitas command line openssl untuk menggabungkan RSA dan mengenkode kunci.
Contoh 2
Berikut adalah contoh skrip Python yang menghasilkan string acak 256 bit (32 byte) dan membuat kunci yang digabungkan RSA berenkode base64 menggunakan library kriptografi:
Kunci Anda sekarang siap digunakan!
Menggunakan kunci yang digabungkan RSA
Dengan Google Cloud CLI, Anda dapat memberikan kunci reguler dan kunci yang digabungkan RSA melalui cara yang sama.
Di API, gunakan properti
sha256
, bukanrawKey
, jika Anda ingin menggunakan kunci yang digabungkan RSA.Mengenkripsi resource dengan CSEK menggunakan alat command line
Penyiapan
Kunci enkripsi dapat digunakan melalui Google Cloud CLI.
File kunci
Saat menggunakan alat command line
gcloud compute
untuk menyetel kunci, Anda menyediakan kunci yang dienkode menggunakan file kunci yang berisi kunci berenkode sebagai daftar JSON. Sebuah file kunci dapat berisi beberapa kunci, sehingga Anda dapat mengelola banyak kunci di satu tempat. Atau, Anda dapat membuat file kunci tunggal untuk menangani setiap kunci secara terpisah. File kunci hanya dapat digunakan dengan gcloud CLI. Saat menggunakan REST, Anda harus menyediakan kunci secara langsung dalam permintaan.Setiap entri dalam file kunci harus memberikan:
Saat Anda menggunakan file kunci dalam permintaan, alat ini akan mencari resource yang cocok dan menggunakan kunci terkaitnya. Jika tidak ditemukan resource yang cocok, permintaan akan gagal.
Contoh file kunci terlihat seperti ini:
[ { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/example-disk", "key": "acXTX3rxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY+c=", "key-type": "raw" }, { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/my-private-snapshot", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ]
Praktik terbaik untuk mengelola file kunci
Jika Anda menggunakan file kunci, berikan akses ke file tersebut hanya kepada pengguna yang membutuhkannya. Pastikan untuk menetapkan izin yang sesuai pada file ini dan pertimbangkan untuk mengenkripsi file tersebut menggunakan alat tambahan:
Mengenkripsi persistent disk baru dengan CSEK
Anda dapat mengenkripsi persistent disk baru dengan menyediakan kunci selama pembuatan VM atau disk.
Konsol
gcloud
Pada alat
gcloud compute
, enkripsi disk menggunakan flag--csek-key-file
selama pembuatan VM. Jika Anda menggunakan kunci yang digabungkan RSA, gunakan komponengcloud beta
:gcloud (beta) compute instances create example-instance --csek-key-file example-file.json
Untuk mengenkripsi persistent disk mandiri:
gcloud (beta) compute disks create example-disk --csek-key-file example-file.json
REST
Anda dapat mengenkripsi disk menggunakan properti
diskEncryptionKey
dan membuat permintaan ke API v1 untuk kunci mentah (tidak digabungkan RSA), atau ke API Beta untuk kunci yang digabungkan RSA. Sediakan salah satu properti berikut dalam permintaan Anda:Misalnya, untuk mengenkripsi disk baru selama pembuatan VM menggunakan kunci yang digabungkan RSA:
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/instances { "machineType": "zones/us-central1-a/machineTypes/e2-standard-2", "disks": [ { "type": "PERSISTENT", "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-9-stretch-v20170619" }, "boot": true } ], ... }
Demikian pula, Anda juga dapat menggunakan REST untuk membuat persistent disk mandiri baru dan mengenkripsinya dengan kunci Anda sendiri:
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/ us-central1-a/disks?sourceImage=https%3A%2F%2Fwww.googleapis.com%2Fcompute%2F alpha%2Fprojects%2Fdebian-cloud%2Fglobal%2Fimages%2Fdebian-9-stretch-v20170619 { "name": "new-encrypted-disk-key", "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "type": "zones/us-central1-a/diskTypes/pd-standard" }
Membuat snapshot dari disk yang dienkripsi dengan CSEK
Jika Anda membuat snapshot dari disk terenkripsi, snapshot tersebut juga harus dienkripsi. Anda harus menentukan kunci untuk mengenkripsi snapshot. Anda tidak dapat mengonversi disk terenkripsi atau snapshot terenkripsi untuk menggunakan enkripsi default Compute Engine, kecuali jika Anda membuat disk image baru dan persistent disk baru.
Snapshot disk yang dienkripsi dengan CSEK selalu merupakan snapshot lengkap. Beda halnya dengan snapshot disk yang dienkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK), yang sifatnya inkremental. Harga snapshot dihitung berdasarkan ukuran total snapshot, sehingga harga snapshot lengkap mungkin lebih mahal daripada snapshot inkremental.
Untuk membuat snapshot persistent disk dari disk terenkripsi, permintaan pembuatan snapshot harus menyediakan kunci enkripsi yang digunakan untuk mengenkripsi persistent disk.
Tinjau Praktik terbaik untuk snapshot persistent disk sebelum membuat snapshot.
Konsol
REST
Untuk membuat permintaan, berikan properti
sourceDiskEncryptionKey
untuk mengakses persistent disk sumber. Anda harus mengenkripsi snapshot baru menggunakan propertisnapshotEncryptionKey
.Buat permintaan ke API v1 untuk kunci mentah (tidak digabungkan RSA), atau ke API Beta untuk kunci yang digabungkan RSA.
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks/example-disk/createSnapshot { "snapshotEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceDiskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "name": "snapshot-encrypted-disk" }
Properti
sourceDiskEncryptionKey
harus cocok dengan kunci yang digunakan untuk mengenkripsi persist disk. Jika tidak, permintaan akan gagal.snapshotEncryptionKey
memungkinkan Anda menyediakan kunci untuk mengenkripsi snapshot, sehingga jika snapshot itu digunakan untuk membuat persistent disk baru, kunci yang cocok harus disediakan. Kunci ini harus mengikuti format kunci sebelumnya. Anda juga dapat memilih untuk tidak menentukan properti ini dan snapshot dapat digunakan untuk membuat persistent disk baru tanpa memerlukan kunci.Membuat image baru dari disk atau image kustom yang dienkripsi dengan CSEK
Anda dapat membuat image kustom dari persistent disk terenkripsi atau menyalin image terenkripsi. Anda tidak dapat menggunakan Konsol Google Cloud untuk menyalin image. Gunakan Google Cloud CLI atau REST untuk menyalin image.
Konsol
gcloud
Ikuti petunjuk untuk membuat image, dan tambahkan flag
--csek-key-file
dengan jalur ke file kunci enkripsi untuk objek sumber yang dienkripsi. Gunakan komponengcloud beta
jika Anda menggunakan kunci yang digabungkan RSA:gcloud (beta) compute images create .... --csek-key-file example-file.json
Jika ingin mengenkripsi image baru dengan kunci Anda, tambahkan kunci tersebut ke file kunci:
[ { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/source-disk", "key": "acX3RqzxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY-c=", "key-type": "raw" }, { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/the-new-image", "key": "TF0t-cSfl7CT7xRF1LTbAgi7U6XXUNC4zU_dNgx0nQc=", "key-type": "raw" } ]
REST
Permintaan pembuatan API Anda harus berisi properti kunci enkripsi untuk objek sumber. Misalnya, sertakan salah satu properti berikut, bergantung pada jenis objek sumber:
Sertakan juga properti
rawKey
ataursaEncryptedKey
, bergantung pada jenis kunci. Buat permintaan ke API v1 untuk kunci mentah (tidak digabungkan RSA), atau ke API Beta untuk kunci yang digabungkan RSA. Contoh berikut mengonversi persistent disk yang dienkripsi dan digabungkan RSA menjadi image yang menggunakan kunci enkripsi yang sama.POST https://compute.googleapis.com/compute/beta/projects/myproject/global/images { "name": "image-encrypted-disk", "sourceDiskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } "imageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceDisk": "projects/myproject/zones/us-central1-a/disks/source-disks" }
Properti
imageEncryptionKey
(opsional) memungkinkan Anda menyediakan kunci untuk mengenkripsi image. Jadi, saat image digunakan untuk membuat persistent disk baru, kunci yang cocok harus disediakan. Kunci ini harus mengikuti format kunci yang sama seperti yang dijelaskan di atas. Anda juga dapat memilih untuk tidak menentukan properti ini dan image dapat digunakan untuk membuat persistent disk baru tanpa memerlukan kunci.Mengenkripsi image yang diimpor dengan CSEK
Anda dapat mengenkripsi image baru saat mengimpor image kustom secara manual ke Compute Engine. Sebelum dapat mengimpor image, Anda harus membuat dan mengompresi file disk image serta mengupload file yang dikompresi tersebut ke Cloud Storage.
Impor image Compute Engine kustom yang ingin Anda enkripsi. Tentukan URI ke file yang dikompresi, lalu tentukan jalur ke file kunci enkripsi Anda.
Konsol
gcloud
Gunakan perintah
compute images create
untuk membuat image baru, dan tentukan flag--csek-key-file
dengan file kunci enkripsi. Jika Anda menggunakan kunci yang digabungkan RSA, gunakan komponengcloud beta
:gcloud (beta) compute images create [IMAGE_NAME] \ --source-uri gs://[BUCKET_NAME]/[COMPRESSED_FILE] \ --csek-key-file [KEY_FILE]
Ganti kode berikut:
REST
Untuk mengenkripsi image baru yang dibuat dari file RAW, tambahkan properti
imageEncryptionKey
baru ke permintaan pembuatan image, yang diikuti denganrawKey
ataursaEncryptedKey
. Buat permintaan ke API v1 untuk kunci mentah (tidak digabungkan RSA), atau ke API Beta untuk kunci yang digabungkan RSA.POST https://compute.googleapis.com/compute/beta/projects/myproject/global/images { "rawDisk": { "source": "http://storage.googleapis.com/example-image/example-image.tar.gz" }, "name": "new-encrypted-image", "sourceType": "RAW", "imageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } }
Membuat persistent disk dari resource yang dienkripsi dengan CSEK
Membuat disk dari snapshot yang dienkripsi dengan CSEK
Konsol
gcloud
Pada alat
gcloud compute
, berikan kunci enkripsi untuk snapshot menggunakan flag--csek-key-file
saat Anda membuat disk. Jika Anda menggunakan kunci yang digabungkan RSA, gunakan komponengcloud beta
:gcloud (beta) compute disks create ... --source-snapshot example-snapshot --csek-key-file example-file.json
REST
Untuk menggunakan snapshot terenkripsi, berikan
sourceSnapshotEncryptionKey
dalam permintaan Anda, diikuti denganrawKey
ataursaEncryptedKey
. Buat permintaan ke API v1 untuk kunci mentah (tidak digabungkan RSA), atau ke API Beta untuk kunci yang digabungkan RSA. Misalnya, ke persistent disk mandiri baru menggunakan snapshot terenkripsi:POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks { "name": "disk-from-encrypted-snapshot", "sourceSnapshot": "global/snapshots/encrypted-snapshot", "sourceSnapshotEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } }
Membuat disk dari image yang dienkripsi dengan CSEK
Konsol
gcloud
Pada alat
gcloud compute
, berikan kunci enkripsi untuk image menggunakan flag--csek-key-file
saat Anda membuat disk. Jika Anda menggunakan kunci yang digabungkan RSA, gunakan komponengcloud beta
:gcloud (beta) compute disks create ... --image example-image --csek-key-file example-file.json
REST
Untuk menggunakan image terenkripsi, berikan
sourceImageEncryptionKey
, diikuti denganrawKey
ataursaEncryptedKey
. Buat permintaan ke API v1 untuk kunci mentah (tidak digabungkan RSA), atau ke API Beta untuk kunci yang digabungkan RSA.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks { "name": "disk-from-encrypted-image", "sourceImageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceImage": "global/images/encrypted-image" }
Memasang disk yang dienkripsi dengan CSEK ke VM baru
Konsol
gcloud
Untuk membuat VM dan memasang disk terenkripsi, buat file kunci dan berikan kunci tersebut menggunakan flag
--csek-key-file
saat Anda membuat VM. Jika Anda menggunakan kunci yang digabungkan RSA, gunakan komponengcloud beta
:gcloud (beta) compute instances create example-instance \ --disk name=example-disk,boot=yes \ --csek-key-file example-file.json
REST
Buat VM menggunakan Compute Engine API dan masukkan
rawKey
ataursaEncryptedKey
bersama spesifikasi disk. Buat permintaan ke API v1 untuk kunci mentah (tidak digabungkan RSA), atau ke API Beta untuk kunci yang digabungkan RSA.Berikut adalah cuplikan contoh spesifikasi disk:
"disks": [ { "deviceName": "encrypted-disk", "source": "projects/myproject/zones/us-central1-f/disks/encrypted-disk", "diskEncryptionKey": { "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" } } ]
Memulai atau memulai ulang VM yang memiliki disk terenkripsi dengan CSEK
Untuk mengetahui detail tentang cara menghentikan atau memulai VM yang memiliki disk terenkripsi, baca Memulai ulang VM dengan disk terenkripsi.
Menggunakan command line untuk membuat resource campuran
Jika Anda ingin mencampur resource yang dienkripsi pelanggan dengan resource yang terenkripsi standar dalam satu permintaan dengan Google Cloud CLI, Anda dapat menggunakan flag
--csek-key-file
dengan file kunci dan--no-require-csek-key-create
dalam permintaan Anda. Dengan menyediakan kedua flag, gcloud CLI membuat resource yang dienkripsi pelanggan yang secara eksplisit ditentukan dalam file kunci Anda, dan juga membuat resource standar yang Anda tentukan.Misalnya, anggaplah sebuah file kunci berisi baris kode berikut:
[ { "uri": "https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks/example-disk", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ]
Jika Anda ingin membuat VM dengan disk yang dienkripsi pelanggan menggunakan file kunci, dan secara bersamaan membuat VM dengan disk terenkripsi standar dalam permintaan yang sama, Anda dapat melakukannya seperti berikut:
gcloud beta compute instances create example-disk example-disk-2 \ --csek-key-file mykeyfile.json --no-require-csek-key-create
Biasanya, pembuatan
example-disk-2
tidak dapat dilakukan jika Anda menentukan flag--csek-key-file
karena disk tidak ditentukan secara eksplisit dalam file kunci. Dengan menambahkan--no-require-csek-key-create
, kedua disk akan dibuat, satu dienkripsi menggunakan file kunci, dan satu lagi dienkripsi menggunakan enkripsi Google.Menghapus CSEK dari persistent disk
Anda dapat mendekripsi isi disk yang dienkripsi pelanggan dan membuat disk baru yang menggunakan enkripsi default Compute Engine.
Persistent disk baru yang Anda buat akan menggunakan enkripsi default Compute Engine untuk melindungi isi disk. Snapshot apa pun yang Anda buat dari disk tersebut juga harus menggunakan enkripsi default.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-12-22 UTC.
-