使用客戶自控金鑰進行資料加密
適用於: 適用於 PostgreSQL 的 Azure Cosmos DB (由 Citus 資料庫延伸模組 支援 PostgreSQL)
儲存在適用於 PostgreSQL 的 Azure Cosmos DB 叢集中的數據會自動且順暢地使用 Microsoft 管理的金鑰加密。 這些金鑰稱為 服務管理的金鑰。 適用於 PostgreSQL 的 Azure Cosmos DB 會使用 Azure 儲存體 加密,預設會使用服務管理的密鑰加密待用數據。 您可以選擇使用客戶管理的金鑰啟用加密,以新增額外的安全性層級。
服務受控金鑰
適用於 PostgreSQL 的 Azure Cosmos DB 服務會使用 FIPS 140-2 驗證的密碼編譯模組來儲存待用數據的加密。 所有數據,包括執行查詢時建立的備份和暫存盤都會在磁碟上加密。 此服務使用包含在 Azure 儲存體加密機制中的 AES 256 位元加密,且金鑰是由系統管理。 儲存體加密會一律啟用,且無法停用。
客戶管理的金鑰
許多組織都需要使用客戶管理的密鑰 (CMK) 完全控制資料存取權。 使用適用於 PostgreSQL 的 Azure Cosmos DB 客戶自控密鑰進行數據加密,可讓您攜帶自己的金鑰來保護待用數據。 此外也可讓組織在金鑰和資料的管理中實作職責區分。 使用客戶管理的加密,您必須負責密鑰生命週期、使用許可權和作業稽核的完整控制權。
使用適用於 PostgreSQL 的 Azure Cosmos DB 客戶自控密鑰進行數據加密,會設定在伺服器層級。 數據,包括備份,都會在磁碟上加密。 此加密包含在執行查詢時建立的暫存盤。 對於指定的叢集,稱為密鑰加密金鑰 (KEK) 的客戶自控密鑰會用來加密服務的數據加密密鑰 (DEK)。 KEK 是非對稱密鑰,儲存在客戶擁有和客戶管理的 Azure 金鑰保存庫 實例中。
描述 | |
---|---|
資料加密金鑰 (DEK) | 數據加密金鑰是對稱的 AES256 金鑰,用來加密資料分割或數據區塊。 使用不同的金鑰加密每個數據區塊,會讓密碼編譯分析攻擊更加困難。 加密和解密特定區塊的資源提供者或應用程式實例需要存取 DEK。 當您以新的金鑰取代 DEK 時,只有其相關聯區塊中的數據必須以新的金鑰重新加密。 |
金鑰加密金鑰 (KEK) | 金鑰加密金鑰是用來加密 DEK 的加密金鑰。 永不離開金鑰保存庫的 KEK 可讓 DEK 本身進行加密和控制。 可存取 KEK 的實體可能與需要 DEK 的實體不同。 由於 KEK 需要解密 DEK,因此 KEK 實際上是單一點,而 KEK 刪除實際上會刪除 DEK。 |
注意
Azure 金鑰保存庫 是雲端式密鑰管理系統。 它具有高可用性,可為 RSA 密碼編譯金鑰提供可調整且安全的記憶體,並選擇性地由 FIPS 140 驗證 的硬體安全性模組 (HSMs) 支援。 密鑰保存庫不允許直接存取儲存的金鑰,但會將加密和解密服務提供給授權的實體。 金鑰保存庫可以產生金鑰、匯入金鑰,或從內部部署 HSM 裝置傳輸金鑰。
使用 KEK 加密的 DEK 會分開儲存。 只有具有KEK存取權的實體才能解密這些DEK。 如需詳細資訊,請參閱 待用加密的安全性。。
使用客戶管理的金鑰進行數據加密的運作方式
為了讓叢集使用儲存在 金鑰保存庫 的客戶自控金鑰來加密 DEK,金鑰保存庫 系統管理員會提供下列伺服器存取權限:
描述 | |
---|---|
get | 啟用擷取金鑰保存庫中金鑰的公用部分和屬性。 |
wrapKey | 啟用 DEK 的加密。 加密的 DEK 會儲存在適用於 PostgreSQL 的 Azure Cosmos DB 中。 |
unwrapKey | 啟用 DEK 的解密。 適用於 PostgreSQL 的 Azure Cosmos DB 需要解密的 DEK 來加密/解密數據。 |
金鑰保存庫系統管理員也可以啟用 金鑰保存庫 稽核事件的記錄,以便稍後進行稽核。 當適用於 PostgreSQL 的 Azure Cosmos DB 叢集設定為使用儲存在密鑰保存庫中的客戶自控金鑰時,叢集會將 DEK 傳送至密鑰保存庫以進行加密。 金鑰保存庫 會傳回儲存在用戶資料庫中的加密 DEK。 同樣地,必要時,伺服器會將受保護的 DEK 傳送至密鑰保存庫以進行解密。 如果已啟用記錄,稽核員可以使用 Azure 監視器來檢閱 金鑰保存庫 稽核事件記錄。
福利
使用適用於 PostgreSQL 的 Azure Cosmos DB 客戶自控密鑰進行資料加密可提供下列優點:
- 您可以完全控制數據存取,並能夠移除金鑰並讓資料庫無法存取。
- 完整控制金鑰生命週期,包括密鑰輪替以符合特定公司原則。
- Azure 金鑰保存庫 中密鑰的集中管理和組織。
- 能夠實作安全性人員、資料庫管理員和系統管理員之間的職責區隔。
- 啟用加密沒有任何額外的效能效果,無論是否使用客戶管理的金鑰。 適用於 PostgreSQL 的 Azure Cosmos DB 依賴 Azure 儲存體,以在客戶管理和服務管理的密鑰案例中加密數據。