Secara default, data berikut disimpan dienkripsi dalam bidang runtime:
- Data sistem pengelolaan kunci (KMS)
- Data peta nilai kunci (KVM)
- Meng-cache data
Enkripsi data tidak memerlukan konfigurasi khusus di pihak Anda. Namun, jika karena beberapa alasan Anda ingin menggunakan kunci enkripsi Anda sendiri (menggantikan yang {i>default<i}) Anda dapat melakukannya, seperti yang dijelaskan dalam topik ini.
Cakupan kunci enkripsi
Kunci enkripsi untuk KMS, KVM, dan cache memiliki cakupan. Misalnya, kunci KMS memiliki organisasi ruang lingkup proyek. Artinya, kunci tersebut digunakan untuk mengenkripsi data KMS untuk seluruh organisasi. Tabel berikut mencantumkan cakupan untuk setiap jenis kunci:
Kunci enkripsi | Cakupan |
---|---|
KMS | Khusus organisasi |
KVM |
Organisasi atau lingkungan
Jika kebijakan KVM
menentukan |
Cache | Khusus lingkungan |
Tentang kunci enkripsi default
Secara default, Apigee Hybrid menyediakan sekumpulan kunci berenkode Base64 yang digunakan untuk mengenkripsi KVM, KMS, dan data cache. Penginstal hybrid Apigee menyimpan kunci di bidang runtime sebagai Kubernetes Rahasia, dan menggunakannya untuk mengenkripsi data Anda dengan enkripsi standar AES-128. Kunci berada di bawah kendali Anda; di bidang manajemen hybrid tidak menyadarinya.
Mengubah kunci enkripsi default
Meskipun tidak wajib, Anda dapat mengubah kunci enkripsi default jika menginginkannya. Untuk mengganti satu atau beberapa kunci default, ikuti langkah-langkah berikut:
- Salin stanza berikut ke file penggantian.
Konfigurasi ini memungkinkan Anda
mengubah kunci enkripsi KMS dan KVM
untuk tingkat organisasi serta KVM dan kunci enkripsi cache untuk tingkat lingkungan:
defaults: org: kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key env: kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- Buat kunci baru untuk setiap kunci yang ingin Anda ganti. Masing-masing kunci harus berupa string berenkode Base64 yang panjangnya tepat 16, 24, atau 32 byte. Lihat juga Cara membuat .
- Ganti kunci default dengan yang baru. Dalam contoh ini, semua kunci {i>default<i} ditetapkan
diganti dengan kunci:
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
- Terapkan file penggantian ke cluster Anda sebagai berikut:
- Jika Anda mengubah kunci KVM atau Cache, hanya perbarui lingkungannya:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name
- Jika Anda mengubah kunci KMS, perbarui organisasi dan lingkungan:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name --org org_name
- Jika Anda mengubah kunci KVM atau Cache, hanya perbarui lingkungannya:
Catatan tentang kompatibilitas mundur
Jika Anda menghapus kunci enkripsi dalam file penggantian, Anda menginstal Apigee Hybrid, menonaktifkan enkripsi secara efektif, dan nilai akan disimpan tanpa enkripsi. Jika nanti berapa kali Anda mengaktifkan enkripsi dengan menyediakan kunci, keluar dari data tetap tidak terenkripsi; Namun, setiap data mendatang yang ditambahkan akan dienkripsi. Sistem akan terus bekerja normal dengan data yang tidak terenkripsi dan enkripsi layanan otomatis dan data skalabel.
Perhatikan juga bahwa Anda tidak dapat mengubah kunci enkripsi kemudian setelah data runtime dienkripsi.
Cara membuat kunci yang dienkode
Diperlukan kunci berenkode Base-64 yang diformat dengan benar untuk KVM, KMS, dan enkripsi cache. Kunci yang digunakan untuk tujuan ini harus dienkode ke Base-64 dari string yang bernilai 16, 24, atau Panjangnya 32 byte, seperti yang dijelaskan dalam langkah-langkah berikut:
Contoh perintah berikut menghasilkan teks 32 karakter yang cocok, String berenkode base64 yang tidak menyertakan karakter yang tidak dapat dicetak:
LC_ALL=C tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)\\-+= < /dev/urandom | head -c 32 | openssl base64 PSFvX0BPc1Z2NVklcXdxcF8xR0N4MV4temFveStITU4=
atau
LC_ALL=C tr -dc "[:print:]" < /dev/urandom | head -c 32 | openssl base64