Halaman ini menjelaskan cara kerja kunci enkripsi yang dikelola pelanggan (CMEK) dengan Memorystore for Redis Cluster. Untuk mulai menggunakan fitur ini, lihat Menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).
Secara default, Memorystore for Redis Cluster mengenkripsi konten pelanggan dalam penyimpanan. Memorystore for Redis Cluster menangani enkripsi untuk Anda tanpa tindakan tambahan dari Anda. Opsi ini disebut Enkripsi default Google.
Jika ingin mengontrol kunci enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud KMS dengan layanan yang terintegrasi dengan CMEK, termasuk Memorystore untuk Cluster Redis. 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, Andalah yang mengontrol dan mengelola kunci ini di Cloud KMS.
Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Memorystore for Redis Cluster Anda akan serupa dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).
Siapa yang sebaiknya menggunakan CMEK?
CMEK ditujukan untuk organisasi yang memiliki data sensitif atau teregulasi yang harus dienkripsi. Untuk mengetahui informasi selengkapnya tentang apakah akan menggunakan CMEK untuk mengenkripsi data ini, lihat Menentukan apakah akan menggunakan CMEK.
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. CMEK adalah KEK yang menggabungkan DEK. 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 Memorystore for Redis Cluster dengan CMEK, Memorystore menggunakan kunci secara berkala untuk mengenkripsi data.
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
ke akun layanan Memorystore for Redis Cluster yang memiliki format berikut:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
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 membuat key ring dan kunci di region yang sama dengan tempat Anda ingin membuat instance. Untuk instance multi-region, Anda harus menyetel 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
Kunci eksternal
Anda dapat menggunakan Cloud External Key Manager (Cloud EKM) untuk mengenkripsi data dalam Google Cloud 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, instance tidak akan dibuat.
Untuk pertimbangan lainnya saat menggunakan kunci eksternal, lihat Cloud External Key Manager.
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. Untuk mengetahui informasi selengkapnya tentang menghancurkan versi kunci, lihat Menghancurkan dan memulihkan 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 mengonfigurasi instance untuk menggunakan persisten, Memorystore for Redis Cluster akan menonaktifkan fitur persisten saat versi kunci tidak tersedia. 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, node tidak melakukan tindakan apa pun. Node 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 instance 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.