Halaman ini menjelaskan cara kerja kunci enkripsi yang dikelola pelanggan (CMEK) dengan Memorystore for Redis. Untuk mulai menggunakan fitur ini, lihat Menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).
Secara default, Memorystore for Redis mengenkripsi konten pelanggan dalam penyimpanan. Memorystore for Redis 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 for 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 Anda mirip 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. Setelah menambahkan kunci enkripsi yang dikelola pelanggan, setiap kali panggilan API dilakukan, Memorystore akan menggunakan kunci Anda untuk mengakses data.
Memorystore menggunakan kunci enkripsi data (DEK) dan kunci enkripsi kunci (KEK) yang dikelola Google untuk mengenkripsi Memorystore untuk Redis. Ada dua tingkat enkripsi:
- DEK mengenkripsi data.
- KEK mengenkripsi DEK.
Instance Memorystore menyimpan DEK terenkripsi bersama data terenkripsi pada persistent disk dan Google mengelola Google KEK. CMEK adalah KEK yang mengenkripsi DEK. Kunci enkripsi yang dikelola pelanggan memungkinkan Anda membuat, mencabut, dan menghapus KEK.
Kunci enkripsi yang dikelola pelanggan dikelola melalui Cloud Key Management Service API.
Diagram di bawah menunjukkan cara kerja enkripsi data dalam penyimpanan di dalam instance Memorystore saat menggunakan enkripsi Google default dibandingkan kunci enkripsi yang dikelola pelanggan.
Tanpa CMEK
Dengan CMEK
Saat mendekripsi data yang digabungkan dengan kunci enkripsi yang dikelola pelanggan, Memorystore menggunakan KEK untuk mendekripsi DEK dan DEK yang tidak dienkripsi untuk mendekripsi data dalam penyimpanan.
Kapan Memorystore berinteraksi dengan kunci CMEK?
Operasi | Deskripsi |
---|---|
Pembuatan instance | Selama pembuatan instance, Anda mengonfigurasi instance untuk menggunakan kunci enkripsi yang dikelola pelanggan. |
Update instance | Memorystore memeriksa kunci CMEK selama update pada instance yang mendukung CMEK. |
Data apa yang dienkripsi menggunakan CMEK?
CMEK mengenkripsi jenis data berikut:
- Data pelanggan yang disimpan di penyimpanan persisten.
- Metadata yang terkait dengan fitur keamanan seperti AUTH dan enkripsi dalam pengiriman.
Tentang akun layanan
Saat membuat instance dengan CMEK, Anda harus memberikan peran cloudkms.cryptoKeyEncrypterDecrypter kepada akun layanan Memorystore 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 ke kunci.
Tentang kunci
Di Cloud KMS, Anda perlu membuat keyring dengan kunci kriptografis yang menggunakan algoritma enkripsi/dekripsi simetris. Saat membuat instance Memorystore baru, Anda memilih kunci ini untuk mengenkripsi instance. Anda dapat membuat satu project untuk kunci dan instance Memorystore, atau project yang berbeda untuk masing-masing kunci.
CMEK tersedia di semua lokasi instance Memorystore. Region kunci dan keyring harus ditetapkan ke region yang sama dengan instance Memorystore for Redis. Kunci multi-region atau region global tidak berfungsi. Permintaan untuk membuat instance Memorystore akan gagal jika region tidak cocok.
CMEK untuk Memorystore kompatibel dengan Cloud External Key Manager (Cloud EKM).
Kunci enkripsi yang dikelola pelanggan menggunakan format berikut:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Jika Memorystore tidak dapat mengakses versi kunci yang sedang digunakan (misalnya, jika Anda menonaktifkan versi kunci), Memorystore akan mematikan instance tanpa penundaan yang tidak semestinya. Di konsol Google Cloud , instance yang ditangguhkan akan menampilkan tooltip tanda seru berwarna merah di halaman Instances. Saat mengarahkan kursor ke tooltip, "Tidak ada status" akan ditampilkan. Setelah kunci dapat diakses kembali, Memorystore akan otomatis melanjutkan instance.
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 enkripsi yang dikelola pelanggan. Anda tidak dapat menghancurkan keyring atau kunci, tetapi Anda dapat menghancurkan versi kunci dari kunci tersebut.
Bagaimana cara saya mengekspor serta mengimpor data dari dan ke instance yang mendukung CMEK?
Jika ingin data Anda tetap dienkripsi dengan kunci yang dikelola pelanggan selama impor atau ekspor, Anda harus menetapkan kunci enkripsi yang dikelola pelanggan di bucket Cloud Storage sebelum mengekspor data ke dalamnya.
Tidak ada persyaratan atau batasan khusus untuk mengimpor data ke instance Memorystore baru jika data sebelumnya disimpan di instance Memorystore yang diaktifkan dengan CMEK.
Perilaku penghancuran/penonaktifan versi kunci CMEK
Jika ingin memastikan tidak ada akses data ke instance Anda, Anda dapat melakukannya dengan menonaktifkan versi kunci utama dari kunci enkripsi yang dikelola pelanggan. Tindakan ini akan menonaktifkan instance Anda tanpa penundaan yang tidak semestinya. Selain itu, Memorystore akan mematikan instance tanpa penundaan yang tidak semestinya jika ada kunci enkripsi yang dikelola pelanggan yang sedang digunakan dinonaktifkan/dihancurkan. Hal ini mencakup versi kunci lama yang masih digunakan oleh instance Memorystore. Anda dapat menggunakan gcloud atau konsol Google Cloud untuk melihat apakah instance Anda ditangguhkan:
Untuk konsol Google Cloud , jika instance Anda ditangguhkan, Anda akan melihat notifikasi tooltip merah di samping instance Anda di halaman Instances Memorystore for Redis. Tooltip menampilkan "Tidak ada status" saat kursor Anda diarahkan ke sana.
Untuk gcloud, jika Anda menjalankan gcloud redis instances describe
, dan Anda tidak melihat state: READY
, state: REPAIRING
, atau status lain dalam metadata instance, berarti instance Anda ditangguhkan.
Mengaktifkan kembali/memulihkan versi kunci CMEK yang sedang digunakan
Instance akan ditampilkan setelah mengaktifkan kembali/memulihkan versi kunci CMEK yang sedang digunakan.
Pembatasan
Batasan berikut berlaku saat menggunakan kunci enkripsi yang dikelola pelanggan dengan Memorystore:
- Anda tidak dapat mengaktifkan kunci enkripsi yang dikelola pelanggan pada instance Memorystore yang sudah ada.
- Region untuk kunci, keyring, dan instance Memorystore harus sama.
- Anda harus menggunakan algoritma enkripsi/dekripsi simetris untuk kunci Anda.
- Tingkat enkripsi dan dekripsi Cloud KMS bergantung pada kuota.
Kebijakan organisasi CMEK
Memorystore for Redis mendukung batasan kebijakan organisasi yang dapat digunakan untuk perlindungan CMEK.
Kebijakan dapat membatasi kunci Cloud KMS yang dapat digunakan untuk perlindungan CMEK.
Jika Memorystore for Redis API tercantum dalam daftar kebijakan layanan
Deny
di bawah batasanconstraints/gcp.restrictNonCmekServices
, pembuatan Memorystore for Redis akan gagal untuk instance yang tidak dilindungi CMEK.Jika
constraints/gcp.restrictCmekCryptoKeyProjects
dikonfigurasi, Memorystore for Redis akan membuat instance yang dilindungi CMEK yang dienkripsi menggunakan kunci dari project, folder, atau organisasi yang diizinkan.
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi kebijakan organisasi CMEK, lihat Kebijakan organisasi CMEK.