Halaman ini menjelaskan penggunaan CMEK dengan Apigee. Untuk mengetahui praktik terbaik, lihat Praktik terbaik untuk CMEK Apigee.
Ringkasan
Secara default, Google Cloud otomatis mengenkripsi data saat dalam penyimpanan menggunakan kunci enkripsi yang dimiliki dan dikelola oleh Google. Jika Anda memiliki persyaratan kepatuhan atau peraturan khusus yang terkait dengan kunci yang melindungi data, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).
Anda dapat membaca lebih lanjut tentang penggunaan CMEK untuk Apigee di Menggunakan CMEK dengan Apigee. Untuk mengetahui informasi selengkapnya tentang CMEK secara umum, termasuk waktu dan alasan mengaktifkannya, lihat Dokumentasi Cloud Key Management Service.
Penggunaan kunci enkripsi yang dikelola pelanggan (CMEK) tidak selalu memberikan keamanan yang lebih baik daripada mekanisme enkripsi default Google . Namun, CMEK memberi Anda kontrol atas lebih banyak aspek siklus proses dan pengelolaan kunci untuk memenuhi persyaratan keamanan dan kepatuhan .
Jika memerlukan kontrol lebih besar atas operasi kunci daripada yang diizinkan oleh Google-owned dan Google-managed , Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan. Kunci ini dibuat dan dikelola menggunakan Cloud Key Management Service (Cloud KMS), dan Anda menyimpan kunci tersebut sebagai kunci software, di dalam cluster HSM, atau secara eksternal.
Fitur pengelolaan kunci disediakan oleh layanan Cloud KMS.
Kasus penggunaan CMEK
Bagian ini menjelaskan kasus penggunaan umum untuk menggunakan CMEK dengan Apigee.
Rotasi kunci
Merotasi kunci secara otomatis atau manual. Perhatikan bahwa saat kunci dirotasi, data yang sebelumnya disimpan di Apigee tidak otomatis dienkripsi ulang dengan versi kunci baru, tetapi akan tetap dapat diakses selama versi kunci sebelumnya yang digunakan untuk mengenkripsi data tidak dinonaktifkan atau dihancurkan.
Tujuan utama rotasi kunci adalah membatasi eksposur data ke satu kunci, bukan untuk mengganti versi kunci lama sepenuhnya.
Apigee saat ini tidak mendukung enkripsi ulang saat rotasi kunci.
Khusus untuk Apigee, saat Anda merotasi kunci, hanya sejumlah kecil
data baru (misalnya revisi proxy baru) yang akan dienkripsi dengan
versi kunci utama yang baru. Sebagian besar data, seperti data analisis, disk runtime, dan
revisi proxy lama masih menggunakan versi kunci lama.
Jika ingin menghapus versi kunci sebelumnya sepenuhnya, Anda harus
membuat ulang organisasi apigee. Untuk kunci enkripsi runtime, jika Anda
ingin menghapus versi kunci sebelumnya sepenuhnya, Anda harus membuat ulang
instance runtime. Lihat
Praktik terbaik untuk CMEK Apigee untuk mengetahui detail selengkapnya.
Lihat juga: Merotasi kunci
Penghapusan dan penonaktifan kunci
Jika versi kunci dinonaktifkan, data Apigee yang dienkripsi dengan versi kunci tersebut tidak akan dapat diakses. Untuk memulihkan akses ke data, kunci dapat diaktifkan kembali.
Saat Anda menghapus atau menonaktifkan kunci CMEK, bahkan hanya untuk versi sebelumnya,
organisasi apigee Anda akan mulai tidak berfungsi dengan baik, bergantung pada versi kunci
yang digunakan untuk enkripsi. API tertentu akan berhenti berfungsi
segera karena API tersebut memerlukan kunci CMEK untuk mendekripsi data, sedangkan fungsi tertentu
hanya akan mulai tidak berfungsi dengan baik saat beberapa tindakan sistem dipicu, seperti Compute Engine
disk persisten yang akan dipasang ulang. Lihat
Penonaktifan kunci untuk mengetahui informasi selengkapnya.
Jika versi kunci dihancurkan, data Apigee apa pun yang dienkripsi dengan versi kunci tersebut akan menjadi tidak dapat dibaca dan tidak dapat dipulihkan. Ini adalah operasi permanen dan tidak dapat dibatalkan.
Lihat juga:
Pemulihan kunci
Jika Anda tidak sengaja menghapus atau menonaktifkan kunci atau versi kunci sebelumnya, Anda
harus mencoba memulihkannya sesegera mungkin.
Perhatikan bahwa CMEK adalah fitur yang ditujukan untuk kehilangan data jika kunci tidak tersedia.
Setelah Anda memulihkan
kunci, organisasi apigee Anda tidak dijamin akan pulih, dan Anda mungkin
mengalami kehilangan data. Lihat
Mengaktifkan kembali kunci untuk mengetahui detail selengkapnya.
Hubungi Layanan Pelanggan Google Cloud dan lihat langkah terbaik berikutnya.
Lihat juga: Menghancurkan dan memulihkan versi kunci
Mencabut akses kunci
Jika Anda mencabut akses agen layanan Apigee ke kunci menggunakan IAM, Apigee tidak akan dapat mengakses data bidang kontrol apa pun yang dienkripsi oleh versi kunci apa pun. Operasi Apigee API yang bergantung pada mendekripsi data akan gagal. Akses ke data dapat dipulihkan dengan memberikan kembali akses ke kunci dan operasi Apigee API yang mendekripsi data akan dipulihkan.
Lihat juga: Mengelola akses ke project, folder, dan organisasi
EKM
Apigee saat ini tidak mendukung Cloud External Key Manager (Cloud EKM). Jika Anda menggunakan Cloud EKM, ada cacat yang diketahui bahwa error Cloud EKM tidak akan dipropagasi dan ditampilkan dengan benar kepada Anda.
Pelacakan kunci
Apigee mendukung pelacakan penggunaan kunci. Tab Usage tracking kunci di Cloud Key Management Service mencantumkan resource Apigee yang dilindungi kunci, untuk jenis resource berikut:
-
apigee.googleapis.com/Organization, yang mencakup kunci enkripsi bidang kontrol, kunci enkripsi data konsumen API, dan kunci enkripsi database runtime. -
apigee.googleapis.com/Instance, yang mencakup kunci enkripsi disk.
Untuk mengetahui deskripsi kunci ini, lihat Tentang kunci enkripsi Apigee.
Kuota
Penggunaan kunci CMEK dapat menghasilkan penggunaan terhadap beberapa kuota Cloud KMS. Untuk mengetahui informasi terbaru tentang kuota Cloud KMS, lihat Kuota.
Mencabut kunci enkripsi
Jika yakin bahwa data Anda di Apigee Google Cloud terganggu, Anda dapat mencabut kunci enkripsi. Cabut CMEK runtime untuk membuat instance runtime Anda tidak berfungsi dan tidak dapat mengakses data gateway Anda. Cabut CMEK bidang kontrol untuk membuat Apigee tidak dapat melakukan pekerjaan analisis atau men-deploy proxy baru.
Menggunakan CMEK dengan Apigee
Kunci enkripsi Apigee digunakan untuk data runtime dan bidang kontrol serta dibuat selama proses penyediaan.
Data bidang kontrol Apigee dienkripsi menggunakan kunci enkripsi yang berbeda dengan data runtime, dan dapat disimpan di region yang berbeda. Sesuai dengan CMEK dokumentasi, enkripsi ini hanya berlaku untuk data dalam penyimpanan, yaitu data yang pada akhirnya disimpan di disk.
Data bidang kontrol Apigee mencakup konfigurasi proxy (paket), beberapa data konfigurasi lingkungan, dan data analisis. Data runtime Apigee mencakup data aplikasi seperti KVM, cache, dan secret klien, yang kemudian disimpan dalam database runtime.
Lihat Tentang kunci enkripsi Apigee untuk mengetahui deskripsi jenis kunci enkripsi.
Anda hanya dapat menambahkan kunci enkripsi pada saat pembuatan organisasi Apigee . Setelah CMEK ditetapkan, Anda tidak dapat mengubah ke CMEK lain setelah pembuatan organisasi.
Region CMEK bidang kontrol residensi data
Di bidang kontrol Apigee yang diregionalkan, Anda memilih dua kunci enkripsi untuk bidang kontrol. Hal ini karena beberapa komponen yang mendasari bidang kontrol Apigee selalu berada dalam satu region di dalam lokasi bidang kontrol. Lihat Region residensi data untuk mengetahui informasi selengkapnya.
| Detail | Kunci yang diperlukan |
|---|---|
|
Region bidang kontrol adalah tempat bidang kontrol berjalan. Bidang kontrol di Apigee adalah konsep abstrak yang terdiri dari beberapa komponen dasar yang membentuk bidang kontrol Apigee. Data bidang kontrol adalah konfigurasi proxy dan penyimpanan analisis storage. Data bidang kontrol lainnya (misalnya, pemrosesan analisis, portal) is berada di sub-region bidang kontrol. Semua komponen sub-region akan berada di region yang sama. |
Satu kunci untuk data bidang kontrol. Satu kunci untuk data sub-region bidang kontrol. |
Batasan kebijakan organisasi
Jika Anda memiliki batasan kebijakan organisasi CMEK di Google Cloud project, Apigee akan menerapkan kepatuhan terhadap batasan tersebut. Jika Anda menggunakan Apigee melalui Google Cloud UI, CLI, atau langsung melalui Apigee API, penerapan kebijakan CMEK akan dijamin. Saat menggunakan Google Cloud Apigee UI, batasan kebijakan organisasi CMEK divalidasi terlebih dahulu sehingga UI dapat memandu Anda memilih konfigurasi kepatuhan yang valid.
Batasan kebijakan organisasi CMEK dapat dibuat untuk mewajibkan:
- Kunci enkripsi yang dikelola pelanggan selalu digunakan
- Kunci enkripsi yang dikelola pelanggan hanya diizinkan dari project tertentu yang ditentukan dalam daftar yang diizinkan
Tidak semua fitur di Apigee saat ini mematuhi CMEK. Untuk memastikan bahwa project yang memerlukan CMEK tidak menggunakan fitur yang tidak dilindungi CMEK tanpa disadari, fitur tersebut akan dinonaktifkan untuk project yang dibatasi CMEK hingga mematuhi CMEK. Hanya penggunaan fitur baru yang akan dinonaktifkan (membuat resource baru atau mengaktifkan add-on). Fitur dan resource yang sudah digunakan akan tetap tersedia dan dapat diedit, tetapi tidak mematuhi CMEK. Fitur berikut ini akan dinonaktifkan:
-
Apigee Shadow API Discovery tidak tunduk pada kebijakan organisasi CMEK dan tidak mematuhi CMEK.
- Pembuatan organisasi evaluasi akan diblokir oleh CreateOrganization eval org API dan wizard penyediaan evaluasi.
-
Gemini Code Assist tidak tersedia.
- Pembuatan organisasi global akan diblokir oleh CreateOrganization eval org API dan wizard penyediaan evaluasi.
- Pembuatan instance Hybrid tidak tersedia untuk penerapan.
- Tombol Data Studio untuk membuka Data Studio dengan data dari Apigee akan dinonaktifkan jika CMEK diperlukan.
- Penerapan kepatuhan secara retrospektif untuk resource yang ada tidak tersedia. Anda harus menghapus dan membuat ulang resource jika memerlukan resource yang ada agar mematuhi CMEK.
Lihat Menggunakan batasan kebijakan organisasi di Apigee untuk mengetahui informasi selengkapnya tentang penggunaan batasan kebijakan organisasi dengan Apigee.
Cara membuat kunci enkripsi
Secara default, Google mengelola pembuatan kunci enkripsi selama proses penyediaan . Namun, Anda dapat membuatnya sendiri. Untuk mengetahui informasi selengkapnya, lihat Tentang kunci enkripsi Apigee.
Risiko dan mitigasi
Bagian ini menjelaskan potensi ancaman dan tindakan yang dapat Anda lakukan.
- Risiko:
- Kompromi kunci: Terjadi saat penyerang mendapatkan akses ke kunci enkripsi, yang berpotensi melalui kerentanan di KMS atau serangan terhadap administrator kunci.
- Penolakan layanan: Penyerang dapat mengganggu akses ke kunci enkripsi atau data dengan menyerang KMS atau sistem penyimpanan.
- Kehilangan kunci: Penghapusan atau kehilangan kunci yang tidak disengaja dapat menyebabkan kehilangan data atau tidak dapat diakses.
- Mitigasi:
- Menerapkan kontrol akses dan kebijakan pengelolaan kunci yang kuat.
- Memantau log dan aktivitas KMS untuk mendeteksi perilaku mencurigakan.
Pemecahan masalah
Tabel berikut menjelaskan beberapa kondisi error umum yang mungkin terjadi dengan data configstore yang dienkripsi CMEK, pesan error perkiraan yang ditampilkan oleh Apigee API, dan langkah-langkah pemecahan masalah yang direkomendasikan.
| Pesan/gejala error | Penyebab | Langkah-langkah yang harus dilakukan |
|---|---|---|
Constraint constraints/gcp.restrictNonCmekServices violated for
projects/my-project attempting to create or enable trial org. CMEK is
not supported for trial orgs. To use trial orgs, adjust the
gcp.restrictNonCmekServices constraint for this project.
|
Anda mencoba menyediakan organisasi uji coba yang memiliki batasan kebijakan organisasi constraint untuk project. |
CMEK tidak didukung untuk organisasi uji coba/evaluasi. Anda harus memperbarui
batasan kebijakan organisasi
constraints/gcp.restrictNonCmekServices untuk menghapus
Apigee dari daftar layanan yang ditolak agar dapat menyediakan
organisasi uji coba.
|
Constraint constraints/gcp.restrictCmekCryptoKeyProjects
violated for projects/my-project attempting to use
projects/my-project/locations/my-location/keyRings/kr-1/cryptoKeys/ck-1
key. Use a key from a project that is allowed by the
gcp.restrictCmekCryptoKeyProjects constraint.
|
Anda mencoba menyediakan organisasi yang memiliki batasan kebijakan organisasi untuk project dan menentukan KMS CryptoKey yang tidak ada dalam daftar yang diizinkan. |
Anda telah menetapkan constraints/gcp.restrictCmekCryptoKeyProjects
dalam kebijakan organisasi yang mengharuskan Anda memberikan kunci CMEK dari
project yang diizinkan yang Anda cantumkan. Anda harus memberikan CMEK
dari project yang diizinkan agar dapat membuat organisasi atau instance.
Atau, Anda dapat memperbarui batasan kebijakan organisasi
constraints/gcp.restrictCmekCryptoKeyProjects untuk mengizinkan
kunci dari project tertentu yang Anda inginkan. Google Cloud
|
Apigee does not have permission to access key "..."
|
Pengguna telah mencabut akses Apigee ke kunci KMS yang diberikan, yaitu
dengan menghapus peran
roles/cloudkms.cryptoKeyEncrypterDecrypter.
|
Pengguna harus memeriksa peran yang dikonfigurasi pada kunci KMS dan memastikan bahwa agen layanan Apigee memiliki izin yang diperlukan. |
Unable to encrypt/decrypt data. Cloud KMS Error: "..." is not
enabled, current state is: DESTROYED.
|
Pengguna telah menonaktifkan atau menghapus versi kunci yang digunakan untuk mengenkripsi/mendekripsi bagian data yang diminta. | Pengguna harus mengaktifkan kembali versi kunci jika memungkinkan. Jika kunci atau versi kunci telah dihancurkan, data tidak dapat dipulihkan (berdasarkan desain). |
No new Analytics data for US/EU users
|
Salah satu kemungkinan penyebab masalah ini adalah pengguna mencabut/menonaktifkan/menghapus kunci region tunggal. | Pengguna harus mengaktifkan kembali/memulihkan akses kunci region tunggal. |
Control plane key "..." in region "..." is not valid for this
control plane instance. Supported region(s) are "…".
|
Pengguna telah memberikan kunci bidang kontrol region tunggal di region yang tidak valid atau tidak didukung untuk region atau multi-region yang dilayani oleh instance bidang kontrol. | Pengguna harus memberikan kunci di salah satu region yang didukung atau memilih untuk menggunakan instance bidang kontrol yang berbeda. |
Multi-region control plane key is not valid for this control
plane instance. Specify only the "apiConsumerDataEncryptionKeyName"
field.
|
Pengguna telah memberikan kunci bidang kontrol multi-region di bidang kontrol yang hanya ada di satu region (yaitu bukan bidang kontrol multi-regional). | Pengguna harus menghapus kolom kunci multi-regional atau memilih untuk menggunakan instance bidang kontrol multi-regional. |
Multi-region control plane key is not valid for this control
plane instance. Specify a multi-region key with region "..."
|
Pengguna telah memberikan kunci bidang kontrol multi-region ke instance bidang kontrol multi-regional yang salah (misalnya, kunci "us" ke instance bidang kontrol "eu") | Pengguna harus menggunakan kunci multi-regional di multi-region yang benar atau memilih untuk menggunakan instance bidang kontrol multi-regional yang berbeda. |