Kunci enkripsi yang dikelola pelanggan (Customer-Managed Encryption Key/CMEK)

Secara default, Dialogflow mengenkripsi konten pelanggan dalam penyimpanan. Dialogflow 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 terintegrasi CMEK, termasuk Dialogflow. Menggunakan kunci Cloud KMS memberi Anda kontrol atas tingkat perlindungan, lokasi, jadwal rotasi, izin penggunaan dan akses, serta batas kriptografisnya. Dengan menggunakan Cloud KMS, Anda juga dapat melihat log audit dan mengontrol siklus proses kunci. Alih-alih 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 Anda mirip dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Data yang dilindungi

Semua data dalam penyimpanan agen Agen Percakapan (Dialogflow CX) dapat dilindungi dengan CMEK.

Batasan

  • Rotasi kunci didukung, tetapi enkripsi ulang data tidak didukung. Artinya, mengenkripsi ulang data yang sebelumnya dienkripsi dengan versi kunci baru tidak didukung.
  • Wilayah berikut tidak didukung:
    • global
    • eu
  • Satu kunci harus digunakan per lokasi project.
  • Untuk memulihkan agen dengan CMEK diaktifkan, Anda harus memilih opsi Cloud Storage.
  • Resource yang ada dalam project terintegrasi non-CMEK tidak dapat diintegrasikan CMEK secara retroaktif. Sebagai gantinya, sebaiknya resource diekspor dan dipulihkan dalam project baru untuk CMEK.
  • Vertex AI Agent Builder memiliki beberapa Batasan Cloud KMS

Membuat kunci

Untuk membuat kunci, Anda menggunakan layanan KMS. Untuk mengetahui petunjuknya, lihat Membuat kunci simetris. Saat membuat atau memilih kunci, Anda harus mengonfigurasi hal berikut:

  • Pastikan untuk memilih lokasi yang Anda gunakan untuk agen, jika tidak, permintaan akan gagal.

Mengonfigurasi agen untuk menggunakan kunci Anda

Saat membuat agen, Anda dapat menentukan lokasi agen dan apakah agen akan menggunakan kunci yang dikelola Google atau kunci yang dikelola pelanggan yang telah dikonfigurasi untuk lokasi tersebut. Tentukan pilihan Anda saat ini.

Prasyarat

  1. Buat Akun layanan CMEK CCAI untuk project Anda dengan Google Cloud CLI. Untuk informasi selengkapnya, lihat dokumentasi identitas layanan gcloud.

    gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID

    Akun layanan akan dibuat. ID ini tidak akan ditampilkan dalam respons pembuatan, tetapi akan memiliki format berikut:

    service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
  2. Berikan peran Pengenkripsi/Pendekripsi Cloud KMS CryptoKey ke Akun Layanan CMEK CCAI untuk memastikan bahwa layanan memiliki izin untuk 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

Mengonfigurasi kunci untuk lokasi Agen Percakapan (Dialogflow CX)

  1. Gunakan InitializeEncryptionSpec API untuk mengonfigurasi kunci.

    Anda harus memberikan variabel berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • LOCATION_ID: Lokasi yang Anda pilih untuk mengaktifkan CMEK di Agen Percakapan (Dialogflow CX).
    • KMS_KEY_RING: Key ring tempat kunci KMS Anda dibuat. (Lokasi di key ring, seperti projects/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 akan digunakan untuk mengenkripsi dan mendekripsi data Agen Percakapan (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"

    Anda akan melihat respons JSON seperti berikut:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
    }
  2. Gunakan GetOperation API untuk memeriksa hasil operasi yang berjalan lama.

    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"

Memeriksa setelan CMEK

Gunakan GetEncryptionSpec API untuk memeriksa kunci enkripsi yang dikonfigurasi untuk suatu lokasi.

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"
  

Membatalkan kunci

Untuk mencabut akses Agen Percakapan (Dialogflow CX) ke kunci, Anda dapat menonaktifkan versi kunci KMS atau menghapus peran Pengenkripsi/Pendekripsi Cloud KMS CryptoKey akun layanan dari kunci KMS.

Setelah pencabutan kunci, data terenkripsi tidak akan dapat diakses oleh Agen Percakapan (Dialogflow CX) dan layanan tidak akan lagi dalam status operasional hingga izin kunci diaktifkan kembali.