Menggunakan kunci enkripsi yang dikelola pelanggan (CMEK)

Secara default, Workflows mengenkripsi konten pelanggan dalam penyimpanan. Workflows menangani enkripsi untuk Anda tanpa tindakan tambahan dari Anda. Opsi ini disebut Enkripsi default Google.

Jika ingin mengontrol kunci enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud KMS dengan layanan yang terintegrasi dengan CMEK, termasuk Workflows. Dengan menggunakan kunci Cloud KMS, Anda dapat mengontrol tingkat perlindungan, lokasi, jadwal rotasi, izin penggunaan dan akses, serta batasan kriptografisnya. Dengan Cloud KMS, Anda juga dapat melacak penggunaan kunci, melihat log audit, dan mengontrol siklus proses kunci. Bukan Google yang memiliki dan mengelola kunci enkripsi kunci (KEK) simetris yang melindungi data Anda. Andalah yang mengontrol dan mengelola kunci ini di Cloud KMS.

Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Workflows Anda akan serupa dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Anda dapat melindungi alur kerja dan data terkait dalam penyimpanan menggunakan kunci enkripsi yang hanya dapat Anda akses, dan yang dapat Anda kontrol dan kelola menggunakan Cloud KMS.

Yang dilindungi oleh CMEK

Saat men-deploy alur kerja, Anda dapat menentukan kunci Cloud KMS. Kunci ini digunakan untuk mengenkripsi alur kerja dan eksekusinya:

  • Alur kerja memerlukan file sumber yang berisi definisi alur kerja yang valid. File sumber ini dienkripsi menggunakan kunci.

  • Eksekusi alur kerja menjalankan definisi alur kerja saat ini (revisi alur kerja tertentu). Menggunakan kunci yang terkait dengan revisi alur kerja pada waktu deployment-nya, alur kerja yang dikompilasi, serta input, output, dan data runtime eksekusi yang disimpan dienkripsi. Hal ini mencakup argumen eksekusi, hasil, error, dan pengecualian; yang dikirimkan peristiwa Eventarc; serta callback dan permintaan serta respons HTTP.

Sebelum memulai

Sebelum menggunakan CMEK di Workflows, selesaikan langkah-langkah berikut:

  1. Aktifkan API.

    Konsol

    1. Aktifkan Cloud KMS dan Workflows API.

      Peran yang diperlukan untuk mengaktifkan API

      Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

      Aktifkan API

    gcloud

    1. Di konsol Google Cloud , aktifkan Cloud Shell.

      Aktifkan Cloud Shell

      Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.

    2. Perbarui komponen gcloud.
      gcloud components update
    3. Aktifkan Cloud KMS dan Workflows API untuk project yang akan menyimpan kunci enkripsi Anda.
      gcloud services enable cloudkms.googleapis.com workflows.googleapis.com
  2. Cloud KMS menghasilkan Cloud Audit Logs saat kunci diaktifkan, dinonaktifkan, atau digunakan oleh resource Workflows untuk mengenkripsi dan mendekripsi data. Pastikan logging diaktifkan untuk Cloud KMS API di project Anda, dan Anda telah memutuskan izin dan peran khusus logging mana yang berlaku untuk kasus penggunaan Anda. Untuk mengetahui informasi selengkapnya, lihat Informasi logging audit Cloud KMS.

Buat key ring dan kunci Cloud KMS

Anda dapat membuat key ring baru atau menggunakan key ring yang sudah ada. Dalam key ring, Anda dapat menambahkan kunci baru atau menggunakan kunci yang ada.

  1. Buat key ring.

  2. Buat kunci untuk key ring tertentu.

Mengambil ID resource untuk kunci Cloud KMS

ID resource untuk kunci Cloud KMS diperlukan saat Anda mengaktifkan CMEK untuk alur kerja. Dalam dokumen ini, lihat Mengaktifkan CMEK untuk alur kerja.

Konsol

  1. Di konsol Google Cloud , buka halaman Key management.

    Buka Pengelolaan kunci

  2. Klik key ring yang berisi kunci.

  3. Untuk kunci yang ID resource-nya Anda ambil, klik Lainnya.

  4. Klik Salin nama resource.

    ID resource untuk kunci disalin ke papan klip Anda. Formatnya mirip dengan berikut:

    projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    
  5. Kunci berisi nol atau beberapa versi kunci. ID resource untuk versi kunci adalah ID kunci, ditambah garis miring (/), ditambah ID versi. Untuk mencantumkan semua versi kunci:

    1. Klik nama kunci.
    2. Untuk versi tertentu, klik Lainnya.
    3. Klik Salin nama resource.

gcloud

  1. Mencantumkan semua kunci pada key ring tertentu:

    gcloud kms keys list --keyring RING_NAME --location LOCATION
    

    Ganti kode berikut:

    • RING_NAME: nama key ring
    • LOCATION: region key ring

    Output mencakup ID resource untuk setiap kunci. Contoh:

    NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
    
  2. Kunci memiliki nol atau beberapa versi kunci. ID resource untuk versi kunci adalah ID kunci, ditambah garis miring (/), ditambah ID versi. Mencantumkan semua versi untuk kunci:

    gcloud kms keys versions list --location LOCATION --keyring RING_NAME --key KEY_NAME
    

    Output mencakup ID resource untuk setiap versi kunci. Contoh:

    NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME/2
    

Memberi agen layanan Workflows akses ke kunci

Anda harus memberikan peran Identity and Access Management (IAM) agen layanan Workflows Cloud KMS CryptoKey Encrypter/Decrypter agar agen layanan tersebut dapat mengakses kunci Cloud KMS:

Konsol

Saat Anda mengaktifkan CMEK untuk alur kerja melalui konsol, Anda akan diminta untuk memberikan peran Cloud KMS CryptoKey Encrypter/Decrypter ke akun layanan. Untuk mengetahui informasi selengkapnya, dalam dokumen ini, lihat bagian Mengaktifkan CMEK untuk alur kerja.

gcloud

gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring RING_NAME \
    --location LOCATION \
    --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-workflows.iam.gserviceaccount.com \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Ganti kode berikut:

  • KEY_NAME: nama kunci. Contoh, my-key.
  • RING_NAME: nama key ring. Contoh, my-keyring.
  • LOCATION: lokasi kunci. Contoh, us-central1.
  • PROJECT_NUMBER: nomor project Google Cloud Anda. Anda dapat menemukan nomor project di halaman Selamat Datang di konsol Google Cloud atau dengan menjalankan perintah berikut:

    export PROJECT=$(gcloud info --format='value(config.project)')
    gcloud projects describe ${PROJECT} --format="value(projectNumber)"

Selama agen layanan memiliki peran roles/cloudkms.cryptoKeyEncrypterDecrypter, alur kerja di project Anda dapat mengenkripsi dan mendekripsi datanya menggunakan kunci CMEK. Jika Anda mencabut peran ini, atau jika Anda menonaktifkan atau menghancurkan kunci CMEK, data tersebut tidak dapat diakses. Dalam dokumen ini, lihat Menonaktifkan Cloud KMS.

Mengaktifkan CMEK untuk alur kerja

Saat membuat alur kerja atau memperbaruinya setelahnya, Anda dapat menentukan kunci Cloud KMS yang harus digunakan alur kerja untuk enkripsi data.

Konsol

  1. Di konsol Google Cloud , buka halaman Workflows.

    Buka Workflows

  2. Klik nama alur kerja yang ingin Anda perbarui.

    Halaman Workflows details akan muncul.

  3. Klik Edit.

  4. Pilih Kunci Cloud KMS.

  5. Pilih Jenis kunci.

    Anda dapat mengelola kunci secara manual atau menggunakan Autokey yang memungkinkan Anda membuat keyring dan kunci sesuai permintaan. Jika opsi Autokey dinonaktifkan, opsi tersebut belum terintegrasi dengan jenis resource saat ini.

  6. Di daftar Pilih kunci Cloud KMS, pilih atau filter kunci Cloud KMS.

  7. Opsional: Untuk memasukkan nama resource kunci secara manual, di daftar Pilih kunci yang dikelola pelanggan, klik Masukkan kunci secara manual, lalu masukkan nama resource kunci dalam format yang ditentukan.

  8. Jika diminta, berikan peran cloudkms.cyptoKeyEncrypterDecrypter ke akun layanan Workflows dengan peran workflows.serviceAgent.

  9. Klik Berikutnya.

  10. Untuk menyimpan perubahan dan men-deploy alur kerja yang diperbarui, klik Deploy.

gcloud

gcloud workflows deploy WORKFLOW_NAME \
    --source=SOURCE_FILE \
    --kms-key=KEY