Tentang kunci enkripsi yang dikelola pelanggan (CMEK)

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 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. Untuk instance Memorystore for Redis 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 Redis. Ada dua tingkat enkripsi:

  • Enkripsi DEK: Memorystore menggunakan DEK untuk mengenkripsi data di Memorystore for Redis.
  • Enkripsi KEK: Memorystore menggunakan KEK untuk mengenkripsi DEK.

Instance Memorystore for Redis menyimpan DEK terenkripsi bersama data terenkripsi pada disk persisten dan Google mengelola Google KEK. CMEK adalah KEK yang mengenkripsi DEK. CMEK memungkinkan Anda membuat, menonaktifkan atau menghancurkan, dan mengaktifkan atau memulihkan KEK.

Anda mengelola CMEK dengan menggunakan Cloud Key Management Service API.

Diagram berikut menunjukkan cara kerja enkripsi data dalam penyimpanan di dalam instance Memorystore for Redis saat menggunakan enkripsi yang dikelola Google secara default dibandingkan dengan CMEK.

Tanpa CMEK

Data diunggah ke Google, kemudian dipotong dan setiap potongan dienkripsi dengan kunci enkripsi datanya sendiri. Kunci Enkripsi Data digabungkan menggunakan kunci enkripsi kunci. Dengan Enkripsi Google default, kunci enkripsi kunci diambil dari Keystore internal Google. Potongan terenkripsi dan kunci enkripsi yang digabungkan didistribusikan ke seluruh infrastruktur penyimpanan Google.

Dengan CMEK

Data diunggah ke Google, kemudian dipotong dan setiap potongan dienkripsi dengan kunci enkripsi datanya sendiri. Kunci Enkripsi Data digabungkan menggunakan kunci enkripsi kunci. Dengan CMEK yang menggunakan Cloud KMS, kunci enkripsi kunci diambil dari Cloud KMS. Potongan terenkripsi dan kunci enkripsi yang digabungkan didistribusikan ke seluruh infrastruktur penyimpanan Google.

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.

Potongan data dienkripsi dengan DEK dan disimpan dengan DEK gabungan. Permintaan untuk membuka DEK dikirim ke penyimpanan KMS yang menyimpan KEK yang tidak dapat diekspor. KMS Storage menampilkan DEK yang telah dibuka.

Harga

Memorystore for Redis menagih instance yang mendukung 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 Memorystore for Redis 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 menggunakan kunci tersebut. Untuk mengetahui informasi selengkapnya, lihat harga Cloud KMS.

Kapan Memorystore berinteraksi dengan CMEK?

Operasi Deskripsi
Pembuatan instance Saat membuat instance, Anda mengonfigurasinya untuk menggunakan CMEK.
Update instance Selama update pada instance yang mendukung CMEK, Memorystore for Redis akan memeriksa CMEK.

Data mana yang dienkripsi menggunakan CMEK?

CMEK mengenkripsi jenis data berikut:

Tentang akun layanan

Saat membuat instance dengan CMEK, Anda harus memberikan peran cloudkms.cryptoKeyEncrypterDecrypter kepada akun layanan Memorystore for Redis 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 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, 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

Jika Memorystore for Redis tidak dapat mengakses versi kunci yang sedang digunakan (misalnya, Anda menonaktifkan semua versi kunci), maka Memorystore for Redis akan mematikan instance. 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 melanjutkan instance secara otomatis.

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 membuat data yang dienkripsi dengan CMEK tidak dapat diakses secara permanen. Untuk melakukannya, Anda menghancurkan versi kunci. Untuk mengetahui informasi selengkapnya tentang cara menghancurkan versi kunci, lihat Menghancurkan dan memulihkan versi kunci.

Bagaimana cara mengimpor atau mengekspor data untuk instance yang mendukung CMEK?

Jika Anda ingin data Anda tetap dienkripsi dengan CMEK saat Anda mengekspor data, Anda harus menetapkan CMEK di bucket Cloud Storage sebelum mengekspor data ke dalamnya.

Jika data Anda disimpan di instance yang mendukung CMEK, tidak ada persyaratan atau batasan khusus untuk mengimpor data ke instance baru.

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 ingin memastikan tidak ada akses data ke instance Anda, nonaktifkan versi kunci utama CMEK Anda. Tindakan ini akan menonaktifkan instance Anda. Selain itu, jika CMEK yang sedang digunakan dinonaktifkan atau dihancurkan, Memorystore for Redis akan mematikan instance. Hal 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 berwarna merah akan muncul di samping instance Anda. Jika Anda mengarahkan kursor ke tooltip, status No state akan muncul.
  • gcloud CLI: gunakan perintah gcloud redis instances describe. Pastikan Anda tidak melihat state: READY, state: REPAIRING, atau status lain dalam metadata instance.

Mengaktifkan atau memulihkan versi kunci CMEK utama

Jika Anda mengaktifkan atau memulihkan versi kunci utama CMEK Anda, Memorystore for Redis tidak lagi menyembunyikan instance Anda.

Batasan

Batasan berikut berlaku saat menggunakan CMEK dengan Memorystore for Redis:

  • Anda tidak dapat mengaktifkan CMEK di instance Memorystore for Redis 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.

Kebijakan organisasi CMEK

Memorystore for Redis mendukung batasan kebijakan organisasi yang dapat Anda gunakan 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 untuk batasan constraints/gcp.restrictNonCmekServices, Anda tidak dapat membuat instance yang tidak dilindungi CMEK.

  • Jika Anda mengonfigurasi batasan constraints/gcp.restrictCmekCryptoKeyProjects, 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.