Enkripsi data

Secara default, data berikut disimpan dienkripsi dalam bidang runtime:

  • Meng-cache data
  • Data kunci kontrak
  • Data sistem pengelolaan kunci (KMS)
  • Data peta nilai kunci (KVM)

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 hybrid Apigee 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
Kontrak Khusus organisasi
KMS Khusus organisasi
KVM Organisasi atau lingkungan

Jika kebijakan KVM menentukan apiproxy atau policy (revisi proxy API), organisasi digunakan untuk mengenkripsi data. Ringkasan umum tentang penggunaan KVM di Apigee Edge, lihat Menangani peta nilai kunci.

Cache Khusus lingkungan

Tentang kunci enkripsi default

Secara default, Apigee Hybrid menyediakan sekumpulan kunci berenkode Base64 yang digunakan untuk mengenkripsi kontrak, 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.

Kunci default diterapkan ke semua komponen hybrid Apigee baru saat Anda membuatnya.

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:

  1. 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
        contractEncryptionKey: base64-encoded-key
    
      env:
        kvmEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
  2. 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 .
  3. Ganti kunci default dengan yang baru. Dalam contoh ini, semua kunci {i>default<i} ditetapkan 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 disebutkan dalam file penggantian. Saat Anda membuat komponen, kunci yang Anda tentukan untuk organisasi atau masing-masing lingkungan akan menggantikan setelan default.

  1. 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:
    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
  2. Buat kunci baru untuk setiap kunci yang ingin diganti. Masing-masing kunci harus berupa string berenkode Base64 yang panjangnya tepat 16, 24, atau 32 byte. Lihat juga Cara membuat kunci yang dienkode.
  3. Tentukan kunci yang ingin diganti. Dalam contoh ini, semua kunci {i>default<i} ditetapkan 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=="
    

Terapkan perubahan utama

Terapkan file penggantian ke cluster Anda seperti dengan perintah Helm berikut:
  • Jika Anda mengubah kunci kontrak atau kunci KVM untuk organisasi, perbarui organisasi:
    helm upgrade ORG_NAME apigee-org/ \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml
    
  • Jika Anda mengubah kunci Cache atau kunci KVM untuk lingkungan, perbarui lingkungannya:
    helm upgrade ENV_NAME apigee-env/ \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE.yaml
    
  • Jika Anda mengubah kunci KMS, perbarui 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 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 dengan panjang 32 byte, seperti yang dijelaskan di bawah ini:

Perintah di bawah ini akan menghasilkan karakter 32 karakter, String berenkode base64:

head -c 32 /dev/random | openssl base64