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:
Aktifkan API.
Konsol
-
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.
gcloud
-
Di konsol Google Cloud , 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.
- Perbarui komponen
gcloud.gcloud components update
- Aktifkan Cloud KMS dan Workflows API untuk project yang akan menyimpan kunci enkripsi Anda.
gcloud services enable cloudkms.googleapis.com workflows.googleapis.com
-
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.
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
Di konsol Google Cloud , buka halaman Key management.
Klik key ring yang berisi kunci.
Untuk kunci yang ID resource-nya Anda ambil, klik more_vert Lainnya.
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
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:- Klik nama kunci.
- Untuk versi tertentu, klik Lainnya.
- Klik Salin nama resource.
gcloud
Mencantumkan semua kunci pada key ring tertentu:
gcloud kms keys list --keyring RING_NAME --location LOCATION
Ganti kode berikut:
RING_NAME: nama key ringLOCATION: region key ring
Output mencakup ID resource untuk setiap kunci. Contoh:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
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
Di konsol Google Cloud , buka halaman Workflows.
Klik nama alur kerja yang ingin Anda perbarui.
Halaman Workflows details akan muncul.
Klik Edit.
Pilih Kunci Cloud KMS.
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.
Di daftar Pilih kunci Cloud KMS, pilih atau filter kunci Cloud KMS.
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.
Jika diminta, berikan peran
cloudkms.cyptoKeyEncrypterDecrypterke akun layanan Workflows dengan peranworkflows.serviceAgent.Klik Berikutnya.
Untuk menyimpan perubahan dan men-deploy alur kerja yang diperbarui, klik Deploy.
gcloud
gcloud workflows deploy WORKFLOW_NAME \ --source=SOURCE_FILE \ --kms-key=KEY