Topik ini menunjukkan cara mengenkripsi ulang data menggunakan kunci simetris Cloud Key Management Service. Anda dapat menyesuaikan contoh ini untuk kunci asimetris. Jika Anda mencurigai penggunaan kunci yang tidak sah, Anda harus mengenkripsi ulang data yang dilindungi oleh kunci tersebut, lalu menonaktifkan atau menjadwalkan penghancuran versi kunci sebelumnya.
Sebelum memulai
Skenario ini memerlukan kondisi berikut.
Anda telah mengenkripsi data menggunakan Cloud KMS.
Versi kunci yang digunakan untuk enkripsi tidak dinonaktifkan, dijadwalkan untuk dimusnahkan, atau dihancurkan. Anda menggunakan versi kunci ini untuk mendekripsi data terenkripsi.
Anda sudah merotasi kunci. Rotasi kunci membuat versi kunci utama baru. Anda menggunakan versi kunci utama baru untuk mengenkripsi ulang data.
Mengenkripsi ulang data menggunakan kunci asimetris
Contoh dalam topik ini menunjukkan cara mengenkripsi ulang data menggunakan kunci simetris. Saat Anda menggunakan kunci simetris, Cloud KMS otomatis menyimpulkan versi kunci yang akan digunakan untuk dekripsi. Saat menggunakan kunci asimetris, Anda harus menentukan versi kunci.
- Saat mengikuti petunjuk untuk menggunakan Google Cloud CLI, selalu sertakan
flag
--version. - Saat mengikuti petunjuk penggunaan API, Anda menggunakan
CryptoKeyVersionsbukanCryptoKeys. Anda dapat membaca selengkapnya tentang mengenkripsi dan mendekripsi data dengan kunci asimetris.
Alur kerja untuk mengenkripsi ulang data dengan kunci asimetris serupa dengan yang dijelaskan dalam topik ini.
Alur kerja mengenkripsi ulang data
Gunakan langkah-langkah berikut untuk mengenkripsi ulang data dan menonaktifkan atau menjadwalkan penghancuran versi kunci yang digunakan untuk enkripsi asli.
Mendekripsi data menggunakan versi kunci sebelumnya
Cloud KMS otomatis menggunakan versi kunci yang benar untuk mendekripsi data, selama versi kunci tidak dinonaktifkan, dijadwalkan untuk dihancurkan, atau dihancurkan. Contoh berikut menunjukkan cara mendekripsi data. Ini adalah kode dekripsi yang sama yang digunakan dalam Mengenkripsi dan Mendekripsi.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade ke versi terbaru Google Cloud CLI terlebih dahulu.
gcloud kms decrypt \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--ciphertext-file FILE_TO_DECRYPT \
--plaintext-file DECRYPTED_OUTPUT
Ganti kode berikut:
KEY_NAME: nama kunci yang ingin Anda gunakan untuk dekripsi.KEY_RING: nama key ring yang berisi kunci.LOCATION: lokasi Cloud KMS yang berisi key ring.FILE_TO_DECRYPT: jalur ke file yang ingin Anda dekripsi.DECRYPTED_OUTPUT: jalur tempat Anda ingin menyimpan output yang didekripsi.
Untuk mengetahui informasi tentang semua flag dan kemungkinan nilai, jalankan perintah dengan flag --help.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu dan instal SDK C# Cloud KMS.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu dan instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu dan instal Cloud KMS Node.js SDK.
PHP
Untuk menjalankan kode ini, pelajari terlebih dahulu cara menggunakan PHP di Google Cloud dan instal Cloud KMS PHP SDK.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Cloud KMS Ruby SDK.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk mengetahui informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Teks terdekripsi yang ditampilkan dalam JSON dari Cloud KMS dienkode base64.
Untuk mendekripsi data terenkripsi, buat permintaan POST dan berikan informasi
project dan kunci yang sesuai serta tentukan teks terenkripsi (juga dikenal sebagai
ciphertext) yang akan didekripsi di kolom ciphertext isi permintaan.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME:decrypt" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data "{\"ciphertext\": \"ENCRYPTED_DATA\"}"
Ganti kode berikut:
PROJECT_ID: ID project yang berisi key ring dan kunci yang ingin Anda gunakan untuk dekripsi.LOCATION: lokasi Cloud KMS yang berisi key ring.KEY_RING: key ring yang berisi kunci yang ingin Anda gunakan untuk dekripsi.KEY_NAME: nama kunci yang ingin Anda gunakan untuk dekripsi.ENCRYPTED_DATA: data terenkripsi yang ingin Anda dekripsi.
Berikut contoh payload dengan data berenkode base64:
{ "ciphertext": "CiQAhMwwBo61cHas7dDgifrUFs5zNzBJ2uZtVFq4ZPEl6fUVT4kSmQ...", }
Enkripsi ulang data menggunakan versi kunci utama yang baru
Cloud KMS otomatis menggunakan versi kunci utama baru untuk mengenkripsi data. Contoh berikut menunjukkan cara mengenkripsi data. Ini adalah kode enkripsi yang sama yang digunakan dalam Mengenkripsi dan Mendekripsi.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade ke versi terbaru Google Cloud CLI terlebih dahulu.
gcloud kms encrypt \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--plaintext-file FILE_TO_ENCRYPT \
--ciphertext-file ENCRYPTED_OUTPUT
Ganti kode berikut:
KEY_NAME: nama kunci yang ingin Anda gunakan untuk enkripsi.KEY_RING: nama key ring yang berisi kunci.LOCATION: lokasi Cloud KMS yang berisi key ring.FILE_TO_ENCRYPT: jalur ke file yang ingin Anda enkripsi.ENCRYPTED_OUTPUT: jalur tempat Anda ingin menyimpan output terenkripsi.
Untuk mengetahui informasi tentang semua flag dan kemungkinan nilai, jalankan perintah dengan flag --help.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu dan instal SDK C# Cloud KMS.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu dan instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Cloud KMS Java SDK.