Membuat kunci enkripsi dengan Cloud KMS

Panduan memulai ini menunjukkan cara membuat dan menggunakan kunci enkripsi dengan Cloud Key Management Service di project yang Anda miliki. Petunjuk ini menggunakan konsolGoogle Cloud untuk membuat key ring, kunci, dan versi kunci di Cloud KMS. Untuk petunjuk yang menggunakan metode lain, lihat Ringkasan Autokey, Membuat ring kunci, dan Membuat kunci.

Panduan memulai ini menggunakan command line untuk mengirim permintaan ke Cloud KMS API. Untuk contoh pemrograman yang menggunakan library klien untuk mengirim permintaan ke Cloud KMS API, lihat Mengenkripsi dan Mendekripsi.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Instal Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  6. Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.

  7. Aktifkan Cloud KMS API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    gcloud services enable cloudkms.googleapis.com
  8. Memberikan peran ke akun pengguna Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut: roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecrypter

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Ganti kode berikut:

    • PROJECT_ID: Project ID Anda.
    • USER_IDENTIFIER: ID untuk akun pengguna Anda. Misalnya, myemail@example.com.
    • ROLE: Peran IAM yang Anda berikan ke akun pengguna Anda.
  9. Instal Google Cloud CLI.

  10. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  11. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  13. Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.

  14. Aktifkan Cloud KMS API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    gcloud services enable cloudkms.googleapis.com
  15. Memberikan peran ke akun pengguna Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut: roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecrypter

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Ganti kode berikut:

    • PROJECT_ID: Project ID Anda.
    • USER_IDENTIFIER: ID untuk akun pengguna Anda. Misalnya, myemail@example.com.
    • ROLE: Peran IAM yang Anda berikan ke akun pengguna Anda.

Key ring dan kunci

Untuk mengenkripsi dan mendekripsi konten, Anda memerlukan kunci Cloud KMS, yang merupakan bagian dari key ring.

Buat key ring bernama test, dan kunci bernama quickstart. Lihat ringkasan hierarki objek untuk mengetahui informasi selengkapnya tentang objek ini dan hubungannya.

gcloud kms keyrings create "test" \
    --location "global"
gcloud kms keys create "quickstart" \
    --location "global" \
    --keyring "test" \
    --purpose "encryption"

Anda dapat menggunakan opsi list untuk melihat nama dan metadata kunci yang baru saja Anda buat.

gcloud kms keys list \
    --location "global" \
    --keyring "test"

Anda akan melihat:

NAME                                                                      PURPOSE          PRIMARY_STATE
projects/PROJECT_ID/locations/global/keyRings/test/cryptoKeys/quickstart  ENCRYPT_DECRYPT  ENABLED

Mengenkripsi data

Setelah memiliki kunci, Anda dapat menggunakan kunci tersebut untuk mengenkripsi konten teks atau biner.

Simpan beberapa teks yang akan dienkripsi dalam file bernama "mysecret.txt".

echo -n "Some text to be encrypted" > mysecret.txt

Untuk mengenkripsi data dengan gcloud kms encrypt, berikan informasi kunci Anda, tentukan nama file teks biasa yang akan dienkripsi, dan tentukan nama file yang akan berisi konten terenkripsi:

gcloud kms encrypt \
    --location "global" \
    --keyring "test" \
    --key "quickstart" \
    --plaintext-file ./mysecret.txt \
    --ciphertext-file ./mysecret.txt.encrypted

Metode encrypt menyimpan konten terenkripsi Anda dalam file yang ditentukan oleh flag --ciphertext-file.

Mendekripsi teks tersandi

Untuk mendekripsi data dengan gcloud kms decrypt, berikan informasi kunci Anda, tentukan nama file terenkripsi (file ciphertext) yang akan didekripsi, dan tentukan nama file yang akan berisi konten yang didekripsi:

gcloud kms decrypt \
    --location "global" \
    --keyring "test" \
    --key "quickstart" \
    --ciphertext-file ./mysecret.txt.encrypted \
    --plaintext-file ./mysecret.txt.decrypted

Metode decrypt menyimpan konten yang didekripsi dalam file yang ditentukan oleh flag --plaintext-file.

Untuk mendekripsi konten terenkripsi, Anda harus menggunakan kunci yang sama yang digunakan untuk mengenkripsi konten tersebut.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus project Google Cloud yang berisi resource tersebut.

Mencantumkan versi yang tersedia untuk kunci Anda:

gcloud kms keys versions list \
    --location "global" \
    --keyring "test" \
    --key "quickstart"

Untuk menghancurkan versi, jalankan perintah berikut, dengan 1 adalah nomor versi kunci yang ingin Anda hancurkan:

gcloud kms keys versions destroy 1 \
    --location "global" \
    --keyring "test" \
    --key "quickstart"

Langkah berikutnya