Topik ini menunjukkan cara melakukan operasi kunci simetris berikut:
- Mengenkripsi teks atau konten biner (teks biasa) dengan menggunakan kunci Cloud Key Management Service.
- Mendekripsi ciphertext yang dienkripsi dengan kunci Cloud KMS.
Jika Anda ingin menggunakan kunci asimetris untuk enkripsi, lihat Mengenkripsi dan mendekripsi data dengan kunci asimetris. Untuk mempelajari enkripsi simetris mentah, lihat enkripsi simetris mentah.
Sebelum memulai
Buat key ring dan kunci seperti yang dijelaskan dalam Membuat key ring dan kunci.
Pastikan pengguna yang memanggil metode enkripsi dan dekripsi memiliki izin
cloudkms.cryptoKeyVersions.useToEncrypt
dancloudkms.cryptoKeyVersions.useToDecrypt
pada kunci yang digunakan untuk mengenkripsi atau mendekripsi.Salah satu cara untuk mengizinkan pengguna mengenkripsi atau mendekripsi adalah dengan menambahkan pengguna ke peran IAM
roles/cloudkms.cryptoKeyEncrypter
,roles/cloudkms.cryptoKeyDecrypter
, atauroles/cloudkms.cryptoKeyEncrypterDecrypter
untuk kunci tersebut. Perlu diperhatikan bahwa peranroles/cloudkms.admin
tidak menyediakan kedua izin tersebut. Untuk mengetahui informasi selengkapnya, lihat Izin dan Peran.
Enkripsikan
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms encrypt \ --key key \ --keyring key-ring \ --location location \ --plaintext-file file-with-data-to-encrypt \ --ciphertext-file file-to-store-encrypted-data
Ganti key dengan nama kunci yang akan digunakan untuk enkripsi. Ganti key-ring dengan nama key ring tempat kunci tersebut berada. Ganti location dengan lokasi Cloud KMS untuk key ring. Ganti file-with-data-to-encrypt dan file-to-store-encrypted-data dengan jalur file lokal untuk membaca data teks biasa dan menyimpan output yang dienkripsi.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
PHP
Untuk menjalankan kode ini, pelajari cara menggunakan PHP di Google Cloud terlebih dahulu dan instal PHP SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Saat menggunakan JSON dan REST API, konten harus dienkode base-64 agar dapat dienkripsi oleh Cloud KMS.
Untuk mengenkripsi data, buat permintaan POST
dan berikan project serta
informasi kunci yang sesuai, serta tentukan teks berenkode base64 yang akan dienkripsi di
kolom plaintext
dari isi permintaan.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name:encrypt" \ --request "POST" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --data "{\"plaintext\": \"base64-encoded-input\"}"
Berikut adalah contoh payload dengan data berenkode base64:
{ "plaintext": "U3VwZXIgc2VjcmV0IHRleHQgdGhhdCBtdXN0IGJlIGVuY3J5cHRlZAo=", }
Dekripsi
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
gcloud kms decrypt \ --key key \ --keyring key-ring \ --location location \ --ciphertext-file file-path-with-encrypted-data \ --plaintext-file file-path-to-store-plaintext
Ganti key dengan nama kunci yang akan digunakan untuk dekripsi. Ganti key-ring dengan nama key ring tempat kunci akan berada. Ganti location dengan lokasi Cloud KMS untuk key ring. Ganti file-path-with-encrypted-data dan file-path-to-store-plaintext dengan jalur file lokal untuk membaca data terenkripsi dan menyimpan output yang didekripsi.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
PHP
Untuk menjalankan kode ini, pelajari cara menggunakan PHP di Google Cloud terlebih dahulu dan instal PHP SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Teks terdekripsi yang ditampilkan dalam JSON dari Cloud KMS dienkode menggunakan base64.
Untuk mendekripsi data terenkripsi, buat permintaan POST
dan berikan project
serta informasi kunci yang sesuai, serta tentukan teks terenkripsi (cipher) yang akan
didekripsi di kolom ciphertext
pada isi permintaan.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name:decrypt" \ --request "POST" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --data "{\"ciphertext\": \"encrypted-content\"}"
Berikut adalah contoh payload dengan data berenkode base64:
{ "ciphertext": "CiQAhMwwBo61cHas7dDgifrUFs5zNzBJ2uZtVFq4ZPEl6fUVT4kSmQ...", }
Langkah selanjutnya
- Baca selengkapnya tentang enkripsi simetris mentah.
- Baca selengkapnya tentang enkripsi envelope.
- Coba Codelab Mengenkripsi dan mendekripsi data dengan Cloud KMS.