SQL 資料庫與 SQL 受管理執行個體 的透明資料加密

適用於:Azure SQL DatabaseAzure SQL 受控執行個體

透明資料加密(TDE)透過加密靜態資料,幫助保護 Azure SQL Database 與 Azure SQL 受控執行個體 免受惡意離線活動的威脅。 它會對資料庫、相關聯的備份和待用的交易記錄檔執行即時加密和解密,而不需變更應用程式。

  • 預設情況下,所有新部署的 Azure SQL Database 資料庫都啟用 TDE,舊資料庫則需手動啟用。
  • 對於 Azure SQL 受控執行個體,TDE 在實例層級及新建立的資料庫中啟用。

注意

資源名稱(例如資料表名稱、資料庫名稱)及資源標籤中,請勿包含任何個人、敏感或機密資訊。 你在這些欄位輸入的資料不算是客戶資料。

TDE 會在分頁層次上執行資料的即時 I/O 加密和解密。 系統會在將每個頁面讀取至記憶體時對它進行解密,然後在將頁面寫入至磁碟之前對它進行加密。 TDE 會使用一種名為資料庫加密金鑰 (DEK) 的對稱金鑰,將整個資料庫的儲存體加密。 在資料庫啟動時,即會將加密的 DEK 解密,然後用於解密和重新加密 SQL Server 資料庫引擎處理序中的資料庫檔案。 DEK 受到 TDE 保護裝置的保護。 TDE 保護裝置是服務管理的憑證(服務管理的透明數據加密)或儲存在 Azure Key Vault 或 Azure Key Vault 受控 HSM 中的非對稱密鑰(客戶管理的透明數據加密)。

  • 對於 Azure SQL Database,TDE 保護器設於邏輯伺服器層級,並由所有與該伺服器相關的資料庫繼承。
  • 針對 Azure SQL 受控執行個體,TDE 保護裝置會在執行個體層級上設定,並由該執行個體上的所有加密資料庫繼承。 除非另有說明,「伺服器」字詞在本文件中指的是伺服器和執行個體兩者。

重要

依預設,所有新建立的 SQL Database 均會使用服務受控的透明資料加密進行加密。 加密資料庫來源時,預設會加密透過還原、異地複寫和資料庫複本建立的目標資料庫。 然而,當資料庫來源未加密時,透過 還原、 地理複製和 資料庫複製 所建立的目標資料庫預設不會加密。 2017 年 5 月之前建立的現有 SQL 資料庫,以及 2019 年 2 月之前建立的 SQL 管理實例資料庫,預設不會加密。 透過還原建立的 SQL 受控執行個體資料庫會從來源繼承加密狀態。 若要還原現有的 TDE 加密資料庫,必須先將必要的 TDE 憑證匯入 SQL 受控執行個體。 若要了解資料庫的加密狀態,請從 sys.dm_database_encryption_keys DMV 執行選取查詢,並檢查 encryption_state_desc 資料行的狀態。

注意

TDE 無法在 SQL Database 和 SQL 受管理執行個體 中加密系統資料庫,例如 master 資料庫。 master 資料庫包含在使用者資料庫上執行 TDE 作業所需的物件。 建議不要在系統資料庫中儲存任何敏感資料。 例外是 tempdb,該金鑰始終由 Microsoft 擁有的特殊非對稱金鑰加密。 這是設計使然,確保臨時物件受到保護。

服務管理的透明資料加密

在 Azure 中,TDE 的預設設定為 DEK 會受到內建伺服器憑證保護。 每個伺服器的內建伺服器憑證都是唯一的,使用的加密演算法是密碼區塊鏈結 (CBC) 模式下的 AES 256。 如果資料庫具有異地複寫關聯性,則主要和異地次要資料庫都會受到主要資料庫的父伺服器金鑰保護。 如果兩個資料庫連線到相同的伺服器,則也會共用同一個內建憑證。 Microsoft每年自動輪替這些憑證一次,以符合內部安全策略,且根密鑰受到內部秘密存放區Microsoft保護。 客戶可以在 Microsoft 信任中心提供的獨立第三方稽核報告中,確認 SQL Database 和 SQL 受控執行個體是否符合內部安全性原則規範。

Microsoft 也會視異地複寫和還原的需要順暢地移動和管理金鑰。

由客戶管理的透明資料加密:攜帶您自己的金鑰

客戶管理的 TDE 也稱為 TDE 的自行提供金鑰 (BYOK) 支援。 在此案例中,加密 DEK 的 TDE 保護裝置是客戶管理的非對稱金鑰,該金鑰會儲存在客戶擁有及管理的 Azure Key Vault (Azure 的雲端式外部金鑰管理系統) 中,而且一律不會離開金鑰保存庫。 TDE 保護裝置可以由金鑰保存庫產生,或者從內部部署硬體安全模組 (HSM) 裝置轉移到金鑰保存庫。 或者,客戶可以使用 Azure 受控 HSM 來儲存和管理 TDE 保護裝置。 SQL 資料庫與 SQL 受管理執行個體 必須獲得客戶擁有的金鑰庫權限,才能解密並加密 DEK。 如果撤銷了伺服器對金鑰保存庫的權限,將無法存取資料庫,且所有資料都會加密。

透過具有 Azure Key Vault 或 Azure 受控 HSM 整合的 TDE,使用者可以控制密鑰管理工作,包括金鑰輪替、密鑰保存庫許可權、密鑰備份,以及使用 Azure Key Vault 或 Azure 受控 HSM 功能在所有 TDE 保護裝置上啟用稽核/報告。 Azure Key Vault 和 Azure 受控 HSM 提供集中密鑰管理、運用嚴密監視的 HSM,並讓密鑰與數據管理之間的職責區隔,以協助符合安全策略的合規性。 欲了解更多關於 Azure SQL Database 的 BYOK 與 Azure SQL 受控執行個體,請參閱 適用於 Azure SQL Database 與 Azure SQL 受控執行個體 的 Azure SQL 透明資料加密與客戶管理金鑰。

要開始使用 TDE 與 Azure Key Vault 整合,請參閱操作指南 PowerShell 與 Azure CLI:啟用 Azure Key Vault 的客戶管理金鑰透明資料加密。

移動以透明資料加密保護的資料庫

在 Azure 中執行作業時,您無須解密資料庫。 目標資料庫會透明地自動繼承來源資料庫或主要資料庫的 TDE 設定。 其中包含的作業涉及:

  • 異地復原
  • 自助式即時還原
  • 還原已刪除的資料庫
  • 主動地理複寫
  • 建立資料庫複本
  • 將備份檔案還原至 Azure SQL 受控執行個體

重要

Azure SQL 管理實例不支援手動進行 COPY-ONLY 備份在由服務管理 TDE 加密的資料庫上,因為用於加密的憑證無法存取。 使用時間點還原功能將此類型的資料庫移至另一個 SQL 受控執行個體,或切換至客戶自控金鑰。

當您將受 TDE 保護的資料庫匯出至 BACPAC 檔案時,資料庫的匯出內容不會加密。 如果您匯入至現有的空白資料庫,則加密取決於該資料庫是否啟用 TDE。 如果在匯入期間建立新的資料庫,則會使用 Azure SQL 資料庫或 Azure SQL 受控執行個體邏輯伺服器的預設 TDE 設定。

管理透明資料加密

在 Azure 入口網站中管理 TDE。

若要透過 Azure 入口網站設定 TDE,您必須以 Azure 擁有者、參與者或 SQL 安全性管理員的身分連線。

在資料庫層級啟用和停用 TDE。 針對 Azure SQL 受控執行個體,使用 Transact-SQL (T-SQL) 在資料庫上開啟和關閉 TDE。 對於 Azure SQL Database,你可以在使用 Azure 管理員或貢獻者帳號登入後,在 Azure 入口網站管理該資料庫的 TDE。 在您的使用者資料庫下方,找到 TDE 設定。 預設情況下,會使用伺服器層級的加密金鑰。 系統會自動為包含資料庫的伺服器產生 TDE 憑證。

您可以在伺服器或執行個體層級設定 TDE 主要金鑰,稱為 TDE 保護裝置。 若要搭配 BYOK 支援使用 TDE,並使用來自 Azure Key Vault 或 Azure 受控 HSM 的密鑰保護您的資料庫,請開啟伺服器或受控實例下的 TDE 設定。

Azure 入口網站伺服器透明資料加密功能表的螢幕擷取畫面。

您也可以在 Azure SQL 資料庫的資料庫層級上使用適用於 TDE 的客戶自控金鑰。 如需詳細資訊,請參閱透明資料加密 (TDE) 資料庫層級的客戶自控金鑰。

TDE in Azure Synapse Analytics

關於 Azure Synapse Analytics 透明資料加密的資訊,請參見透明資料加密。