AlloyDB Omni 的透明資料加密

選取說明文件版本:

透過透明資料加密 (TDE),您可以在 AlloyDB Omni 叢集中保護所有靜態資料,不必修改應用程式程式碼。啟用這項功能後,系統會自動加密表格、索引和預先寫入記錄 (WAL),再寫入磁碟。這有助於您遵守法規要求,並保護機密資訊。

加密作業是透明的,因為 SQL 查詢、DDL 和 DML 作業可正常運作,不必變更應用程式。系統會在寫入磁碟前自動加密資料,並在讀取至記憶體時解密。

金鑰階層

AlloyDB Omni 實作雙層金鑰階層,在資料庫和使用者管理的安全性基礎架構之間,嚴格劃分職責。

  • 資料加密金鑰 (DEK):由 AlloyDB Omni 產生及擁有。這些金鑰會加密實際資料檔案、WAL 和暫存檔案。AlloyDB Omni 會將 DEK 儲存在磁碟上,但會以 KEK 包裝。
  • 金鑰加密金鑰 (KEK):您在外部金鑰管理服務 (KMS) 中管理的主要金鑰。AlloyDB Omni 會使用 KEK 加密 DEK。 AlloyDB Omni 只會在啟動時存取這個金鑰,以解開 DEK。您的 KEK 絕不會永久儲存在資料庫磁碟上。

TDE 如何與 AlloyDB Omni 搭配運作

啟用 TDE 後,AlloyDB Omni 會使用與外部 KMS 整合的分層加密模型,保護您的資料。

  • 初始化和金鑰擷取:在叢集的啟動或初始化階段,AlloyDB Omni 引擎會與 KMS 建立安全連線。並使用 JSON Web Token (JWT) 進行驗證,然後擷取 KEK。
  • 解包 DEK:AlloyDB Omni 會使用 KEK 解包 DEK,這些 DEK 會以包裝狀態儲存在本機儲存空間。然後將這些 DEK 載入記憶體。
  • 透明的資料作業:
    • 寫入磁碟:資料庫將資料區塊、WAL 記錄或暫時檔案寫入實體磁碟時,會先使用 AES-256 演算法自動加密資料,再寫入實體磁碟。
    • 從磁碟讀取:資料庫需要將資料讀取到記憶體時,會使用記憶體中的 DEK 自動解密區塊。
  • 安全界線:您的 KEK 絕不會儲存在本機資料庫磁碟上,確保即使實體儲存媒體遭到入侵,未經授權存取外部保存庫的對象也無法讀取資料。

加密範圍和規格

AlloyDB Omni 使用業界標準的 AES-256 演算法保護您的資料。

  • 資料檔案 (資料表和索引):AES-256-XTS。
  • 預先寫入記錄 (WAL):AES-256-CTR。
  • 暫時性檔案:視暫時性資料類型而定,採用 AES-256-XTS 或 AES-256-CTR。
  • 金鑰包裝:AES-256-KWP。

備份和高可用性

啟用 TDE 後,使用 pgBackRest 建立的備份會沿用來源叢集的加密設定。確保備份資料與主要資料庫享有同等安全防護。

支援的 KMS 和驗證

AlloyDB Omni 支援 HashiCorp Vault 做為外部 KMS 提供者。AlloyDB Omni 僅支援 KV-V2 密鑰引擎,且僅支援 JWT 驗證方法。

注意:AlloyDB Omni 支援以檔案為基礎的 KMS。不過,我們建議您僅將此功能用於測試,不要用於正式環境工作負載。

PostgreSQL 工具相容性

啟用 TDE 的叢集支援所有內建 PostgreSQL 工具,但 initdb 除外,可透過環境變數以透明方式啟用。如果您使用 initdb,請務必傳遞 KEK 網址。 詳情請參閱「建立啟用 TDE 的叢集」。

限制

  • 您無法在現有叢集上啟用 TDE。
  • 啟用 TDE 後即無法停用。
  • 啟用 TDE 的叢集不支援升級主要版本。
  • 您無法將加密備份還原至未加密的伺服器,也無法將未加密的備份還原至加密伺服器。
  • 不支援 DEK 輪替。
  • 只要 KEK 網址路徑維持不變,系統就會支援 KEK 輪替。
  • 只有外部 KMS 供應商為 HashiCorp Vault 時,才支援 KEK 輪替。
  • 您無法使用「FILE_COPY」策略CREATE DATABASE
  • 在啟用 TDE 的叢集上,Barman 備份僅支援 rsync 模式。系統不支援postgres備份方法。

後續步驟