Secara default, data berikut disimpan secara terenkripsi di bidang runtime hybrid:
- Meng-cache data
- Data kunci kontrak
- Data sistem pengelolaan kunci (KMS)
- Data peta nilai kunci (KVM)
Enkripsi data tidak memerlukan konfigurasi khusus dari Anda. Namun, jika karena alasan tertentu Anda ingin menggunakan kunci enkripsi Anda sendiri (menggantikan kunci default), Anda dapat melakukannya, seperti yang dijelaskan dalam topik ini.
Cakupan kunci enkripsi
Kunci enkripsi hybrid Apigee memiliki cakupan. Misalnya, kunci KMS memiliki cakupan organisasi. Artinya, kunci tersebut digunakan untuk mengenkripsi data KMS untuk seluruh organisasi. Tabel berikut mencantumkan cakupan untuk setiap jenis kunci:
Kunci enkripsi | Cakupan |
---|---|
Kontrak | Khusus organisasi |
KMS | Khusus organisasi |
KVM |
Organisasi atau lingkungan
Jika kebijakan KVM
menetapkan cakupan |
Cache | Khusus lingkungan |
Tentang kunci enkripsi default
Secara default, Apigee Hybrid menyediakan sekumpulan kunci berenkode Base64 yang digunakan untuk mengenkripsi data kontrak, KVM, KMS, dan data cache. Installer hybrid Apigee menyimpan kunci di bidang runtime sebagai Kubernetes Secrets, dan menggunakannya untuk mengenkripsi data Anda dengan enkripsi standar AES-128. Kunci berada di bawah kendali Anda; bidang pengelolaan hybrid tidak pernah menyadari hal tersebut kapan pun.
Kunci default diterapkan ke semua komponen hibrid Apigee baru saat Anda membuatnya.
Mengubah kunci enkripsi default
Meskipun tidak diwajibkan, Anda dapat mengubah kunci enkripsi default jika ingin. Untuk mengganti satu atau beberapa kunci default, ikuti langkah-langkah berikut:
- Salin stanza berikut ke file penggantian Anda.
Konfigurasi ini memungkinkan Anda mengubah kunci enkripsi KMS dan KVM untuk tingkat organisasi, serta kunci enkripsi cache dan KVM untuk tingkat lingkungan:
defaults: org: kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key env: kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- Buat kunci baru untuk setiap kunci yang ingin Anda ganti. Setiap kunci harus berupa string berenkode Base64 yang panjangnya tepat 16, 24, atau 32 byte. Lihat juga Cara membuat kunci yang dienkode.
- Ganti kunci default dengan yang baru. Dalam contoh ini, semua kunci default diganti dengan kunci:
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
Mengganti kunci default
Anda dapat mengganti kunci untuk organisasi atau lingkungan tertentu yang diberi nama di file penggantian. Saat Anda membuat komponen, kunci yang Anda tentukan untuk organisasi atau lingkungan individual akan menggantikan default.
- Salin stanza berikut ke file penggantian Anda.
Konfigurasi ini memungkinkan Anda mengubah kunci enkripsi KMS dan KVM untuk tingkat organisasi, serta kunci enkripsi cache dan KVM untuk tingkat lingkungan:
org:YOUR_ORG_NAME kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key envs - name: ENV_NAME kvmEncryptionKey: base64-encoded-key kmsEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key - name: 2ND_ENV_NAME kvmEncryptionKey: base64-encoded-key kmsEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- Buat kunci baru untuk setiap kunci yang ingin Anda ganti. Setiap kunci harus berupa string berenkode Base64 yang panjangnya tepat 16, 24, atau 32 byte. Lihat juga Cara membuat kunci yang dienkode.
- Tentukan kunci yang ingin diganti. Dalam contoh ini, semua kunci default diganti dengan kunci:
org:hybrid-org kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" envs: - name: prod kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" cacheEncryptionKey: "QjEyAvC1Njc4OTAxMjM0NQ==" envs: - name: test kvmEncryptionKey: "A1b2C3d4E5f6G7h8I9j10K==" kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" cacheEncryptionKey: "B1c2D3e4F5f6H7i8J9k10L=="
Menerapkan perubahan penting
Terapkan file penggantian ke cluster Anda seperti pada perintah Helm berikut:- Jika Anda mengubah kunci kontrak atau kunci KVM untuk organisasi, perbarui organisasi tersebut:
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
- Jika Anda mengubah kunci Cache atau kunci KVM untuk lingkungan, perbarui lingkungan:
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f OVERRIDES_FILE.yaml
- Jika Anda mengubah kunci KMS, update organisasi dan lingkungan:
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --set env=ENV_NAME \ --atomic \ -f OVERRIDES_FILE.yaml
Catatan tentang kompatibilitas mundur
Jika Anda menghapus kunci enkripsi di file penggantian saat pertama kali menginstal Apigee Hybrid, Anda akan secara efektif menonaktifkan enkripsi dan nilai akan disimpan tanpa dienkripsi. Jika pada lain waktu Anda mengaktifkan enkripsi dengan menyediakan kunci, data yang keluar akan tetap tidak dienkripsi. Namun, data apa pun yang ditambahkan di masa mendatang akan dienkripsi. Sistem akan terus bekerja secara normal dengan data yang tidak dienkripsi dan data terenkripsi baru.
Perhatikan juga bahwa Anda tidak dapat mengubah kunci enkripsi setelah data runtime dienkripsi.
Cara membuat kunci yang dienkode
Kunci yang dienkode Base-64 yang diformat dengan benar diperlukan untuk enkripsi KVM, KMS, dan cache. Kunci yang digunakan untuk tujuan ini harus dienkode menggunakan Base-64 dari string dengan panjang 16, 24, atau 32 byte, seperti yang dijelaskan di bawah ini:
Contoh perintah berikut menghasilkan string 32 karakter yang sesuai, dibuat secara acak, dan berenkode Base64:
head -c 32 /dev/random | openssl base64