共用方式為


輪替透明資料加密 (TDE) 保護裝置

適用於:Azure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics (僅限專用的 SQL 集區)

本文說明如何使用 Azure Key Vault 中的 TDE 保護裝置來進行伺服器的金鑰輪替。 將伺服器的邏輯 TDE 保護元件重新旋轉,意即啟用新的非對稱式金鑰來保護伺服器上的資料庫。 金鑰輪替是一項線上作業,應可在幾秒內完成,因為此作業只會解密和重新加密資料庫的資料加密金鑰,而不是整個資料庫。

本文討論輪替伺服器上 TDE 保護裝置的自動和手動方法。

輪替 TDE 保護裝置時的重要考量

  • 變更或輪替 TDE 保護程式時,資料庫的既有備份,包括已備份的記錄檔,不會更新並使用最新的 TDE 保護程式。 若要從 Azure Key Vault 或 Azure 受控 HSM 還原使用 TDE 保護裝置加密的備份,請確定目標伺服器可以使用密鑰數據。 因此,建議您保留 Azure Key Vault 或 Azure 受控 HSM 中的所有舊版 TDE 保護裝置,以便還原資料庫備份。
  • 即使從客戶管理的金鑰 (CMK) 切換至服務管理的密鑰,仍保留 Azure Key Vault 或 Azure 受控 HSM 中的所有先前使用的金鑰。 這可確保使用儲存在 Azure Key Vault 或 Azure 受控 HSM 中的 TDE 保護裝置還原資料庫備份,包括備份的記錄檔。
  • 除了舊的備份之外,交易記錄檔也可能需要存取舊版的 TDE 保護裝置。 若要判斷是否有任何剩餘的記錄仍需要使用舊的金鑰,請在執行金鑰輪替之後,使用 sys.dm_db_log_info 動態管理檢視 (DMV)。 此 DMV 會傳回交易記錄的虛擬記錄檔 (VLF) 相關資訊,以及 VLF 的加密金鑰指紋。
  • 較舊的密鑰必須保留在 Azure Key Vault 或 Azure 受控 HSM 中,並根據資料庫上設定為備份保留原則的備份保留期限,供伺服器使用。 這有助於確保伺服器上的任何長期保留 (LTR) 備份仍可使用舊的金鑰還原。

注意

必須先恢復 Azure Synapse Analytics 中已暫停的專用 SQL 集區,才能進行金鑰輪替。

本文適用於 Azure SQL Database、Azure SQL 受控執行個體和 Azure Synapse Analytics 專用 SQL 集區 (原為 SQL DW)。 如需 Synapse 工作區中專用 SQL 集區的透明資料加密 (TDE) 文件,請參閱 Azure Synapse Analytics 加密

必要條件

  • 本操作指南假設您已使用 Azure Key Vault 中的金鑰作為 Azure SQL Database 或 Azure Synapse Analytics 的 TDE 保護裝置。 請參閱具有 BYOK 支援的透明資料加密
  • 您必須安裝並執行 Azure PowerShell。

提示

建議執行的選擇性作業 - 先在硬體安全性模組 (HSM) 或本機金鑰存放區中建立 TDE 保護裝置的金鑰內容,然後將金鑰內容匯入至 Azure Key Vault。 請遵循 使用硬體安全性模組 (HSM) 和 Azure Key Vault 的指示 來深入瞭解。

移至 Azure 入口網站

自動金鑰輪替

設定伺服器或資料庫的 TDE 保護裝置時,可以從 Azure 入口網站或使用下列 PowerShell 或 Azure CLI 命令,來啟用 TDE 保護裝置的自動輪替。 啟用之後,伺服器或資料庫將會持續檢查金鑰保存庫中是否有任何用作 TDE 保護裝置的金鑰新版本。 如果偵測到金鑰的新版本,則伺服器或資料庫上的 TDE 保護裝置將會在 24 小時內自動輪替至最新的金鑰版本。

伺服器、資料庫或受控執行個體中的自動輪替可以與 Azure Key Vault 中的自動金鑰輪替搭配使用,以啟用 TDE 金鑰的端對端零觸控輪替。

注意

如果伺服器或受控執行個體已設定異地複寫,則在啟用自動輪替之前,需要遵循此處所述的其他指導方針。

使用 Azure 入口網站

  1. 瀏覽至現有伺服器或受控實例的 [透明資料加密] 區段。
  2. 選取 [客戶自控金鑰] 選項,然後選取要用作 TDE 保護裝置的金鑰保存庫和金鑰。
  3. 勾選 [自動旋轉] 核取方塊。
  4. 選擇 [儲存]。

螢幕擷取畫面:透明資料加密的自動輪替金鑰設定。

資料庫層級的自動金鑰輪替

您也可以在 Azure SQL 資料庫的資料庫層級啟用自動金鑰輪替。 當您只想針對伺服器上的一個或某個資料庫子集啟用自動金鑰輪替時,這非常有用。 如需更多資訊,請參閱使用資料庫層級客戶自控金鑰的 TDE 身分識別和金鑰管理

如需在資料庫層級設定自動金鑰輪替的 Azure 入口網站資訊,請參閱使用資料庫層級客戶自控金鑰更新現有的 Azure SQL 資料庫

異地複寫設定的自動金鑰輪替

在將主要伺服器設定為搭配使用 TDE 與 CMK 的 Azure SQL Database 異地複寫設定中,次要伺服器也需要設定為使用具有主要伺服器上所使用相同金鑰的 CMK 來啟用 TDE。

使用 Azure 入口網站

  1. 瀏覽至「主要」伺服器的 [透明資料加密] 區段。

  2. 選取 [客戶自控金鑰] 選項,然後選取要用作 TDE 保護裝置的金鑰保存庫和金鑰。

  3. 勾選 [自動旋轉] 核取方塊。

  4. 選擇 [儲存]。

    螢幕擷取畫面:在主要伺服器上、異地複寫場景中的自動輪替金鑰設定,用於透明資料加密。

  5. 瀏覽至「備援伺服器」的 [透明資料加密] 區段。

  6. 選取 [客戶自控金鑰] 選項,然後選取要用作 TDE 保護裝置的金鑰保存庫和金鑰。 使用與您用於主要伺服器的相同金鑰。

  7. 取消核取 [將此金鑰設為預設 TDE 保護裝置]。

  8. 選擇 [儲存]。

    螢幕擷取畫面:次要伺服器上異地複寫情節中透明資料加密的自動輪替金鑰設定。

金鑰在主要伺服器上進行輪替時,會自動傳輸至次要伺服器。

注意

如果在主要伺服器上使用相同的密鑰保存庫金鑰作為次要伺服器上的預設 TDE 保護器,請確定部伺服器都已啟用自動輪替金鑰。 若無法這麼做,可能會導致自動輪替工作流程進入錯誤狀態,並防止進一步手動密鑰輪替作業。

針對每個伺服器使用不同的金鑰

在 Azure 入口網站中使用 CMK 來設定 TDE 時,可以使用不同的金鑰保存庫金鑰來設定主要和次要伺服器。 在 Azure 入口網站中,無法證明用來保護主要伺服器的金鑰也是保護已複寫至次要伺服器的主要資料庫的相同金鑰。 不過,您可以使用 PowerShell、Azure CLI 或 REST API 來取得伺服器上所使用金鑰的詳細資料。 這會顯示自動輪替金鑰從主要伺服器傳輸至次要伺服器。

以下範例說明如何使用 PowerShell 命令來檢查金鑰是否可在金鑰輪替之後從主要伺服器傳輸至次要伺服器。

  1. 在主要伺服器上,執行下列命令以顯示伺服器的金鑰詳細資料:

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  2. 您應該會看見如下所示的結果:

    ResourceGroupName : <SQLDatabaseResourceGroupName> 
    ServerName        : <logicalServerName> 
    ServerKeyName     : <keyVaultKeyName> 
    Type              : AzureKeyVault 
    Uri               : https://<keyvaultname>.vault.azure.net/keys/<keyName>/<GUID> 
    Thumbprint        : <thumbprint> 
    CreationDate      : 12/13/2022 8:56:32 PM
    
  3. 在次要伺服器上,執行相同的 Get-AzSqlServerKeyVaultKey 命令:

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  4. 如果次要伺服器的預設 TDE 保護裝置使用與主要伺服器不同的金鑰,則您應該會看到兩個 (或更多) 金鑰。 第一個金鑰是預設 TDE 保護裝置,而第二個金鑰是用來保護複寫資料庫之主要伺服器中所使用的金鑰。

  5. 金鑰在主要伺服器上進行輪替時,會自動傳輸至次要伺服器。 如果您再次在主要伺服器上運行Get-AzSqlServerKeyVaultKey,那麼您應該會看到兩把金鑰。 第一個金鑰是原始金鑰,而第二個金鑰則是在金鑰輪替期間所產生的目前金鑰。

  6. 在次要伺服器上執行 Get-AzSqlServerKeyVaultKey 命令也應該會顯示主要伺服器中所存在的相同金鑰。 這會確認主要伺服器上的已輪替金鑰自動傳輸至次要伺服器,並用來保護資料庫複本。

手動金鑰輪替

手動輪替金鑰會使用下列命令來新增金鑰,而此金鑰可能位於新的金鑰名稱下方,甚至另一個金鑰保存庫。 使用此方法,可支援將相同金鑰新增至不同的金鑰保存庫,以支援高可用性和異地災備。 手動金鑰輪替也可以使用 Azure 入口網站來完成。

使用手動金鑰旋轉時,如果金鑰庫中產生新的金鑰版本(無論是手動還是透過金鑰庫中的自動金鑰旋轉策略),則必須手動將其設定為伺服器上的 TDE 保護器。

注意

金鑰保存庫名稱和金鑰名稱的合併長度不可超過 94 個字元。

使用 Azure 入口網站:

  1. 瀏覽至現有伺服器或受控執行個體的 [透明資料加密] 功能表。
  2. 選取 [客戶自控金鑰] 選項,然後選取要用作新 TDE 保護裝置的金鑰保存庫和金鑰。
  3. 選擇 [儲存]。

螢幕擷取畫面:透明資料加密的手動輪替金鑰設定。

切換 TDE 保護裝置模式

使用 Azure 入口網站,以將 TDE 保護裝置從 Microsoft 受控模式切換為 BYOK 模式:

  1. 瀏覽至現有伺服器或受控執行個體的 [透明資料加密] 功能表。
  2. 選取 [客戶自控金鑰] 選項。
  3. 選取要用作 TDE 保護裝置的金鑰保存庫和金鑰。
  4. 選擇 [儲存]。