Secara default, Dialogflow CX mengenkripsi konten pelanggan dalam penyimpanan. Dialogflow CX menangani enkripsi untuk Anda tanpa tindakan tambahan apa pun dari pihak Anda. Opsi ini disebut Enkripsi default Google. Enkripsi default Google menggunakan sistem pengelolaan kunci hasil hardening yang sama dengan yang kami gunakan untuk data terenkripsi kami sendiri. 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 akan mirip dengan penggunaan 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 agen Dialogflow CX dalam penyimpanan dengan CMEK.
Batasan
- Rotasi kunci didukung, tetapi enkripsi ulang data tidak. Enkripsi 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 Conversational Agents.
- 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 Periksa atau buat akun layanan.
- Perhatikan 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 Anda buat.
- Pilih kunci yang Anda buat dalam key ring tersebut.
- Buka tab Permissions.
- Klik Grant Access.
- Di kolom New principals, masukkan akun layanan Dialogflow yang Anda identifikasi pada langkah sebelumnya.
- Di daftar Select a role, pilih Cloud KMS CryptoKey Encrypter/Decrypter.
- Klik Save.
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 Save.
Tindakan ini akan memulai operasi yang berjalan lama (LRO) untuk mengaktifkan CMEK bagi lokasi yang dipilih. Proses ini memerlukan waktu 2-3 menit.
Mengonfigurasi agen untuk menggunakan kunci Anda
Saat membuat agen, tentukan lokasinya dan apakah akan menggunakan enkripsi default Google 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 menyiapkan CMEK untuk beberapa region.
Gunakan Google Cloud CLI untuk membuat akun layanan CCAI CMEK 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 akan dibuat. Akun layanan tidak ditampilkan dalam respons pembuatan, tetapi memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.comBerikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS ke akun layanan CCAI CMEK untuk mengizinkan layanan 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: Project Google Cloud 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 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 hal berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID" }
Untuk mendapatkan hasil operasi yang berjalan lama (LRO), panggil
GetOperationAPI.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 lokasi, panggil
GetEncryptionSpecAPI.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 Pengenkripsi/Pendekripsi CryptoKey Cloud KMS akun layanan dari kunci KMS.
Setelah pencabutan kunci, data terenkripsi tidak dapat diakses oleh Dialogflow CX, dan layanan tidak lagi beroperasi hingga izin kunci dipulihkan.