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

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

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

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

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

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

移至 Azure 入口網站

自動金鑰輪替

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

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

注意

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

使用 Azure 入口網站

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

Screenshot of auto rotate key configuration for Transparent data encryption.

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

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

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

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

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

使用 Azure 入口網站

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

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

  3. 核取 [自動輪替金鑰] 核取方塊。

  4. 選取 [儲存]。

    Screenshot of auto rotate key configuration for transparent data encryption in a geo-replication scenario on the primary server.

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

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

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

  8. 選取 [儲存]。

    Screenshot of auto rotate key configuration for transparent data encryption in a geo-replication scenario on the secondary server.

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

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

在 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. 選取 [儲存]。

Screenshot of manually rotate key configuration for Transparent data encryption.

切換 TDE 保護裝置模式

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

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