Ringkasan kunci enkripsi yang dikelola pelanggan (CMEK)

Halaman ini menjelaskan kunci enkripsi yang dikelola pelanggan (CMEK) untuk Spanner. Untuk mengetahui informasi selengkapnya tentang CMEK secara umum, termasuk waktu dan alasan mengaktifkannya, lihat Dokumentasi Cloud KMS.

Secara default, Spanner mengenkripsi konten pelanggan dalam penyimpanan. Spanner 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 terintegrasi CMEK, termasuk Spanner. Dengan menggunakan kunci Cloud KMS, Anda dapat mengontrol tingkat perlindungan, lokasi, jadwal rotasi, izin penggunaan dan akses, serta batas kriptografisnya. Dengan Cloud KMS, Anda juga dapat melacak penggunaan kunci, 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 Spanner Anda mirip dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi Anda, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Untuk mempelajari cara menggunakan CMEK yang dibuat secara manual untuk melindungi resource Spanner Anda, lihat Mengamankan database dengan CMEK.

CMEK dengan Kunci Otomatis Cloud KMS

Anda dapat membuat CMEK secara manual untuk melindungi resource Spanner atau menggunakan Cloud KMS Autokey. Dengan Autokey, key ring dan kunci dibuat sesuai permintaan sebagai bagian dari pembuatan resource di Spanner. Agen layanan yang menggunakan kunci untuk operasi enkripsi dan dekripsi akan dibuat jika belum ada dan diberi peran Identity and Access Management (IAM) yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Ringkasan kunci otomatis.

Spanner hanya kompatibel dengan Cloud KMS Autokey saat membuat resource menggunakan Terraform atau REST API. Anda tidak dapat menggunakan Kunci Otomatis Cloud KMS untuk membuat beberapa kunci Cloud KMS regional (satu region) untuk database Spanner.

Untuk menggunakan CMEK yang dibuat oleh Autokey Cloud KMS guna melindungi resource Spanner, gunakan langkah-langkah yang disediakan untuk Secret Manager di Menggunakan Autokey dengan resource Secret Manager sebagai contoh.

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, semua tindakan pada kunci, 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 enkripsi eksternal tertentu, Anda dapat otomatis menyetujui atau menolak permintaan ini, berdasarkan justifikasi.
  • Performa: tidak ada perubahan pada performa Spanner atau perjanjian tingkat layanan dengan menggunakan CMEK.
  • Dukungan beberapa kunci regional: Anda dapat membuat beberapa kunci Cloud KMS regional (satu region) untuk melindungi database dalam konfigurasi instance kustom, dual-region, atau multi-region Spanner.

Harga

Spanner menagih database yang mendukung CMEK seperti database lainnya. Tidak ada biaya Spanner tambahan untuk mengaktifkanCMEK. Untuk mengetahui informasi selengkapnya, lihat Harga Spanner.

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

Yang dilindungi dengan CMEK

Dalam database yang mendukung CMEK, Spanner menggunakan kunci Cloud KMS Anda 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 kunci baris yang menandai batas rentang
  • Data proses debug termasuk core dump dan log operasional
  • Data dalam pengiriman atau dalam memori
  • Metadata database

Di Spanner, ada tiga lapisan enkripsi. Data dalam penyimpanan dibagi menjadi potongan-potongan subfile untuk disimpan, dan setiap potongan dienkripsi pada tingkat penyimpanan dengan kunci enkripsinya masing-masing. 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 dienkripsinya. DEK dienkripsi dengan (atau digabungkan oleh) kunci enkripsi kunci (KEK). Terakhir, setiap KEK dienkripsi dengan CMEK Anda.

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

Dengan CMEK

Diagram yang mengilustrasikan enkripsi dengan kunci enkripsi yang dikelola pelanggan

Tanpa CMEK

Diagram yang mengilustrasikan enkripsi dengan kunci milik dan dikelola Google

Mengaktifkan 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 atas nama Anda setelah Anda memberikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) ke akun layanan Spanner yang dikelola Google. Untuk petunjuk mendetail, lihat Mengamankan database dengan CMEK.

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

Mengelola kunci

Operasi pengelolaan kunci dilakukan menggunakan Cloud KMS. Spanner tidak dapat mendeteksi atau menindaklanjuti perubahan kunci apa pun hingga di-propagasi oleh Cloud KMS. Beberapa operasi, seperti menonaktifkan atau menghancurkan kunci, dapat memerlukan waktu hingga tiga jam untuk diterapkan; perubahan pada izin biasanya diterapkan jauh lebih cepat.

Setelah database dibuat, Spanner akan memanggil Cloud KMS sekitar setiap lima menit untuk memastikan kunci masih valid.

Jika Spanner mendeteksi bahwa kunci Cloud KMS Anda telah dinonaktifkan atau dihancurkan, operasi untuk membuat database Anda tidak dapat diakses akan segera dimulai. Setiap panggilan berikutnya ke database, termasuk sesi, operasi baca, dan operasi 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.

Selain itu, jika database dilindungi oleh beberapa kunci regional dan semua kunci dinonaktifkan atau dihancurkan, Spanner akan segera mulai membuat database Anda tidak dapat diakses. Jika Spanner mendeteksi bahwa hanya sebagian kunci database yang dinonaktifkan atau dihancurkan, Spanner akan menonaktifkan database selama jangka waktu dalam 12 jam. Menonaktifkan atau menghancurkan hanya sebagian kunci di database yang mendukung CMEK sangat tidak dianjurkan dan dapat menyebabkan perilaku yang tidak pasti. Untuk mencegah hal ini terjadi, Anda dapat menggunakan metrik Kunci CMEK Spanner (instance/replica/cmek/total_keys) untuk memicu pemberitahuan jika sebagian kunci dinonaktifkan atau dihancurkan. Untuk mengetahui informasi selengkapnya, lihat Membuat pemberitahuan untuk menonaktifkan sebagian CMEK.

Membuat pemberitahuan untuk menonaktifkan sebagian CMEK

Anda dapat menggunakan metrik Kunci CMEK Spanner (/instance/replica/cmek/total_keys) untuk memicu pemberitahuan jika sebagian CMEK dinonaktifkan atau dihancurkan. Untuk membuat kebijakan pemberitahuan ini, luaskan langkah dan setelan berikut:

Setelan untuk kebijakan pemberitahuan CMEK.

Kolom New condition

Nilai
Resource and Metric Di menu Resources, pilih Spanner Instance.
Di menu Metric categories, pilih Instance.
Di menu Metrics, pilih CMEK Keys.

(metric.type adalah spanner.googleapis.com/instance/replica/cmek/total_keys).
Filter instance_id = INSTANCE_ID
is_key_revoked = TRUE
Di seluruh deret waktu
Mengelompokkan deret waktu menurut
database
Di seluruh deret waktu
Agregasi deret waktu
sum
Rolling window 10 m
Rolling window function mean
Kolom Configure alert trigger

Nilai
Condition type Threshold
Alert trigger Any time series violates
Threshold position Above threshold
Nilai Minimum 0
Retest window 1 hr
Kolom New condition

Nilai
Resource and Metric Di menu Resources, pilih Spanner Instance.
Di menu Metric categories, pilih Instance.
Di menu Metrics, pilih CMEK Keys.

(metric.type adalah spanner.googleapis.com/instance/replica/cmek/total_keys).
Filter instance_id = INSTANCE_ID
is_key_revoked = FALSE
Di seluruh deret waktu
Mengelompokkan deret waktu menurut
database
Di seluruh deret waktu
Agregasi deret waktu
sum
Rolling window 10 m
Rolling window function mean
Kolom Configure alert trigger

Nilai
Condition type Threshold
Alert trigger Any time series violates
Threshold position Above threshold
Nilai Minimum 0
Retest window 1 hr
Kolom Configure alert trigger

Nilai
Multi-condition trigger All conditions are met

Setelah Anda membuat pemberitahuan, jika Spanner mendeteksi bahwa sebagian dariCMEK telah dinonaktifkan, item ringkasan insiden akan muncul di bawah tabel Insiden di halaman Detail kebijakan pemberitahuan. Anda juga dapat menyiapkan saluran notifikasi opsional. Untuk informasi selengkapnya, lihat Membuat dan mengelola saluran notifikasi.

Cara penanganan status kunci yang tidak tersedia

Dalam skenario yang jarang terjadi, seperti selama periode saat 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 lengkap berdasarkan upaya terbaik selama periode hingga satu 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 mengalihkan database ke offline sebagai tindakan pelindung. Data di database Spanner Anda tetap tidak dapat diakses hingga database 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 Anda.

Jika Anda menggunakan beberapa kunci regional untuk melindungi database Spanner, hanya replika yang dilindungi oleh kunci yang berada di Cloud KMS regional yang tidak tersedia yang terpengaruh oleh ketidaktersediaan tersebut.

Pertimbangan kunci 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 mengalihkan database ke 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.

Jika Anda menggunakan beberapa kunci Cloud EKM untuk melindungi database Spanner, hanya replika yang dilindungi oleh kunci yang tidak tersedia yang akan terpengaruh oleh ketidaktersediaan tersebut.

Untuk pertimbangan lainnya saat menggunakan kunci eksternal, lihat dokumentasi Cloud External Key Manager.

Pencadangan dan pemulihan

Anda dapat menggunakan CMEK atau kunci milik dan dikelola Google untuk melindungi pencadangan Spanner. 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 diaktifkan dengan 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 restore database dari cadangan, secara default, database yang dipulihkan menggunakan konfigurasi enkripsi yang sama dengan cadangan. Anda dapat mengganti perilaku ini dengan menentukan konfigurasi enkripsi yang berbeda saat memulihkan database. Untuk memulihkan cadangan yang mendukung CMEK, kunci dan versi kunci yang digunakan untuk mengenkripsi cadangan harus tersedia. Untuk informasi selengkapnya, lihat Memulihkan dari cadangan.

Anda dapat melakukan operasi pencadangan seperti membuat, menyalin, dan memulihkan pada database yang dienkripsi dengan beberapa kunci regional.

Semua pencadangan yang dibuat oleh jadwal pencadangan dapat dilindungi oleh CMEK atau kunci milik dan dikelola Google. Namun, jadwal cadangan tambahan hanya dapat dienkripsi menggunakan kunci milik dan dikelola Google.

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 di project Anda. Entri log Cloud KMS ini dapat dilihat 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:

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

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

Untuk mengetahui informasi selengkapnya, lihat kebijakan organisasi CMEK.

Langkah selanjutnya