Tentang kunci enkripsi yang dikelola pelanggan (CMEK)

Dokumen ini menjelaskan cara menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud Key Management Service (Cloud KMS) untuk instance Memorystore for Valkey, bukan mengandalkan enkripsi default Google. Dokumen ini juga menguraikan data mana yang dienkripsi dalam penyimpanan persisten dan perilaku instance Anda selama peristiwa siklus proses kunci.

CMEK memungkinkan Anda mengontrol kunci kriptografis yang melindungi data tersimpan. Dengan mengelola kunci Anda sendiri di Cloud KMS, Anda mendapatkan kontrol yang lebih besar atas akses, rotasi, dan penggunaan kunci, yang membantu Anda memenuhi persyaratan kepatuhan dan peraturan yang ketat.

Mengimplementasikan CMEK memberikan lapisan keamanan dan kontrol tambahan atas data persisten Anda, seperti cadangan dan file persistensi. Anda hanya dapat mengaktifkan CMEK pada instance baru. Anda tidak dapat menerapkan CMEK ke instance yang sudah ada.

Siapa yang harus menggunakan CMEK?

CMEK ditujukan untuk organisasi yang memiliki data sensitif atau teregulasi, dan memerlukan kontrol atas kunci enkripsinya sendiri. Untuk mengetahui informasi selengkapnya tentang apakah akan menggunakan CMEK untuk mengenkripsi data ini, lihat Memutuskan apakah akan menggunakan CMEK.

Enkripsi yang dikelola pelanggan

CMEK memungkinkan Anda menggunakan kunci kriptografis untuk melindungi data tersimpan di instance Memorystore for Valkey. Untuk mengenkripsi data ini, Memorystore for Valkey menggunakan kunci enkripsi data (DEK) yang dikelola Google dan kunci enkripsi kunci (KEK) yang dikelola pelanggan.

Anda dapat memiliki tingkat enkripsi berikut:

  • Enkripsi DEK: DEK mengenkripsi data di Memorystore for Valkey.
  • Enkripsi KEK: KEK mengenkripsi DEK.

Memorystore for Valkey menggunakan KEK untuk mengenkripsi DEK, dan menggunakan DEK untuk mengenkripsi data tersimpan. Jika menggunakan CMEK, Anda dapat mengelola KEK yang mengenkripsi DEK di instance Anda.

Diagram berikut menunjukkan cara instance menggunakan CMEK untuk mengenkripsi data. Data yang diupload ke infrastruktur penyimpanan Google dibagi menjadi beberapa bagian, dan setiap bagian dienkripsi dengan DEK-nya sendiri. Cloud KMS menyediakan KEK untuk mengenkripsi DEK, dan infrastruktur penyimpanan Google mendistribusikan bagian data terenkripsi dan DEK terenkripsi di seluruh sistem.

Data diupload ke infrastruktur penyimpanan Google dan dibagi menjadi beberapa bagian. Setiap potongan dienkripsi dengan DEK-nya sendiri. Kemudian, DEK dienkripsi menggunakan KEK yang diambil dari Cloud KMS. Potongan terenkripsi dan DEK terenkripsi didistribusikan ke seluruh infrastruktur penyimpanan.

Diagram berikut menunjukkan cara Memorystore for Valkey mendekripsi data yang dienkripsi dengan CMEK. Untuk mengakses data terenkripsi ini, Memorystore for Valkey mengirimkan permintaan ke Cloud KMS, yang mengelola KEK, untuk mendekripsi DEK. Cloud KMS kemudian menampilkan DEK yang didekripsi, yang digunakan instance untuk mendekripsi data tersimpan.

Potongan data dienkripsi dengan DEK dan disimpan dengan DEK terenkripsi. Permintaan untuk mendekripsi DEK dikirim ke Cloud KMS, yang menyimpan KEK. Cloud KMS menampilkan DEK yang telah didekripsi.

Data mana yang dienkripsi menggunakan CMEK?

CMEK mengenkripsi jenis data pelanggan berikut yang disimpan dalam penyimpanan persisten:

  • Cadangan: Cadangan memungkinkan Anda memulihkan data ke titik waktu tertentu, serta mengekspor dan menganalisis data. Cadangan juga berguna untuk pemulihan dari bencana, migrasi data, berbagi data, dan skenario kepatuhan.
  • Persistensi: Memorystore for Valkey mendukung dua jenis persistensi:
    • Persistensi RDB: menyimpan snapshot data Anda di penyimpanan yang tahan lama.
    • Persistensi AOF: menyimpan data secara tahan lama dengan mencatat setiap perintah tulis ke file log yang disebut File Hanya Tambah (AOF). Jika terjadi kegagalan atau memulai ulang sistem, server akan memutar ulang perintah file AOF secara berurutan untuk memulihkan data Anda.

Komponen CMEK

Bagian berikut menjelaskan persyaratan dan perilaku akun layanan, kunci kriptografis, versi kunci, dan kebijakan organisasi yang membentuk arsitektur CMEK Anda.

Akun layanan

Untuk membuat instance yang mengaktifkan CMEK, Anda harus memberikan peran roles/cloudkms.cryptoKeyEncrypterDecrypter ke akun layanan Memorystore for Valkey yang menggunakan format berikut:

service-PROJECT_NUMBER@gcp-sa-memorystore.iam.gserviceaccount.com

Dengan memberikan izin ini, akun layanan dapat meminta akses kunci dari Cloud KMS.

Kunci

Di Cloud KMS, Anda perlu membuat key ring, lalu membuat kunci kriptografis yang menggunakan algoritma enkripsi simetris. Saat membuat instance Memorystore for Valkey, Anda memilih kunci ini untuk mengenkripsi instance. Anda dapat membuat satu project untuk kunci dan instance, atau project yang berbeda untuk masing-masing.

CMEK tersedia di semua lokasi instance Memorystore for Valkey. Anda harus membuat key ring dan kunci di region yang sama dengan tempat Anda ingin membuat instance. Untuk instance multi-region, Anda harus menetapkan key ring dan kunci ke lokasi yang sama dengan instance. Jika region atau lokasi tidak cocok, permintaan untuk membuat instance akan gagal.

Untuk ID resource kunci, CMEK menggunakan format berikut:

projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Untuk mengetahui informasi selengkapnya tentang cara menemukan ID resource kunci yang ada, lihat Mendapatkan ID resource Cloud KMS.

Kunci eksternal

Sebagai bagian dari strategi CMEK, Anda dapat menggunakan kunci eksternal. Untuk melakukannya, gunakan Cloud External Key Manager (Cloud EKM) untuk mengenkripsi data di dalam Google Cloud dengan menggunakan kunci eksternal yang Anda kelola.

Saat Anda menggunakan kunci Cloud EKM, Google tidak memiliki kontrol atas ketersediaan kunci yang dikelola secara eksternal. Jika kunci tidak tersedia saat Anda membuat instance, Memorystore for Valkey tidak akan membuat instance.

Versi kunci

Cloud KMS menyimpan materi kunci kriptografis yang Anda gunakan untuk mengenkripsi dan mendekripsi data dalam versi kunci. Satu kunci dapat berisi beberapa versi kunci. Setiap kali Anda merotasi kunci, Anda akan membuat versi kunci.

Bagian berikut menjelaskan perilaku instance Anda dan data terlindungnya selama peristiwa siklus proses kunci, seperti menonaktifkan, menghancurkan, merotasi, mengaktifkan, atau memulihkan versi kunci. Bagian ini juga menjelaskan dampak pencabutan akses ke atau penggantian kunci Cloud KMS, dan memberikan panduan tentang cara mengenkripsi ulang data secara manual.

Menonaktifkan atau menghancurkan versi kunci CMEK

Anda mungkin ingin membuat data yang dienkripsi dengan CMEK tidak dapat diakses secara permanen, seperti saat Anda memulihkan kebocoran data. Untuk mencapai penghancuran data dengan jaminan tinggi ini (juga dikenal sebagai crypto-shredding), Anda menghancurkan versi kunci. Untuk mengetahui informasi selengkapnya tentang cara menghancurkan versi kunci, lihat Menghancurkan dan memulihkan versi kunci.

Jika Anda menonaktifkan atau menghancurkan versi kunci utama CMEK, kondisi berikut akan berlaku untuk cadangan dan persistensi.

Cadangan

Saat Anda menghancurkan versi kunci utama CMEK, batasan berikut berlaku untuk cadangan instance Anda:

  • Anda tidak dapat membuat cadangan sesuai permintaan atau otomatis. Namun, jika Anda mengaktifkan versi kunci yang lebih lama, Anda dapat mengakses cadangan yang Anda buat menggunakan versi kunci ini.
  • Anda tidak dapat mengupdate atau mengaktifkan kembali cadangan otomatis hingga Anda mengaktifkan atau memulihkan versi kunci utama. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan atau memulihkan versi kunci CMEK utama.
Persistensi

Saat Anda menghancurkan versi kunci utama CMEK, batasan berikut berlaku untuk persistensi instance Anda:

  • Jika Anda mengonfigurasi instance untuk menggunakan persistensi, Memorystore for Valkey akan menonaktifkan persistensi saat versi kunci tidak tersedia. Anda tidak lagi ditagih biaya penggunaan persistensi.
  • Memorystore for Valkey tidak melakukan flush data baru ke penyimpanan persisten menggunakan CMEK.
  • Memorystore for Valkey tidak dapat membaca data yang ada di penyimpanan persisten.
  • Anda tidak dapat mengupdate atau mengaktifkan kembali persistensi hingga Anda mengaktifkan atau memulihkan versi kunci utama.

Jika Anda mengaktifkan versi kunci utama CMEK, tetapi Anda menonaktifkan atau menghancurkan versi kunci yang lebih lama, kondisi berikut akan berlaku untuk cadangan dan persistensi:

  • Anda dapat membuat cadangan. Namun, jika cadangan dienkripsi dengan versi kunci yang lebih lama yang dinonaktifkan atau dihancurkan, cadangan tersebut akan tetap tidak dapat diakses.
  • Jika Anda mengaktifkan persistensi, persistensi akan tetap diaktifkan. Jika versi kunci yang lebih lama yang digunakan dalam persistensi dinonaktifkan atau dihancurkan, Memorystore for Valkey akan melakukan update yang mirip dengan yang digunakan dalam pemeliharaan dan mengenkripsi ulang data dengan versi kunci utama.

Mencabut akses ke kunci Cloud KMS

Jika Anda mencabut akses ke kunci Cloud KMS aktif dengan menonaktifkan kunci atau menghapus izin IAM untuk kunci tersebut, Memorystore for Valkey akan memprioritaskan ketersediaan cache utama. Operasi caching dalam memori reguler akan terus menayangkan traffic.

Namun, cadangan dan persistensi akan dinonaktifkan. Memorystore for Valkey akan segera berhenti menulis data baru ke disk dan tidak membaca data dari disk yang dienkripsi pelanggan ke dalam memori.

Merotasi versi kunci CMEK utama

Jika Anda merotasi versi kunci utama CMEK dan membuat versi kunci utama baru, kondisi berikut akan berlaku untuk cadangan dan persistensi:

  • Versi kunci utama CMEK terbaru mengenkripsi cadangan baru.
  • Untuk cadangan yang ada, tidak ada enkripsi ulang yang dilakukan.
  • Untuk persistensi, node tidak melakukan tindakan apa pun. Node akan terus menggunakan versi kunci yang lebih lama hingga peristiwa pemeliharaan berikutnya.

Mengenkripsi ulang data yang dilindungi CMEK secara manual

Memorystore for Valkey tidak mendukung enkripsi ulang data tersimpan sesuai permintaan. Anda tidak dapat memicu proses secara manual untuk menggunakan versi kunci baru guna mengenkripsi ulang cadangan yang ada atau file persistensi aktif. Namun, Anda dapat menggunakan versi kunci baru untuk mengenkripsi data yang baru ditulis.

Jika Anda merotasi kunci dan harus memaksa instance untuk menggunakan versi kunci baru, kondisi berikut akan berlaku untuk cadangan dan persistensi:

Cadangan

Anda tidak dapat mengenkripsi ulang cadangan yang ada. Jika kepatuhan mengharuskan semua data dienkripsi dengan kunci terbaru, buat cadangan yang menggunakan kunci ini, lalu hapus cadangan yang ada secara manual. Anda juga dapat mengekspor cadangan ini ke bucket Cloud Storage sehingga kunci enkripsi Cloud Storage digunakan.

Persistensi

Untuk memaksa instance menggunakan kunci Cloud KMS baru, Anda dapat menjalankan pemeliharaan simulasi pada instance. Setelah Anda menyelesaikan operasi ini, Memorystore for Valkey dapat menulis data persistensi menggunakan versi kunci utama yang diperbarui.

Mengganti kunci Cloud KMS yang dilindungi

Jika Anda mengganti kunci Cloud KMS yang dilindungi dengan kunci yang berbeda atau versi kunci utama baru, Memorystore for Valkey akan menerapkan perubahan ini hanya pada operasi mendatang.

Mengganti kunci yang dilindungi akan memengaruhi resource Anda dengan cara berikut:

  • Cadangan: semua cadangan berikutnya dienkripsi menggunakan kunci baru. Cadangan yang ada mempertahankan kunci aslinya.
  • Persistensi: kunci baru akan digunakan saat instance dimulai ulang atau memiliki peristiwa pemeliharaan.
  • Cache utama: penggantian kunci ini tidak akan berdampak. CMEK tidak mengenkripsi data dalam memori karena data ini tidak dianggap sebagai data tersimpan.

Mengaktifkan atau memulihkan versi kunci CMEK utama

Jika Anda mengaktifkan atau memulihkan versi kunci utama CMEK, kondisi berikut akan berlaku untuk cadangan dan persistensi:

  • Anda dapat membuat cadangan sesuai permintaan dan otomatis lagi.
  • Memorystore for Valkey melakukan update yang mirip dengan yang digunakan dalam pemeliharaan dan mengaktifkan kembali persistensi.

Batasan kebijakan organisasi

Memorystore for Valkey mendukung batasan kebijakan organisasi untuk CMEK. Dengan menggunakan batasan ini, Anda dapat menerapkan perlindungan CMEK untuk instance dan membatasi kunci Cloud KMS yang dapat Anda gunakan untuk perlindungan ini.

Anda dapat mengonfigurasi batasan kebijakan organisasi berikut:

  • constraints/gcp.restrictNonCmekServices: gunakan batasan ini untuk menerapkan perlindungan CMEK untuk instance Anda. Jika Memorystore for Valkey API berada dalam daftar kebijakan layanan Deny untuk batasan ini, Anda tidak dapat membuat instance yang tidak dilindungi CMEK.
  • constraints/gcp.restrictCmekCryptoKeyProjects: gunakan batasan ini untuk membatasi kunci Cloud KMS yang dapat Anda gunakan untuk perlindungan CMEK. Jika Anda mengonfigurasi batasan ini, instance yang menggunakan enkripsi CMEK harus menggunakan kunci dari project, folder, atau organisasi yang diizinkan.

Untuk mengetahui informasi selengkapnya tentang batasan kebijakan organisasi terkait CMEK yang dikelola Google untuk Memorystore for Valkey, lihat Batasan kebijakan organisasi.

Harga

Memorystore for Valkey menagih instance yang mengaktifkan CMEK seperti instance lainnya; tidak ada biaya tambahan. Untuk mengetahui informasi selengkapnya, lihat Harga Memorystore for Valkey.

Anda menggunakan Cloud KMS API untuk mengelola CMEK. Saat Anda membuat instance Memorystore for Valkey dengan CMEK, Memorystore akan menggunakan kunci secara berkala untuk mengenkripsi data.

Anda akan ditagih oleh Cloud KMS untuk biaya kunci dan untuk operasi enkripsi dan dekripsi saat Memorystore for Valkey menggunakan kunci. Untuk mengetahui informasi selengkapnya, lihat harga Cloud KMS.

Batasan

Batasan berikut berlaku saat menggunakan CMEK dengan Memorystore for Valkey:

  • Anda tidak dapat mengaktifkan CMEK pada instance Memorystore for Valkey yang sudah ada.
  • Kunci, key ring, dan instance harus berada di region yang sama.
  • Anda harus menggunakan algoritma enkripsi simetris untuk kunci Anda.
  • Tingkat enkripsi dan dekripsi Cloud KMS bergantung pada kuota.

Langkah berikutnya