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

Secara default, semua data dalam penyimpanan di Firestore dalam mode Datastore dienkripsi menggunakan enkripsi default Google. Mode Datastore menangani dan mengelola enkripsi ini untuk Anda tanpa perlu tindakan tambahan.

Jika Anda memiliki persyaratan kepatuhan atau peraturan khusus terkait kunci yang melindungi data, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mode Datastore. Alih-alih Google yang mengelola kunci enkripsi yang melindungi data Anda, database mode Datastore Anda dilindungi menggunakan kunci yang Anda kontrol dan kelola di Cloud Key Management Service (Cloud KMS).

Halaman ini menjelaskan CMEK untuk mode Datastore. Untuk mengetahui informasi selengkapnya tentang CMEK secara umum, termasuk waktu dan alasan mengaktifkannya, lihat dokumentasi Cloud KMS berikut:

Untuk mengetahui petunjuk tentang cara melakukan tugas terkait CMEK dengan mode Datastore, lihat Menggunakan CMEK.

Fitur

  • Kontrol data: CMEK memungkinkan Anda mengelola kunci KMS. Anda dapat memutar, menonaktifkan, dan menghancurkan kunci yang digunakan untuk mengenkripsi data dalam penyimpanan di database mode Datastore.
  • Performa: CMEK tidak memengaruhi SLA Firestore.
  • Kemampuan audit: Jika Anda mengaktifkan logging audit untuk Cloud KMS, semua operasi pada kunci akan dicatat ke dalam log dan dapat dilihat di Cloud Logging.
  • Batasan kebijakan organisasi: Anda dapat menggunakan batasan kebijakan organisasi CMEK untuk menentukan persyaratan kepatuhan enkripsi untuk database mode Datastore di organisasi Anda.

Harga

Cloud KMS mengenakan biaya untuk kunci dan operasi kriptografis apa pun yang dilakukan menggunakan kunci tersebut. Untuk mengetahui informasi selengkapnya, lihat harga Cloud KMS.

Anda ditagih untuk biaya operasi saat mode Datastore meminta kunci Cloud KMS untuk melakukan operasi enkripsi atau dekripsi. Operasi enkripsi/dekripsi oleh kunci yang dikelola pelanggan terjadi setiap 5 menit dan tidak disinkronkan dengan permintaan database. Biaya umumnya rendah, mengingat jumlah operasi kriptografi yang diharapkan yang dihasilkan oleh mode Datastore. Biaya untuk Cloud Audit Logs adalah biaya tambahan, tetapi juga diperkirakan umumnya rendah, mengingat jumlah operasi kriptografis yang diharapkan.

Tidak ada biaya mode Datastore tambahan untuk menggunakan database yang dilindungi CMEK dan harga mode Datastore tetap berlaku.

Jika Anda mencabut kunci ke database, biaya penyimpanan akan ditagih berdasarkan ukuran hari terakhir kunci tersedia. Anda akan terus dikenai biaya penyimpanan dengan ukuran database tersebut hingga database dihapus atau kunci tersedia lagi.

Yang dilindungi dengan CMEK

Saat Anda membuat database yang dilindungi CMEK mode Datastore, kunci Cloud KMS Anda akan digunakan untuk melindungi data dalam penyimpanan. Hal ini mencakup data yang Anda simpan di disk atau flash drive, termasuk indeks dan cadangan. Beberapa pengecualian berlaku. Jenis data berikut dienkripsi dengan enkripsi default Google, bukan dengan kunci CMEK:

  • Data dalam pengiriman atau dalam memori
  • Metadata database

Cara penanganan status kunci yang tidak tersedia

Operasi enkripsi dan dekripsi tidak dikeluarkan pada setiap permintaan data. Sebagai gantinya, sistem Firestore akan melakukan polling Cloud KMS setiap 5 menit untuk memeriksa apakah kunci masih tersedia, lalu melakukan operasi enkripsi dan dekripsi jika kunci tersedia.

Jika sistem mendeteksi bahwa kunci tidak tersedia, dalam waktu 10 menit, setiap panggilan berikutnya ke database Firestore, termasuk operasi baca, tulis, dan kueri, akan menampilkan error FAILED_PRECONDITION dengan pesan The customer-managed encryption key required by the requested resource is not accessible.

Jika database memiliki kebijakan time to live (TTL), dan jika waktu habis masa berlakunya terlampaui saat kunci tidak tersedia, penghapusan data oleh TTL akan tertunda hingga kunci diaktifkan kembali. Jika database memiliki operasi yang berjalan lama, operasi tersebut akan terpengaruh sebagai berikut:

  • Operasi import atau ekspor data akan berhenti membuat progres, dan ditandai sebagai Failed. Operasi yang gagal tidak akan dicoba ulang jika kunci diaktifkan kembali.
  • Operasi pembuatan indeks, dan operasi yang mengaktifkan kebijakan TTL baru akan berhenti membuat progres. Operasi yang dihentikan akan dicoba lagi jika kunci diaktifkan kembali.

Kunci dianggap tidak tersedia dalam situasi apa pun yang sengaja tidak mengizinkan Firestore mengakses kunci. Hal ini mencakup:

Jika kunci diaktifkan kembali, operasi polling akan mendeteksi bahwa kunci tersedia lagi. Akses akan diaktifkan kembali, biasanya dalam beberapa menit, tetapi dalam kasus yang jarang terjadi, dapat memerlukan waktu hingga beberapa jam. Perhatikan bahwa beberapa operasi pada kunci Cloud KMS, seperti menonaktifkan atau menghancurkan kunci, dapat memerlukan waktu hingga 3 jam untuk diterapkan. Firestore tidak mendeteksi perubahan apa pun hingga perubahan tersebut diterapkan di Cloud KMS.

Pengaktifan kembali kunci melibatkan hal berikut, bergantung pada situasinya:

  • Mengaktifkan kembali versi kunci yang dinonaktifkan.
  • Memulihkan versi kunci yang dihancurkan. Sebelum dihancurkan secara permanen, versi kunci dijadwalkan untuk dihancurkan. Anda hanya dapat memulihkan kunci selama periode saat versi kunci dijadwalkan untuk dihancurkan. Anda tidak dapat memulihkan kunci yang telah dihancurkan secara permanen.
  • Memberikan kembali izin agen layanan Firestore untuk mengakses kunci.

Pertimbangan rotasi kunci

Saat Anda merotasi kunci CMEK, mode Datastore akan mengenkripsi ulang database dengan kunci CMEK versi utama terbaru. Selama proses enkripsi ulang, kunci lama dan baru harus tetap tersedia. Setelah enkripsi ulang selesai, menonaktifkan atau menghapus kunci CMEK versi lama tidak akan menonaktifkan akses ke database karena dienkripsi dengan versi kunci utama yang baru.

Anda juga dapat melihat versi kunci yang digunakan untuk melindungi database. Untuk mengetahui informasi selengkapnya, lihat Melihat kunci yang digunakan.

Pertimbangan kunci eksternal

Saat Anda menggunakan kunci Cloud EKM, Google tidak memiliki kontrol atas ketersediaan kunci yang dikelola secara eksternal di sistem partner pengelolaan kunci eksternal.

Jika kunci yang dikelola secara eksternal tidak tersedia, mode Datastore akan terus mendukung operasi database lengkap menggunakan versi kunci yang di-cache, hingga satu jam.

Setelah satu jam, jika mode Datastore masih tidak dapat terhubung dengan Cloud KMS, mode Datastore akan mulai menjadikan database offline sebagai tindakan perlindungan. Panggilan ke database akan gagal dengan error FAILED_PRECONDITION yang menyertakan detail tambahan.

Lihat dokumentasi Cloud External Key Manager untuk mengetahui pertimbangan lainnya saat menggunakan kunci eksternal.

Pencadangan dan pemulihan

Cadangan menggunakan mekanisme enkripsi yang sama dengan database tempat Anda membuatnya. Saat database mode Datastore yang dilindungi CMEK membuat cadangan, database tersebut akan mengenkripsi cadangan dengan versi kunci utama yang digunakan pada saat pembuatan cadangan.

Mode Datastore membuat cadangan pertama database CMEK setelah 24 jam berlalu sejak Anda mengaktifkan jadwal pencadangan.

Untuk mengetahui informasi selengkapnya tentang pencadangan mode Datastore, lihat Mencadangkan dan memulihkan data.

Database yang dipulihkan dari cadangan menggunakan mekanisme enkripsi yang sama dengan cadangan secara default. Saat memulihkan database, Anda dapat menentukan jenis enkripsi yang berbeda dengan salah satu cara berikut:

  • Memulihkan ke database CMEK dengan kunci yang baru ditentukan.
  • Memulihkan ke database non-CMEK yang menggunakan enkripsi default Google.
  • Pulihkan ke database yang menggunakan enkripsi yang sama dengan cadangan.

Untuk mengetahui informasi selengkapnya tentang cara memulihkan database mode Datastore dari cadangan, lihat Memulihkan data dari cadangan database. Untuk mengetahui informasi selengkapnya tentang cara memulihkan database mode Datastore yang dilindungi CMEK dari pencadangan, lihat Memulihkan database yang dilindungi CMEK.

Pelacakan tombol

Anda dapat menggunakan pelacakan kunci untuk melihat resource, misalnya, database mode Datastore, yang dilindungi kunci. Untuk informasi selengkapnya tentang pelacakan kunci, lihat Melihat penggunaan kunci.

CMEK dan ketersediaan kunci

Jika kunci tidak tersedia atau dinonaktifkan, perhatikan perilaku berikut yang dapat terjadi di database yang mendukung CMEK:

  • Anda dapat mengubah setelan pemulihan point-in-time (PITR) mode Datastore di database yang mengaktifkan CMEK meskipun kunci tidak tersedia karena setelan PITR adalah metadata database, yang tidak dienkripsi oleh CMEK.
  • Anda dapat menghapus database CMEK yang memiliki kunci yang tidak tersedia.
  • Saat Anda membuat database yang mengaktifkan CMEK, kunci yang dinonaktifkan tidak akan ditampilkan di daftar kunci yang tersedia di konsol Google Cloud. Jika Anda memasukkan kunci yang dinonaktifkan secara manual, proses pembuatan database akan gagal dengan error FAILED_PRECONDITION 400.

Batasan

  • Anda tidak dapat mengubah kunci untuk database yang dilindungi CMEK. Anda dapat memutar, mengaktifkan, dan menonaktifkan kunci.
  • Database yang dilindungi CMEK hanya mendukung Key Visualizer untuk data entity dan dokumen, bukan untuk data indeks.
  • Anda tidak dapat mengaktifkan CMEK di database yang ada. Anda hanya dapat mengaktifkan CMEK di database baru, dan Anda harus mengaktifkannya saat membuat database. Untuk memigrasikan data di database non-CMEK yang ada ke database yang dilindungi CMEK, ekspor data Anda, lalu impor data ke database baru yang dilindungi CMEK. Anda juga dapat memulihkan data dari database non-CMEK ke database CMEK.
  • Firestore mendukung database yang dilindungi CMEK dalam jumlah terbatas.
  • Kami tidak mendukung perlindungan CMEK dengan integrasi Cloud Functions (generasi ke-1). Jika Anda ingin memiliki perlindungan CMEK, gunakan Pemicu Firestore fungsi Cloud Run (generasi ke-2).

Langkah selanjutnya