Dokumen ini menjelaskan cara menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud Key Management Service (Cloud KMS) untuk instance Memorystore for Redis Anda. Dokumen ini juga menguraikan data mana yang dienkripsi dalam penyimpanan persisten dan cara instance Anda berperilaku selama peristiwa siklus proses utama.
CMEK memungkinkan Anda mengontrol kunci kriptografi yang melindungi data tersimpan Anda. Dengan mengelola kunci Anda sendiri di Cloud KMS, Anda akan mendapatkan kontrol yang lebih besar atas akses, rotasi, dan penggunaan kunci, yang membantu Anda memenuhi persyaratan kepatuhan dan peraturan yang ketat.
Menerapkan CMEK memberikan lapisan keamanan dan kontrol tambahan atas data persisten Anda, seperti cadangan dan file persistensi. Anda hanya dapat mengaktifkan CMEK di instance baru. Anda tidak dapat menerapkan CMEK ke instance yang sudah ada.
Siapa yang sebaiknya menggunakan CMEK?
CMEK ditujukan untuk organisasi yang memiliki data sensitif atau teregulasi, dan memerlukan kontrol atas kunci enkripsi mereka sendiri. Untuk mengetahui informasi selengkapnya tentang apakah akan menggunakan CMEK untuk mengenkripsi data ini, lihat Menentukan apakah akan menggunakan CMEK.
Enkripsi yang dikelola pelanggan
Dengan CMEK, Anda dapat menggunakan kunci kriptografis Anda untuk melindungi data yang disimpan dalam instance. Untuk mengenkripsi data ini, Memorystore for Redis 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 Redis.
- Enkripsi KEK: KEK mengenkripsi DEK.
Memorystore for Redis menggunakan KEK untuk mengenkripsi DEK, dan menggunakan DEK untuk mengenkripsi data yang disimpan. 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 potongan, dan setiap potongan dienkripsi dengan DEK-nya sendiri. Cloud KMS menyediakan KEK untuk mengenkripsi DEK, dan infrastruktur penyimpanan Google mendistribusikan potongan data terenkripsi dan DEK terenkripsi di seluruh sistem.

Diagram berikut menunjukkan cara Memorystore for Redis mendekripsi data yang dienkripsi dengan CMEK. Untuk mengakses data terenkripsi ini, Memorystore for Redis mengirim permintaan ke Cloud KMS, yang mengelola KEK, untuk mendekripsi DEK. Kemudian, Cloud KMS akan menampilkan DEK yang telah didekripsi, yang digunakan instance untuk mendekripsi data yang tersimpan.

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 menganalisisnya. Pencadangan juga berguna untuk pemulihan dari bencana, migrasi data, berbagi data, dan skenario kepatuhan.
- Persistensi: Memorystore for Redis mendukung persistensi Database Redis (RDB), yang memungkinkan Anda menyimpan snapshot data Anda di penyimpanan yang tahan lama.
- Metadata yang terkait dengan fitur keamanan seperti
AUTHdan enkripsi dalam pengiriman. Untuk mengetahui informasi selengkapnya, lihat Tentang Redis AUTH dan Tentang enkripsi dalam transit.
Komponen CMEK
Bagian berikut menjelaskan persyaratan dan perilaku akun layanan, kunci kriptografi, versi kunci, dan kebijakan organisasi yang membentuk arsitektur CMEK Anda.
Akun layanan
Untuk membuat instance yang mendukung CMEK, Anda harus memberikan peran roles/cloudkms.cryptoKeyEncrypterDecrypter ke akun layanan Memorystore for Redis yang menggunakan format berikut:
service-PROJECT_NUMBER@cloud-redis.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 Redis, 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. Anda harus membuat key ring dan kunci di region yang sama dengan tempat Anda ingin membuat instance. Kunci untuk region multi-region atau global tidak berfungsi. 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.
Di konsol Google Cloud , instance yang ditangguhkan menampilkan tooltip tanda seru berwarna merah di halaman Instances. Jika Anda mengarahkan kursor ke tooltip, status No state akan muncul. Setelah kunci dapat diakses,
Memorystore for Redis akan otomatis melanjutkan instance.
Kunci eksternal
Sebagai bagian dari strategi CMEK, Anda dapat menggunakan kunci eksternal. Untuk melakukannya, gunakan Cloud External Key Manager (Cloud EKM) untuk mengenkripsi data 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 Redis tidak akan membuat instance. Selain itu, jika kunci eksternal menjadi tidak tersedia kapan saja setelah Anda membuat instance, Memorystore for Redis akan menangguhkan instance hingga akses dipulihkan.
Untuk pertimbangan lainnya tentang penggunaan kunci eksternal, lihat Pertimbangan.
Versi kunci
Cloud KMS menyimpan materi kunci kriptografis yang Anda gunakan untuk mengenkripsi dan mendekripsi data Anda 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 dan data yang dilindunginya selama peristiwa siklus proses utama, seperti menonaktifkan, menghancurkan, mengaktifkan, atau memulihkan versi kunci. Bagian ini juga menjelaskan dampak penggantian kunci Cloud KMS, memberikan panduan tentang mengenkripsi ulang data secara manual, dan menjelaskan cara mengimpor atau mengekspor data untuk instance yang mendukung CMEK.
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 penghancuran kriptografi), Anda menghancurkan versi kunci. Untuk mengetahui informasi selengkapnya tentang menghancurkan versi kunci, lihat Menghancurkan dan memulihkan versi kunci.
Jika Anda ingin memastikan tidak ada akses data ke instance Anda, nonaktifkan versi kunci utama Anda. Tindakan ini akan menangguhkan instance Anda. Selain itu, jika CMEK yang sedang digunakan dinonaktifkan atau dihapus, Memorystore for Redis akan menangguhkan instance. Ini mencakup versi kunci lama yang digunakan instance.
Untuk melihat apakah Memorystore for Redis menangguhkan instance Anda, gunakan salah satu antarmuka berikut:
- KonsolGoogle Cloud : di halaman Instances, tooltip tanda seru merah akan muncul di samping instance Anda. Jika Anda mengarahkan kursor ke tooltip, status Tidak ada status akan muncul.
- gcloud CLI: gunakan perintah
gcloud redis instances describe. Periksa kolomstate; instance yang ditangguhkan tidak menampilkan statusREADYatauREPAIRING.
Mengganti kunci Cloud KMS yang dilindungi
Jika Anda mengganti kunci Cloud KMS yang dilindungi dengan kunci lain atau versi kunci utama baru, Memorystore for Redis akan menerapkan perubahan ini hanya pada operasi mendatang.
Mengganti kunci yang dilindungi akan memengaruhi resource Anda dengan cara berikut:
- Pencadangan: Memorystore for Redis mengekspor cadangan ke Cloud Storage. Oleh karena itu, setelan enkripsi bucket tujuan (bukan CMEK instance) mengontrol cara data yang diekspor dienkripsi.
- Persistensi: saat instance dimulai ulang atau mengalami peristiwa pemeliharaan pada waktu berikutnya, kunci baru akan digunakan.
- Cache utama: mengganti kunci ini tidak akan berpengaruh. CMEK tidak mengenkripsi data dalam memori karena data ini tidak dianggap sebagai data dalam penyimpanan.
Mengenkripsi ulang data yang dilindungi CMEK secara manual
Memorystore for Redis tidak mendukung pembungkusan ulang data yang ada saat istirahat 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.
Mengimpor atau mengekspor data untuk instance yang mendukung CMEK
Jika Anda ingin agar data yang diekspor tetap dilindungi oleh CMEK, Anda harus mengonfigurasi CMEK di bucket Cloud Storage tujuan sebelum mengekspor data ke dalamnya. Jika data Anda sudah disimpan di instance yang mendukung CMEK, tidak ada persyaratan atau batasan khusus untuk mengimpor data tersebut ke instance baru. Untuk mengetahui informasi selengkapnya, lihat Tentang mengimpor dan mengekspor data.
Mengaktifkan atau memulihkan versi kunci CMEK utama
Jika Anda mengaktifkan atau memulihkan versi kunci utama, Memorystore for Redis akan melanjutkan instance Anda secara otomatis.
Batasan kebijakan organisasi
Memorystore for Redis 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 Redis API tercantum dalam daftar kebijakan layananDenyuntuk 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.
Karena Memorystore for Redis dan Memorystore for Redis Cluster
berbagi endpoint yang sama (redis.googleapis.com), Anda tidak dapat menerapkan CMEK untuk
instance secara terpisah dari cluster di Memorystore for Redis Cluster.
Untuk mengetahui informasi selengkapnya tentang batasan kebijakan organisasi terkait CMEK yang dikelola Google untuk Memorystore for Redis, lihat Batasan kebijakan organisasi.
Harga
Memorystore for Redis menagih instance yang diaktifkan dengan CMEK seperti instance lainnya; tidak ada biaya tambahan. Untuk mengetahui informasi selengkapnya, lihat Harga Memorystore for Redis.
Anda menggunakan Cloud KMS API untuk mengelola CMEK. Saat Anda membuat instance dengan CMEK, Memorystore akan menggunakan kunci tersebut secara berkala untuk mengenkripsi data.
Anda ditagih oleh Cloud KMS untuk biaya kunci dan untuk operasi enkripsi dan dekripsi saat Memorystore for Redis menggunakan kunci tersebut. Untuk mengetahui informasi selengkapnya, lihat Harga Cloud KMS.
Batasan
Batasan berikut berlaku saat menggunakan CMEK dengan Memorystore for Redis:
- Anda tidak dapat mengaktifkan CMEK pada instance 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
- Pelajari CMEK lebih lanjut.
- Pelajari cara meningkatkan keamanan data menggunakan CMEK.
- Pelajari lebih lanjut pencadangan.
- Pelajari persistensi lebih lanjut.