根據預設,下列資料會以加密的方式儲存在混合式執行階段平面中:
- 金鑰管理系統 (KMS) 資料
- 鍵/值對應 (KVM) 資料
- 快取資料
您不需要特別設定,不過,如果您基於某些原因想要使用自己的加密金鑰 (取代預設金鑰),可以按照本主題的說明進行操作。
加密金鑰範圍
KMS、KVM 和快取的加密金鑰都有範圍。舉例來說,KMS 金鑰有機構範圍。也就是說,這組金鑰會用來加密整個機構的 KMS 資料。下表列出每個鍵類型的範圍:
加密金鑰 | 範圍 |
---|---|
KMS | 僅限機構 |
KVM |
機構或環境 如果 KVM 政策指定 |
快取 | 僅限環境 |
關於預設加密金鑰
根據預設,Apigee hybrid 會提供一組 Base64 編碼金鑰,用於加密 KVM、KMS 和快取資料。Apigee 混合式安裝程式會將金鑰儲存在執行階段平面中,做為 Kubernetes 密鑰,並使用這些金鑰以 AES-128 標準加密技術加密您的資料。您可以自行控管金鑰,混合式管理層不會在任何時間點察覺金鑰。
變更預設加密金鑰
雖然這不是必要步驟,但您可以視需要變更任何預設加密金鑰。如要取代一或多個預設鍵,請按照下列步驟操作:
- 將下列節錄複製到覆寫檔案中。這項設定可讓您變更機構層級的 KMS 和 KVM 加密金鑰,以及環境層級的 KVM 和快取加密金鑰:
defaults: org: kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key env: kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- 針對每個要取代的金鑰產生新金鑰。每個金鑰都必須是 Base64 編碼字串,長度必須是 16、24 或 32 位元組。另請參閱「如何建立已編碼的金鑰」。
- 將預設鍵取代為新鍵。在這個範例中,所有預設鍵都會替換為鍵:
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
- 將覆寫檔案套用至叢集。
回溯相容性注意事項
如果您在第一次安裝 Apigee hybrid 時移除覆寫檔案中的加密金鑰,就會有效停用加密功能,且值會以未加密的方式儲存。如果您稍後透過提供金鑰啟用加密功能,現有資料仍會保持未加密狀態;不過,日後新增的任何資料都會加密。系統將繼續正常處理未加密的資料和新加密的資料。
另請注意,一旦執行階段資料經過加密,就無法再變更加密金鑰。
如何建立經過編碼的金鑰
KVM、KMS 和快取加密功能需要使用格式正確的 Base-64 編碼金鑰。用於上述任一用途的金鑰,必須是從長度為 16、24 或 32 個位元組的字串,以 Base-64 編碼而成,如以下步驟所述:
以下範例指令會產生適當的隨機產生 32 個字元 Base64 編碼字串,且不包含不可列印字元:
LC_ALL=C tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)\\-+= < /dev/urandom | head -c 32 | openssl base64 PSFvX0BPc1Z2NVklcXdxcF8xR0N4MV4temFveStITU4=
或
LC_ALL=C tr -dc "[:print:]" < /dev/urandom | head -c 32 | openssl base64