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 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 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.
- Wilayah berikut tidak
didukung:
global
- Satu kunci harus digunakan per lokasi project.
- Untuk memulihkan agen dengan CMEK 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 lokasi 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 Setelan, lalu buka tab Keamanan.
- Klik Kelola Setelan Keamanan untuk dialihkan ke konsol CCAI.
- Di konsol CCAI, buka tab CMEK.
- Klik Periksa atau buat akun layanan.
- 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 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 Pilih peran, pilih Pengenkripsi/Pendekripsi CryptoKey Cloud KMS.
- Klik Simpan.
Menyalin nama resource utama
Untuk menyalin nama resource kunci:
- Buka halaman detail kunci KMS.
- Klik menu Tindakan, lalu pilih Salin nama resource.
Tindakan ini 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 membuat agen, tentukan lokasinya 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 menyiapkan 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 telah dibuat. 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 CCAI CMEK 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 lokasi Dialogflow CX, panggil API
InitializeEncryptionSpecdan berikan variabel berikut:PROJECT_ID: ID project. Google CloudLOCATION_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 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 Pengenkripsi/Pendekripsi CryptoKey Cloud KMS akun layanan dari kunci KMS.
Setelah pencabutan kunci, data terenkripsi menjadi tidak dapat diakses oleh Dialogflow CX, dan layanan tidak lagi beroperasi hingga izin kunci dipulihkan.