Halaman ini menjelaskan cara mengenkripsi konten yang disimpan di plugin Service Extensions dengan kunci enkripsi yang dikelola pelanggan (CMEK).
Ringkasan
Secara default, Ekstensi Layanan mengenkripsi konten pelanggan dalam penyimpanan. Ekstensi Layanan 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 Ekstensi Layanan. 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. Bukan 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 Ekstensi Layanan Anda akan serupa dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).
Semua operasi kriptografi ditagih ke Google Cloud project yang memiliki kunci, terlepas dari jenis kunci. Untuk mengetahui informasi harga, lihat Harga Cloud KMS.
Membuat kunci dan memberikan izin
Petunjuk berikut menjelaskan cara membuat kunci untuk plugin dan memberikan izin untuk mengenkripsi dan mendekripsi data plugin dengan kunci tersebut.
Di project Google Cloud tempat Anda ingin mengelola kunci, lakukan tindakan berikut:
Untuk dapat membuat kunci, aktifkan Cloud Key Management Service API.
Buat key ring dan kunci menggunakan salah satu opsi berikut:
Lokasi kunci Cloud KMS harus cocok dengan lokasi plugin yang ingin Anda enkripsi.
Akun layanan Ekstensi Layanan harus ada di project Ekstensi Layanan Anda. Nama akun layanan adalah
service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com, denganPROJECT_NUMBERadalah nomor project dari project Google Cloud tempat Ekstensi Layanan berjalan.Akun layanan dibuat secara otomatis saat Anda membuat plugin pertama di project Ekstensi Layanan. Jika Anda belum membuat plugin di project, buat akun layanan dengan menjalankan perintah berikut:
gcloud beta services identity create \ --service=networkactions.googleapis.com \ --project=PROJECTGanti PROJECT dengan ID project tempat Ekstensi Layanan berjalan.
Berikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) ke akun layanan Ekstensi Layanan pada kunci yang Anda buat.Konsol
Di konsol Google Cloud , buka halaman Key management.
Pilih kunci yang Anda buat.
Memberikan akses ke akun layanan Ekstensi Layanan:
- Pilih Tampilkan panel info.
- Klik Tambahkan anggota.
- Tambahkan akun layanan Ekstensi Layanan. Akun
layanan adalah
service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com. - Di Pilih peran, pilih Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter
- Klik Simpan.
Ulangi langkah sebelumnya untuk memberikan akses ke akun pembuat plugin.
Kembali ke halaman Key management dan pilih kunci lagi.
Pilih Tampilkan panel info. Anda akan melihat peran di kolom Peran/Anggota.
gcloud
Berikan akses ke akun layanan Ekstensi Layanan dengan menjalankan perintah
gcloud kms keys add-iam-policy-binding:gcloud kms keys add-iam-policy-binding [--project=PROJECT] KEY_NAME \ --location LOCATION --keyring=KEYRING_NAME \ --member=serviceAccount:service-PROJECT-NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypterGanti kode berikut:
PROJECT: ID project yang berisi kunciKEY_NAME: adalah nama kunciLOCATION: lokasi kunciKEYRING_NAME: nama key ringPROJECT-NUMBER: nomor project dari Google Cloud project
Ulangi langkah sebelumnya dengan
memberyang ditetapkan ke akun pembuat plugin.
Saat membuat plugin atau mengupdatenya, tentukan kunci CMEK. Kunci ini menyediakan enkripsi untuk image plugin dan data konfigurasi. Data plugin lainnya dilindungi oleh enkripsi default Google.
Enkripsi ulang otomatis
Saat versi utama kunci KMS berubah (baik karena perubahan pengguna manual atau karena rotasi otomatis), data plugin yang dilindungi oleh kunci tersebut akan otomatis dienkripsi ulang dengan versi kunci yang baru.
Pelacakan kunci
Anda dapat menggunakan pelacakan kunci untuk mencantumkan resource plugin yang dilindungi kunci. Untuk mengetahui informasi selengkapnya, lihat Melihat penggunaan kunci.
Kuota Cloud Key Management Service dan Ekstensi Layanan
Saat Anda menggunakan kunci CMEK di Ekstensi Layanan, seperti dalam operasi berikut, project Anda dapat menggunakan kuota permintaan kriptografi Cloud KMS:
- Membuat atau mengupdate plugin yang dilindungi CMEK
- Menambahkan versi baru atau mengubah versi utama plugin yang dilindungi CMEK
- Mencantumkan versi plugin yang dilindungi CMEK yang memiliki setelan kolom
plugin_config_data - Melampirkan plugin ke ekstensi
Plugin terlampir juga menimbulkan operasi dekripsi dari waktu ke waktu.
Jika Anda menggunakan kunci hardware (Cloud HSM) atau eksternal (Cloud EKM), operasi enkripsi dan dekripsi menggunakan kunci CMEK akan memengaruhi kuota Cloud KMS.
Menghapus akses ke plugin yang dienkripsi CMEK
Ada beberapa cara untuk menghapus akses ke plugin yang dienkripsi CMEK:
- Cabut peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS dari akun layanan Ekstensi Layanan menggunakan Google Cloud konsol atau gcloud CLI. Perubahan pada izin diterapkan dalam hitungan detik, tetapi mungkin diperlukan waktu puluhan menit hingga semua replika penayangan plugin berhenti menayangkan traffic setelah kuncinya dicabut.
- Nonaktifkan kunci enkripsi yang dikelola pelanggan untuk sementara.
- Hancurkan secara permanen kunci CMEK.
Sebaiknya batalkan izin dari akun layanan Service Extensions sebelum menonaktifkan atau menghancurkan kunci.
Implikasi penghapusan akses
Data yang dilindungi CMEK terdiri dari image yang didownload dari Artifact Registry serta
data konfigurasi plugin yang diberikan secara langsung (melalui kolom
plugin_config_data).
Setelah Anda menonaktifkan atau menghapus kunci enkripsi untuk plugin, semua data plugin yang dilindungi oleh CMEK akan menjadi tidak dapat diakses dalam beberapa menit. Mungkin perlu waktu puluhan menit hingga semua replika penayangan plugin berhenti menayangkan traffic setelah kuncinya dicabut.
Metadata plugin, seperti nama plugin, deskripsi, label, atau konfigurasi logging, tetap dapat diakses.
Akibatnya, menghapus akses ke kunci yang melindungi plugin aktif (yaitu, plugin yang terlampir ke ekstensi), menyebabkan plugin tidak dapat menayangkan traffic. Semua permintaan ke plugin gagal.
Jika pemanggilan plugin gagal, perilaku ekstensi bergantung pada kolom fail_open:
- Jika kolom disetel ke
true, permintaan akan dilanjutkan ke layanan target, tanpa memberikan indikasi bahwa pemanggilan plugin telah gagal. - Jika kolom disetel ke
false, permintaan tidak akan mencapai layanan target.
Batasan
Perlindungan CMEK yang ditetapkan pada plugin terbatas pada Ekstensi Layanan.
Untuk melindungi resource plugin di produk Google lainnya, aktifkan CMEK melalui produk tersebut. Untuk image plugin yang diupload ke Artifact Registry, siapkan CMEK untuk Artifact Registry. Untuk melindungi log yang dihasilkan oleh plugin Anda, konfigurasi CMEK untuk Cloud Logging.
Anda tidak dapat mengubah mode enkripsi (dikelola Google atau CMEK) plugin. Namun, Anda dapat memperbarui plugin untuk menggunakan kunci KMS yang berbeda.
Hanya plugin regional yang didukung. Selain itu, plugin hanya dapat dienkripsi oleh kunci di region yang sama dengan plugin.
Apa langkah selanjutnya?
- Pelajari lebih lanjut cara membuat plugin.
- Pelajari CMEK lebih lanjut.
- Pelajari lebih lanjut enkripsi dalam penyimpanan default.