Halaman ini menjelaskan cara kerja kunci enkripsi yang dikelola pelanggan (CMEK) dengan Memorystore for Redis Cluster. Untuk segera menggunakan fitur ini, lihat Menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).
Siapa yang sebaiknya menggunakan CMEK?
CMEK ditujukan untuk organisasi yang memiliki data sensitif atau teregulasi yang mengharuskan mereka mengelola kunci enkripsinya sendiri.
Enkripsi yang dikelola Google versus enkripsi yang dikelola pelanggan
Dengan fitur CMEK, Anda dapat menggunakan kunci kriptografis Anda sendiri untuk data dalam penyimpanan di Memorystore for Redis Cluster. Untuk instance Memorystore for Redis Cluster yang mendukung CMEK, Google menggunakan kunci Anda untuk mengakses semua data dalam penyimpanan.
Memorystore menggunakan kunci enkripsi data (DEK) dan kunci enkripsi kunci (KEK) yang dikelola Google untuk mengenkripsi data di Memorystore untuk Cluster Redis. Ada dua tingkat enkripsi:
- Enkripsi DEK: Memorystore menggunakan DEK untuk mengenkripsi data di Memorystore for Redis Cluster.
- Enkripsi KEK: Memorystore menggunakan KEK untuk mengenkripsi DEK.
Instance Memorystore for Redis Cluster menyimpan DEK terenkripsi bersama data terenkripsi di disk dan Google mengelola KEK Google. Dengan CMEK, Anda membuat kunci yang menggabungkan Google KEK. CMEK memungkinkan Anda membuat, menonaktifkan atau menghancurkan, merotasi, dan mengaktifkan atau memulihkan KEK.
Diagram berikut menunjukkan cara kerja enkripsi data dalam penyimpanan di dalam instance Memorystore for Redis Cluster saat menggunakan enkripsi yang dikelola Google secara default dibandingkan CMEK.
Tanpa CMEK
Dengan CMEK
Saat mendekripsi data yang digabungkan dengan CMEK, Memorystore menggunakan KEK dari Cloud Key Management Service untuk mendekripsi DEK dan DEK yang tidak dienkripsi untuk mendekripsi data dalam penyimpanan.
Harga
Memorystore for Redis Cluster menagih cluster yang mendukung CMEK seperti cluster lainnya; tidak ada biaya tambahan. Untuk mengetahui informasi selengkapnya, lihat Harga Memorystore for Redis Cluster.
Anda menggunakan Cloud KMS API untuk mengelola CMEK. Saat Anda membuat instance Cluster Memorystore for Redis dengan CMEK, Memorystore menggunakan kunci secara berkala untuk mengenkripsi data guna memastikan bahwa izin untuk kunci sudah benar dan kunci diaktifkan.
Anda ditagih oleh Cloud KMS untuk biaya kunci dan untuk operasi enkripsi dan dekripsi saat Memorystore for Redis Cluster menggunakan kunci tersebut. Untuk mengetahui informasi selengkapnya, lihat harga Cloud KMS.
Data mana yang dienkripsi menggunakan CMEK?
CMEK mengenkripsi jenis data pelanggan berikut yang disimpan di penyimpanan persisten:
- Pencadangan: Pencadangan memungkinkan Anda memulihkan data ke titik waktu tertentu, serta mengekspor dan menganalisis data. Pencadangan juga berguna untuk pemulihan dari bencana, migrasi data, berbagi data, dan skenario kepatuhan.
- Persistensi: Memorystore for Redis Cluster mendukung dua jenis persistensi:
- Persistensi RDB: Fitur database Redis (RDB) melindungi data Anda dengan menyimpan snapshot data Anda di penyimpanan yang tahan lama.
- Persistensi AOF: Fitur ini memprioritaskan ketahanan data. Redis menyimpan data secara tahan lama dengan mencatat setiap perintah tulis ke file log yang disebut File Hanya Tambah (AOF). Jika terjadi kegagalan atau mulai ulang sistem, server akan memutar ulang perintah file AOF secara berurutan untuk memulihkan data Anda.
Tentang akun layanan
Saat membuat instance dengan CMEK, Anda harus memberikan peran cloudkms.cryptoKeyEncrypterDecrypter kepada akun layanan Memorystore untuk Cluster Redis yang memiliki format berikut:
service-[PROJECT_NUMBER]@cloud-redis.
Dengan memberikan izin ini, akun layanan dapat meminta akses kunci dari Cloud KMS.
Untuk mengetahui petunjuk tentang cara memberikan izin ini ke akun layanan, lihat Memberikan akses akun layanan Memorystore for Redis Cluster ke kunci.
Tentang kunci
Di Cloud KMS, Anda perlu membuat key ring dengan kunci kriptografis yang menggunakan algoritma enkripsi simetris. Saat membuat instance Memorystore for Redis Cluster baru, Anda memilih kunci ini untuk mengenkripsi instance. Anda dapat membuat satu project untuk kunci dan instance, atau project yang berbeda untuk masing-masing kunci dan instance.
CMEK tersedia di semua lokasi instance Memorystore for Redis Cluster. Anda harus menetapkan region kunci dan key ring ke region yang sama dengan instance. Kunci multi-region atau region global tidak berfungsi. Jika region tidak cocok, permintaan untuk membuat instance akan gagal.
CMEK menggunakan format berikut:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[KEY_RING_NAME]/cryptoKeys/[KEY_NAME]
Bagaimana cara membuat data terenkripsi CMEK agar tidak dapat diakses secara permanen?
Anda mungkin ingin menghancurkan data yang dienkripsi dengan CMEK secara permanen. Untuk melakukannya, Anda menghancurkan versi kunci. Anda tidak dapat menghancurkan ring kunci atau kunci, tetapi Anda dapat menghancurkan versi kunci.
Perilaku versi kunci CMEK
Bagian ini memberikan informasi tentang apa yang terjadi saat Anda menonaktifkan, menghancurkan, merotasi, mengaktifkan, dan memulihkan versi kunci.
Menonaktifkan atau menghancurkan versi kunci CMEK
Jika Anda menonaktifkan atau menghancurkan versi kunci utama CMEK, maka kondisi berikut berlaku untuk cadangan dan persistensi.
Cadangan
- Anda tidak dapat membuat pencadangan 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 pencadangan otomatis hingga Anda mengaktifkan atau memulihkan versi kunci utama.
Persistensi
- Jika Anda mengaktifkan persistensi, Memorystore for Redis Cluster akan melakukan update yang serupa dengan yang digunakan dalam pemeliharaan dan menonaktifkan fitur Persistensi. Anda tidak lagi ditagih untuk fitur ini.
- Memorystore for Redis Cluster tidak menghapus data baru ke penyimpanan persisten menggunakan CMEK.
- Memorystore for Redis Cluster tidak dapat membaca data yang ada di penyimpanan persisten.
- Anda tidak dapat memperbarui 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, maka kondisi berikut berlaku untuk pencadangan 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, fitur ini akan tetap diaktifkan. Jika versi kunci lama yang digunakan dalam persistensi dinonaktifkan atau dimusnahkan, maka Memorystore untuk Redis Cluster akan melakukan update yang serupa dengan yang digunakan dalam pemeliharaan dan mengenkripsi ulang data dengan versi kunci utama.
Merotasi versi kunci CMEK utama
Jika Anda merotasi versi kunci utama CMEK dan membuat versi kunci utama baru, kondisi berikut berlaku untuk pencadangan dan persistensi:
- Versi kunci utama terbaru CMEK Anda mengenkripsi cadangan baru.
- Untuk cadangan yang ada, tidak ada enkripsi ulang yang dilakukan.
- Untuk persistensi, VM tidak melakukan tindakan apa pun. VM akan terus menggunakan versi kunci yang lebih lama hingga peristiwa pemeliharaan berikutnya.
Mengaktifkan atau memulihkan versi kunci CMEK utama
Jika Anda mengaktifkan atau memulihkan versi kunci utama CMEK, maka kondisi berikut berlaku untuk pencadangan dan persistensi:
- Anda dapat membuat pencadangan sesuai permintaan dan otomatis lagi.
- Memorystore for Redis Cluster melakukan update yang serupa dengan yang digunakan dalam pemeliharaan dan mengaktifkan kembali persistensi.
Batasan
Batasan berikut berlaku saat menggunakan CMEK dengan Memorystore for Redis Cluster:
- Anda tidak dapat mengaktifkan CMEK pada deployment Memorystore for Redis Cluster yang sudah ada.
- Region untuk kunci, key ring, dan instance harus sama.
- Anda harus menggunakan algoritma enkripsi simetris untuk kunci Anda.
- Tingkat enkripsi dan dekripsi Cloud KMS bergantung pada kuota.