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

Secara default, Dialogflow mengenkripsi konten pelanggan dalam penyimpanan. Dialogflow menangani enkripsi untuk Anda tanpa perlu 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 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. 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. Alih-alih Google yang memiliki dan mengelola kunci enkripsi kunci (KEK) simetris yang melindungi data Anda, Anda yang mengontrol dan mengelola kunci ini di Cloud KMS.

Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Dialogflow 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

Semua data agen Agen Percakapan (Dialogflow CX) dalam keadaan tersimpan 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
  • 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 terintegrasi non-CMEK tidak dapat diintegrasikan dengan CMEK secara retroaktif. Sebaliknya, sebaiknya resource diekspor dan dipulihkan dalam project baru untuk CMEK.
  • Aplikasi AI 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 Anda, 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 sudah dikonfigurasi untuk lokasi tersebut. Buat pilihan Anda saat ini.

Prasyarat

  1. Buat Akun layanan CCAI CMEK untuk project Anda dengan Google Cloud CLI. 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. 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 CryptoKey Cloud KMS 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 API InitializeEncryptionSpec 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"

Periksa 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"
  

Mencabut kunci

Untuk mencabut akses Agen Percakapan (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 akan dapat diakses oleh Agen Percakapan (Dialogflow CX) dan layanan tidak akan lagi dalam status operasional hingga izin kunci diaktifkan kembali.