Tentang kunci enkripsi yang dikelola pelanggan (CMEK)

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.

Data diupload ke infrastruktur penyimpanan Google dan dibagi menjadi beberapa bagian. Setiap potongan dienkripsi dengan DEK-nya sendiri. Kemudian, DEK dienkripsi menggunakan KEK yang diambil dari Cloud KMS. Potongan terenkripsi dan DEK terenkripsi didistribusikan ke seluruh infrastruktur penyimpanan.

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.

Potongan data dienkripsi dengan DEK dan disimpan dengan DEK terenkripsi. Permintaan untuk mendekripsi DEK dikirim ke Cloud KMS, yang menyimpan KEK. Cloud KMS menampilkan DEK yang telah didekripsi.

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:

  • Data pelanggan yang disimpan dalam 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 ke akun layanan Memorystore for 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 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 otomatis melanjutkan instance.

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 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:

  • Google Cloud console: 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 lainnya di metadata instance.

Melakukan enkripsi 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.

Mengganti kunci KMS yang dilindungi

Jika Anda mengganti kunci KMS yang dilindungi dengan kunci KMS lain atau versi kunci utama baru, Memorystore for Redis akan menerapkan perubahan ini hanya pada operasi mendatang.

Mengganti kunci KMS yang dilindungi akan memengaruhi resource Anda dengan cara berikut:

  • Pencadangan: Memorystore for Redis mengekspor cadangan ke bucket Cloud Storage. Kunci enkripsi Cloud Storage mengontrol kunci yang digunakan untuk mengenkripsi data.
  • Persistensi: saat instance dimulai ulang atau mengalami peristiwa pemeliharaan berikutnya, kunci KMS 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.

Mengaktifkan atau memulihkan versi kunci CMEK utama

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

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 layanan Deny untuk 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