Ringkasan Kunci enkripsi yang dikelola pelanggan (Customer-Managed Encryption Key/CMEK)

Secara default, semua data dalam penyimpanan di Google Cloud, termasuk data di Spanner, dilindungi menggunakan enkripsi default yang dikelola Google. Google Cloud menangani dan mengelola enkripsi default ini untuk Anda tanpa perlu tindakan tambahan.

Jika memiliki persyaratan kepatuhan atau peraturan khusus yang terkait dengan kunci yang melindungi data, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk Spanner. Alih-alih mengelola kunci enkripsi yang melindungi data Anda, database Spanner Anda dilindungi oleh Google menggunakan kunci yang Anda kontrol dan kelola di Cloud Key Management Service (KMS). Kunci ini dapat berupa kunci simetris, kunci Cloud HSM, atau kunci Cloud External Key Manager.

CMEK tidak mendukung konfigurasi instance kustom.

Halaman ini menjelaskan CMEK untuk Spanner. Untuk mengetahui informasi selengkapnya tentang CMEK secara umum, termasuk kapan dan mengapa harus mengaktifkannya, lihat dokumentasi Cloud KMS.

Fitur

  • Kontrol akses data: administrator dapat merotasi, mengelola akses ke, dan menonaktifkan atau menghancurkan kunci yang digunakan untuk melindungi data dalam penyimpanan di Spanner.
  • Kemampuan audit: jika Anda mengaktifkan logging audit untuk Cloud KMS API di project Anda, semua tindakan pada kunci tersebut, termasuk yang dilakukan oleh Spanner, akan dicatat ke dalam log dan dapat dilihat di Cloud Logging. Kunci Cloud EKM mendukung Key Access Justification, yang menambahkan kolom justifikasi ke semua permintaan kunci. Dengan partner pengelolaan kunci eksternal tertentu, Anda dapat menyetujui atau menolak permintaan ini secara otomatis berdasarkan justifikasinya.
  • Performa: tidak ada perubahan pada performa Spanner atau perjanjian tingkat layanan.

Harga

Spanner menagih database yang mendukung CMEK sama seperti database lainnya; tidak ada biaya Spanner tambahan. Untuk informasi lebih lanjut, lihat Harga Spanner.

Anda akan ditagih oleh Cloud KMS untuk biaya kunci dan operasi kriptografi apa pun pada kunci tersebut (setiap kali Spanner menggunakan kunci untuk enkripsi/dekripsi). Kami memperkirakan biaya tersebut akan minimal berdasarkan perkiraan jumlah operasi kriptografi yang dihasilkan oleh Spanner. Untuk mengetahui informasi lebih lanjut, lihat harga Cloud KMS.

Apa yang dilindungi dengan CMEK

Dalam database yang mendukung CMEK, Spanner menggunakan kunci Cloud KMS untuk melindungi data dalam penyimpanan. Hal ini mencakup data dalam database yang disimpan di disk atau flash.

Beberapa pengecualian berlaku. Jenis data berikut dilindungi oleh enkripsi default Google dalam penyimpanan, bukan oleh kunci CMEK:

  • Subset tombol baris yang menandai batas rentang
  • Data proses debug termasuk dump inti dan log operasional
  • Data dalam pengiriman atau dalam memori
  • Metadata database

Di Spanner, ada tiga lapisan enkripsi. Data dalam penyimpanan dipecah menjadi potongan subfile untuk penyimpanan, dan setiap potongan dienkripsi pada tingkat penyimpanan dengan kunci enkripsi individual. Kunci yang digunakan untuk mengenkripsi data dalam suatu potongan disebut kunci enkripsi data (DEK). Karena tingginya volume kunci di Google, dan kebutuhan akan latensi rendah dan ketersediaan tinggi, kunci ini disimpan di dekat data yang dienkripsi. DEK dienkripsi dengan (atau "dibungkus" oleh) kunci enkripsi kunci (KEK). Terakhir, setiap KEK dienkripsi dengan kunci enkripsi yang dikelola pelanggan.

Saat Anda merotasi kunci CMEK, Spanner hanya akan mengenkripsi ulang KEK perantara dengan versi utama kunci CMEK terbaru. Setelah enkripsi ulang selesai, menonaktifkan atau menghapus kunci CMEK versi lama tidak akan menonaktifkan akses ke database. Anda juga dapat melihat versi kunci yang digunakan untuk melindungi database.

Dengan CMEK

Diagram yang menggambarkan enkripsi dengan kunci enkripsi yang dikelola pelanggan

Tanpa CMEK

Diagram yang mengilustrasikan enkripsi dengan kunci enkripsi yang dikelola Google

Aktifkan CMEK

Untuk menggunakan CMEK untuk database Spanner, Anda harus membuat database baru dan menentukan kunci Cloud KMS pada saat pembuatan database.

Spanner dapat mengakses kunci untuk Anda setelah Anda memberikan peran Encrypter/Decrypter Cloud KMS CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) ke akun layanan Spanner yang dikelola Google.

Untuk petunjuk mendetail, lihat Menggunakan CMEK.

API akses data Spanner, seperti yang digunakan untuk mengelola sesi dan menjalankan transaksi pada data, sama persis untuk kunci yang dikelola pelanggan dan yang dikelola Google. Aplikasi tidak perlu menentukan kunci atau konfigurasi enkripsi saat membaca atau menulis data. Semua enkripsi ditangani oleh layanan.

Kelola kunci

Operasi pengelolaan kunci dilakukan menggunakan Cloud KMS. Spanner tidak dapat mendeteksi atau bertindak atas perubahan kunci apa pun hingga perubahan tersebut diterapkan oleh Cloud KMS. Beberapa operasi, seperti menonaktifkan atau menghancurkan kunci, dapat memerlukan waktu hingga 3 jam untuk diterapkan; perubahan izin biasanya diterapkan jauh lebih cepat.

Setelah database dibuat, Spanner akan memanggil Cloud KMS sekitar setiap 5 menit untuk memastikan bahwa kuncinya masih valid.

Jika Spanner mendeteksi bahwa kunci Cloud KMS telah dinonaktifkan atau dihancurkan, operasi untuk membuat database Anda yang tidak dapat diakses akan segera dimulai. Setiap panggilan berikutnya ke database, termasuk sesi, baca, dan tulis, akan menampilkan error FAILED_PRECONDITION: KMS key required by the Spanner resource is not accessible.

Jika panggilan Spanner ke Cloud KMS mendeteksi bahwa kunci yang sebelumnya dinonaktifkan telah diaktifkan kembali, Cloud KMS akan otomatis memulihkan akses ke database Spanner.

Cara penanganan status kunci yang tidak tersedia

Dalam skenario yang jarang terjadi, seperti selama periode ketika Cloud KMS tidak tersedia, Spanner mungkin tidak dapat mengambil status kunci Anda dari Cloud KMS.

Jika database Spanner Anda dilindungi oleh kunci yang diaktifkan pada saat Spanner pertama kali tidak dapat berkomunikasi dengan Cloud KMS, Spanner akan terus mendukung operasi database sepenuhnya dengan upaya terbaik selama periode hingga 1 jam, untuk meminimalkan dampak insiden tersebut terhadap beban kerja Anda.

Setelah satu jam, jika Spanner masih tidak dapat terhubung dengan Cloud KMS, Spanner akan mulai menjadikan database tersebut offline sebagai tindakan perlindungan. Data dalam database Spanner Anda tetap tidak dapat diakses hingga database Anda dapat terhubung kembali dengan Cloud KMS dan Cloud KMS merespons bahwa kunci tersebut aktif.

Sebaliknya, jika database Spanner Anda dilindungi oleh kunci yang dinonaktifkan pada saat Spanner pertama kali tidak dapat berkomunikasi dengan Cloud KMS, database Anda tetap tidak dapat diakses hingga dapat terhubung kembali ke Cloud KMS dan Anda telah mengaktifkan kembali kunci tersebut.

Pertimbangan utama eksternal

Saat Anda menggunakan kunci Cloud EKM, Google tidak memiliki kontrol atas ketersediaan kunci yang dikelola secara eksternal di sistem partner pengelolaan kunci eksternal.

Jika kunci yang dikelola secara eksternal tidak tersedia, Spanner akan terus mendukung operasi database lengkap menggunakan versi kunci yang di-cache, hingga satu jam.

Setelah satu jam, jika Spanner masih tidak dapat terhubung dengan Cloud KMS, Spanner akan mulai menghapus database tersebut secara offline sebagai tindakan perlindungan. Panggilan ke database akan gagal dengan error FAILED_PRECONDITION: External key error: Could not find a key resource at the key URI.

Lihat dokumentasi Cloud External Key Manager untuk pertimbangan lainnya saat menggunakan kunci eksternal.

Pencadangan dan pemulihan

Cadangan Spanner, seperti database, dapat dilindungi dengan CMEK atau enkripsi yang dikelola Google. Secara default, cadangan menggunakan konfigurasi enkripsi yang sama dengan database-nya, tetapi Anda dapat mengganti perilaku ini dengan menentukan konfigurasi enkripsi yang berbeda saat membuat cadangan. Jika cadangan mendukung CMEK, cadangan akan dienkripsi menggunakan versi utama kunci KMS pada saat pembuatan cadangan. Setelah cadangan dibuat, kunci dan versi kuncinya tidak dapat diubah, meskipun kunci KMS dirotasi. Untuk mengetahui informasi selengkapnya, lihat Mencadangkan database.

Saat Anda memulihkan database dari cadangan, secara default, database yang dipulihkan akan menggunakan konfigurasi enkripsi yang sama dengan cadangan. Anda dapat mengganti perilaku ini dengan menentukan konfigurasi enkripsi lain saat memulihkan database. Untuk memulihkan cadangan berkemampuan CMEK, kunci dan versi kunci yang digunakan untuk mengenkripsi cadangan harus tersedia. Untuk informasi selengkapnya, lihat Memulihkan dari cadangan.

Logging

Anda dapat mengaudit permintaan yang dikirim Spanner ke Cloud KMS atas nama Anda di Cloud Logging, jika Anda telah mengaktifkan logging audit untuk Cloud KMS API dalam project Anda. Entri log Cloud KMS ini terlihat di Cloud Logging.

Mewajibkan atau membatasi CMEK dalam organisasi Anda

Anda dapat menetapkan kebijakan seluruh organisasi terkait penggunaan perlindungan CMEK di berbagai produk Google Cloud, termasuk Spanner. Dengan kebijakan ini, Anda dapat:

  • Wajibkan agar database Spanner baru yang dibuat oleh organisasi Anda menggunakan perlindungan CMEK.

  • Membatasi kunci Cloud KMS mana di organisasi Anda yang tersedia untuk perlindungan CMEK.

Untuk informasi selengkapnya, lihat kebijakan organisasi CMEK.