Tentang kunci enkripsi yang dikelola pelanggan (CMEK)

Halaman ini menjelaskan cara kerja kunci enkripsi yang dikelola pelanggan dengan Cloud SQL. Untuk segera menggunakan fitur ini, lihat Menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).

Apakah CMEK tepat untuk saya?

Kunci enkripsi yang dikelola pelanggan ditujukan untuk organisasi yang memiliki data yang sensitif atau data yang diatur yang mengharuskan mereka mengelola kunci enkripsi mereka sendiri.

Enkripsi yang dikelola Google dibandingkan enkripsi yang dikelola pelanggan

Dengan fitur CMEK, Anda dapat menggunakan kunci kriptografis sendiri untuk data dalam penyimpanan di Cloud SQL. Setelah menambahkan kunci enkripsi yang dikelola pelanggan, setiap kali panggilan API dilakukan, Cloud SQL akan menggunakan kunci Anda untuk mengakses data.

Cloud SQL menggunakan kunci enkripsi data (DEK) dan kunci enkripsi kunci (KEK) yang dikelola Google untuk mengenkripsi Cloud SQL. Ada dua tingkat enkripsi:

  1. DEK mengenkripsi data.
  2. KEK mengenkripsi DEK.

Instance Cloud SQL menyimpan DEK terenkripsi bersama data terenkripsi pada PD dan Google mengelola Google KEK. Dengan kunci enkripsi yang dikelola pelanggan, Anda membuat kunci yang menggabungkan Google KEK. Kunci enkripsi yang dikelola pelanggan memungkinkan Anda membuat, mencabut, dan menghapus KEK.

Kunci enkripsi yang dikelola pelanggan, termasuk software, hardware, dan kunci eksternal, keys, semuanya dikelola melalui Cloud Key Management Service API.

Diagram di bawah menunjukkan cara kerja enkripsi data dalam penyimpanan di dalam instance Cloud SQL saat menggunakan enkripsi Google default dibandingkan kunci enkripsi yang dikelola pelanggan.

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 kunci enkripsi yang dikelola pelanggan, Cloud SQL menggunakan KEK 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.

Kapan Cloud SQL berinteraksi dengan kunci CMEK?

Operasi Catatan
Pembuatan instance Selama pembuatan instance, Anda mengonfigurasi instance untuk menggunakan kunci enkripsi yang dikelola pelanggan.
Pembuatan cadangan Selama proses pencadangan untuk instance yang mendukung CMEK, kunci enkripsi yang dikelola pelanggan akan mengenkripsi data pengguna, seperti kueri dan respons pengguna. Cadangan dari instance yang mendukung CMEK akan mewarisi enkripsinya dengan kunci Cloud KMS yang sama dengan instance sumber.
Pemulihan instance Selama pemulihan untuk instance yang mendukung CMEK, Cloud SQL menggunakan kunci tersebut untuk mengakses data pada instance cadangan yang sedang dipulihkan. Saat memulihkan ke instance lain, instance target dapat menggunakan kunci berbeda untuk enkripsi.
Pembuatan replika Saat Anda membuat replika baca instance Cloud SQL di region yang sama, replika baca tersebut akan mewarisi CMEK dari instance induk. Jika membuat replika baca di region yang berbeda, Anda harus memilih CMEK dari region lain tersebut. Setiap region menggunakan kumpulan kuncinya sendiri.
Pembuatan clone Clone dari instance yang mendukung CMEK mewarisi enkripsi CMEK dengan kunci Cloud KMS yang sama dengan instance sumber.
Update instance Selama update pada instance yang mendukung CMEK, Cloud SQL akan memeriksa kunci CMEK.

Lokasi mana yang mendukung instance Cloud SQL yang mendukung CMEK?

CMEK tersedia di semua lokasi instance Cloud SQL.

Tentang akun layanan

Jika instance Cloud SQL telah mengaktifkan CMEK, Anda harus menggunakan akun layanan untuk meminta akses kunci dari Cloud KMS.

Untuk menggunakan kunci enkripsi yang dikelola pelanggan pada sebuah project, Anda harus memiliki akun layanan dan harus memberikan akses kunci enkripsi yang dikelola pelanggan ke akun layanan. Akun layanan harus ada di dalam project. Akun layanan dapat dilihat di semua region.

Jika Anda menggunakan Console untuk membuat instance, Cloud SQL akan otomatis membuat akun layanan saat Anda pertama kali memilih opsi Kunci yang dikelola pelanggan (jika akun layanan belum ada). Anda tidak perlu memiliki izin khusus pada akun pengguna Anda saat Cloud SQL secara otomatis membuat akun layanan.

Tentang kunci

Di Cloud KMS, Anda perlu membuat keyring dengan kunci kriptografis, yang dilengkapi dengan lokasi. Saat membuat instance Cloud SQL baru, Anda memilih kunci ini untuk mengenkripsi instance.

Anda perlu mengetahui ID kunci dan region kunci saat Anda membuat instance Cloud SQL baru yang menggunakan kunci enkripsi yang dikelola pelanggan. Anda harus menempatkan instance Cloud SQL baru di region yang sama dengan kunci enkripsi yang dikelola pelanggan yang terkait dengan instance tersebut. Anda dapat membuat satu project untuk kunci dan instance Cloud SQL, atau project yang berbeda untuk masing-masing kunci.

Kunci enkripsi yang dikelola pelanggan menggunakan format berikut:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

Jika Cloud SQL tidak dapat mengakses kunci (misalnya jika Anda menonaktifkan versi kunci), Cloud SQL akan menangguhkan instance. Setelah kunci dapat diakses kembali, Cloud SQL akan otomatis melanjutkan instance.

Saat Anda merotasi kunci, instance yang dienkripsi dengan kunci tersebut tidak secara otomatis terenkripsi ulang dengan versi kunci utama yang baru. Anda dapat mengenkripsi ulang instance atau replika utama CMEK yang ada dengan versi kunci utama yang baru. Untuk mengetahui informasi selengkapnya tentang cara mengenkripsi ulang instance atau replika Cloud SQL setelah rotasi kunci, lihat Enkripsi ulang instance atau replika berkemampuan CMEK yang ada.

Pengelola kunci eksternal

Anda dapat menggunakan kunci yang disimpan di pengelola kunci eksternal, seperti Fortanix, Ionic, atau Thales, sebagai kunci enkripsi yang dikelola pelanggan. Untuk mempelajari cara menggunakan kunci eksternal dengan Cloud KMS, lihat Cloud External Key Manager (Cloud EKM).

Key Access Justifications

Anda dapat menggunakan Key Access Justifications (KAJ) sebagai bagian dari Cloud EKM. KAJ memungkinkan Anda dapat melihat alasan setiap permintaan Cloud EKM. Selain itu, berdasarkan justifikasi yang disediakan, Anda dapat otomatis menyetujui atau menolak permintaan. Untuk mempelajari lebih lanjut, lihat Ringkasan.

Dengan demikian, KAJ memberikan kontrol tambahan atas data Anda dengan memberikan justifikasi untuk setiap upaya untuk mendekripsi data.

Untuk informasi terkait tentang penggunaan kunci Anda dengan instance Cloud SQL, lihat Membuat instance Cloud SQL dengan CMEK.

Bagaimana cara membuat data terenkripsi CMEK 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 mengekspor serta mengimpor data dari dan ke instance yang mendukung CMEK?

Jika ingin data Anda tetap dienkripsi dengan kunci yang dikelola pelanggan selama ekspor atau impor, 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 baru jika data sebelumnya disimpan di instance yang diaktifkan dengan kunci enkripsi yang dikelola pelanggan.

Pembatasan

Pembatasan berikut berlaku saat menggunakan kunci enkripsi yang dikelola pelanggan:

  • Anda tidak dapat mengaktifkan kunci enkripsi yang dikelola pelanggan pada instance yang sudah ada.
  • Anda tidak dapat menetapkan kunci yang berbeda ke replika di region yang sama dengan instance utama. Untuk replika lintas-region, Anda perlu membuat kunci baru untuk region replika.
  • Anda tidak dapat menetapkan kunci berbeda pada clone.
  • Anda tidak dapat menggunakan kunci enkripsi yang dikelola pelanggan untuk mengenkripsi:
    • Server eksternal (instance utama eksternal dan replika eksternal)
    • Metadata instance, seperti ID instance, versi database, jenis mesin, flag, jadwal pencadangan, dll.
  • Anda tidak dapat menggunakan kunci enkripsi yang dikelola pelanggan untuk mengenkripsi data pengguna selama pengiriman, seperti kueri dan respons pengguna.

Langkah selanjutnya