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

Secara default, semua data dalam penyimpanan di Firestore dengan kompatibilitas MongoDB dienkripsi menggunakan enkripsi default Google. Firestore dengan kompatibilitas MongoDB menangani dan mengelola enkripsi ini untuk Anda tanpa tindakan tambahan dari Anda.

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

Halaman ini menjelaskan CMEK untuk Firestore dengan kompatibilitas MongoDB. 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 Firestore dengan kompatibilitas MongoDB, lihat Menggunakan CMEK.

Fitur

  • Kontrol data: CMEK memungkinkan Anda mengelola kunci KMS. Anda dapat merotasi, menonaktifkan, dan menghancurkan kunci yang digunakan untuk mengenkripsi data dalam penyimpanan di database Firestore.
  • 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 Firestore 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 Firestore dengan kompatibilitas MongoDB meminta kunci Cloud KMS untuk melakukan operasi enkripsi atau dekripsi. Operasi enkripsi atau 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 Firestore dengan kompatibilitas MongoDB. Biaya untuk Log Audit Cloud adalah biaya tambahan, tetapi juga diperkirakan umumnya rendah, mengingat jumlah operasi kriptografis yang diperkirakan.

Tidak ada biaya tambahan Firestore dengan kompatibilitas MongoDB untuk menggunakan database yang dilindungi CMEK dan harga Firestore dengan kompatibilitas MongoDB akan terus berlaku.

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

Yang dilindungi dengan CMEK

Saat Anda membuat Firestore dengan database yang dilindungi CMEK kompatibilitas MongoDB, kunci Cloud KMS Anda akan digunakan untuk melindungi data dalam penyimpanan. Data 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 kompatibilitas Firestore dengan MongoDB 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 INVALID_ARGUMENT 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 berdasarkan TTL akan tertunda hingga kunci diaktifkan kembali. Jika database memiliki operasi yang berjalan lama, operasi tersebut akan terpengaruh sebagai berikut:

Kunci dianggap tidak tersedia dalam situasi apa pun yang sengaja tidak mengizinkan Firestore dengan kompatibilitas MongoDB 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 dengan kompatibilitas MongoDB 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, Firestore dengan kompatibilitas MongoDB akan mengenkripsi ulang database dengan versi utama kunci CMEK terbaru. Selama proses enkripsi ulang, pastikan versi kunci sebelumnya dan yang baru tetap tersedia. Setelah enkripsi ulang selesai, menonaktifkan atau menghapus kunci CMEK versi sebelumnya 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 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, Firestore dengan kompatibilitas MongoDB akan terus mendukung operasi database penuh menggunakan versi kunci yang di-cache, hingga satu jam.

Setelah satu jam, jika Firestore dengan kompatibilitas MongoDB masih tidak dapat terhubung dengan Cloud KMS, Firestore dengan kompatibilitas MongoDB akan mulai mengalihkan database ke mode offline sebagai tindakan perlindungan. Panggilan ke database akan gagal dengan error INVALID_ARGUMENT yang menyertakan detail tambahan.

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

Pencadangan dan pemulihan

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

Firestore dengan kompatibilitas MongoDB membuat cadangan pertama database CMEK setelah 24 jam berlalu sejak Anda mengaktifkan jadwal pencadangan.

Untuk mengetahui informasi selengkapnya tentang pencadangan Firestore dengan kompatibilitas MongoDB, 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 Firestore dari cadangan, lihat Memulihkan data dari cadangan database. Untuk mengetahui informasi selengkapnya tentang cara memulihkan database Firestore yang dilindungi CMEK dari cadangan, lihat Memulihkan database yang dilindungi CMEK.

Pelacakan tombol

Anda dapat menggunakan pelacakan kunci untuk melihat resource, misalnya, database Firestore, 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 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 Google Cloud konsol. Jika Anda memasukkan kunci yang dinonaktifkan secara manual, proses pembuatan database akan gagal dengan error INVALID_ARGUMENT 400.

Batasan

  • Anda tidak dapat mengubah kunci untuk database yang dilindungi CMEK. Anda dapat memutar, mengaktifkan, dan menonaktifkan kunci.

  • 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.

Langkah berikutnya