Secara default, Dialogflow CX mengenkripsi konten pelanggan dalam penyimpanan. Dialogflow CX menangani enkripsi untuk Anda tanpa tindakan tambahan dari Anda. Opsi ini disebut Enkripsi default Google. Enkripsi default Google menggunakan sistem pengelolaan kunci yang telah melalui proses hardening yang sama dengan yang kami gunakan untuk data terenkripsi milik kami. Sistem ini mencakup pengauditan dan kontrol akses kunci yang ketat.
Jika ingin mengontrol kunci enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud KMS dengan layanan yang terintegrasi dengan CMEK, termasuk Dialogflow CX. 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 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 Dialogflow CX Anda akan serupa dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).
Data yang dilindungi
Anda dapat melindungi semua data dalam penyimpanan agen Dialogflow CX dengan CMEK.
Batasan
- Rotasi kunci didukung, tetapi enkripsi ulang data tidak didukung. Mengenkripsi ulang data yang sebelumnya dienkripsi dengan versi kunci baru tidak didukung.
- Region berikut tidak didukung:
global
- Satu kunci harus digunakan per lokasi project.
- Untuk memulihkan agen dengan CMEK yang diaktifkan, Anda harus memilih opsi Cloud Storage.
- Resource yang ada dalam project yang tidak terintegrasi dengan CMEK tidak dapat diintegrasikan dengan CMEK secara retroaktif. Sebagai gantinya, ekspor dan pulihkan resource dalam project baru untuk CMEK.
- Vertex AI Agent Builder memiliki beberapa batasan Cloud Key Management Service.
Membuat kunci
Untuk membuat kunci, gunakan Cloud KMS. Untuk mengetahui petunjuknya, lihat Membuat kunci simetris. Saat membuat atau memilih kunci, pastikan Anda mengonfigurasi hal berikut:
- Pilih lokasi yang Anda gunakan untuk agen, karena permintaan akan gagal jika lokasinya tidak cocok.
Mengidentifikasi akun layanan Dialogflow
Untuk mengidentifikasi akun layanan Dialogflow:
- Buka konsol Agen Percakapan.
- Pilih project Anda.
- Pilih agen Anda.
- Di menu navigasi, klik Settings, lalu buka tab Security.
- Klik Manage Security Settings untuk dialihkan ke konsol CCAI.
- Di konsol CCAI, buka tab CMEK.
- Klik Check or create service account.
- Catat nama akun layanan yang ditampilkan
(misalnya,
service-665989447347@gcp-sa-ccai-cmek.IAM.gserviceaccount.com).
Memberikan Izin ke akun layanan
Untuk memberikan izin ke akun layanan:
- Buka halaman Cloud KMS.
- Pilih key ring yang telah Anda buat.
- Pilih kunci yang Anda buat dalam key ring tersebut.
- Buka tab Izin.
- Klik Grant Access.
- Di kolom New principals, masukkan akun layanan Dialogflow yang Anda identifikasi di langkah sebelumnya.
- Di daftar Select a role, pilih Cloud KMS CryptoKey Encrypter/Decrypter.
- Klik Simpan.
Menyalin nama resource kunci
Untuk menyalin nama resource kunci:
- Buka halaman detail kunci KMS.
- Klik menu Action, lalu pilih Copy resource name.
Tindakan ini akan menyalin jalur lengkap kunci KMS Anda (misalnya,
projects/<var>PROJECT_ID</var>/locations/<var>LOCATION_ID</var>/keyRings/<var>KEY_RING</var>/cryptoKeys/<var>KEY_ID</var>).
Mengaktifkan CMEK di Dialogflow
Untuk mengaktifkan CMEK di Dialogflow:
- Kembali ke tab CMEK di konsol CCAI.
- Tempel nama resource kunci yang disalin ke kolom Key untuk lokasi tempat Anda ingin mengaktifkan CMEK.
- Klik Simpan.
Tindakan ini akan memulai operasi yang berjalan lama (LRO) untuk mengaktifkan CMEK di lokasi yang dipilih. Proses ini memerlukan waktu 2-3 menit.
Mengonfigurasi agen untuk menggunakan kunci Anda
Saat Anda membuat agen, tentukan lokasi-nya dan apakah akan menggunakan Google-managed encryption key atau CMEK untuk lokasi tersebut.
Menggunakan CLI untuk menyiapkan CMEK
Atau, Anda dapat menggunakan perintah berikut untuk menyiapkan CMEK. Hal ini berguna saat menyiapkannya untuk beberapa region.
Gunakan Google Cloud CLI untuk membuat akun layanan CMEK CCAI untuk project Anda. Untuk mengetahui informasi selengkapnya, lihat dokumentasi identitas layanan gcloud.
gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID
Akun layanan telah dibuat. ID ini tidak ditampilkan dalam respons pembuatan, tetapi memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.comBerikan peran Cloud KMS CryptoKey Encrypter/Decrypter ke akun layanan CMEK CCAI agar layanan dapat mengenkripsi dan mendekripsi dengan kunci Anda.
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --project=PROJECT_ID \ --location=LOCATION_ID \ --keyring=KMS_KEY_RING \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Menggunakan API untuk mengonfigurasi kunci dan memeriksa setelan
Untuk mengonfigurasi kunci untuk lokasi Dialogflow CX, panggil
InitializeEncryptionSpecAPI dan berikan variabel berikut:PROJECT_ID: Google Cloud Project ID.LOCATION_ID: Lokasi yang Anda pilih untuk mengaktifkan CMEK di Dialogflow CX.KMS_KEY_RING: Key ring tempat kunci KMS Anda dibuat. Lokasi di key ring, sepertiprojects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING, harus cocok dengan lokasi tempat Anda mengaktifkan CMEK.KMS_KEY_ID: Nama kunci KMS Anda yang digunakan untuk mengenkripsi dan mendekripsi data Dialogflow CX di lokasi yang dipilih.
Contoh:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "{ encryption_spec: { kms_key: 'projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_ID' } }" \ "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec:initialize"
Respons JSON mirip dengan berikut ini:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID" }
Untuk mendapatkan hasil operasi yang berjalan lama (LRO), panggil API
GetOperation.Contoh:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
Untuk mengambil kunci enkripsi yang dikonfigurasi untuk suatu lokasi, panggil API
GetEncryptionSpec.Contoh:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec"
Mencabut kunci
Untuk mencabut akses Dialogflow CX ke kunci, Anda dapat menonaktifkan versi kunci KMS atau menghapus peran Cloud KMS CryptoKey Encrypter/Decrypter akun layanan dari kunci KMS.
Setelah pencabutan kunci, data terenkripsi tidak dapat diakses oleh Dialogflow CX, dan layanan tidak lagi beroperasi hingga izin kunci diaktifkan kembali.