在 Azure Synapse Analytics 中旋轉 透明資料加密 保護器

Tip

Microsoft Fabric Data Warehouse 是一個企業規模的關聯式倉庫,建立在資料湖基礎上,具備未來準備架構、內建 AI 及新功能。 如果你是資料倉儲新手,建議先從Fabric Data Warehouse開始。 現有的 專用 SQL 工作負載可升級至 Fabric,以取得資料科學、即時分析與報告等多項新功能。

僅適用於:Azure Synapse Analytics 專用 SQL 集區 (原為 SQL DW)

本文描述了使用 Azure Key Vault 的 TDE 保護器的 SQL 伺服器的金鑰輪換。 旋轉伺服器的邏輯 TDE 保護器意味著切換到一個新的支援金鑰,以保護伺服器上的資料庫。 根據設定不同,TDE 保護器可由支援的非對稱(RSA)或對稱(AES)金鑰支援,這些金鑰儲存在 Azure Key Vault 或 Azure Key Vault Managed HSM 中。 金鑰輪換是一項線上操作,通常只需幾秒鐘即可完成,因為此操作僅解密並重新加密資料庫的資料加密金鑰,而非整個資料庫。

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

註

本文介紹獨立專用 SQL 池(前稱 SQL DW)。 關於 Synapse 工作空間中的專用 SQL 池,請參見 Azure Synapse Analytics 工作空間的加密。

重要考慮

  • 至少保留舊的金鑰版本,至少在資料庫備份的保留期內。 還原舊備份需要用於加密該備份的保護器。
  • 即使你換回服務管理的保護器,也要保留舊金鑰。
  • 暫停的專用 SQL 集區必須在輪替前恢復。
  • 金鑰庫名稱與金鑰名稱的總長度不得超過 94 個字元。

Prerequisites

  • 本文假設你已經使用Azure Key Vault的金鑰作為Azure SQL Database或Azure Synapse Analytics的TDE保護器。 欲了解更多資訊,請參閱 Azure Synapse Analytics 的客戶管理 TDE 。
  • 您必須安裝並執行 Azure PowerShell。

Tip

建議執行的選擇性作業 - 先在硬體安全性模組 (HSM) 或本機金鑰存放區中建立 TDE 保護裝置的金鑰內容,然後將金鑰內容匯入至 Azure Key Vault。 欲了解更多,請參閱硬體安全模組(HSM)與 Azure Key Vault 的使用說明。

前往 Azure 入口網站。

自動金鑰輪替

在為伺服器或資料庫設定 TDE 保護器時,為 TDE 保護器啟用 自動輪替。 你可以從 Azure 入口網站啟用自動輪替,或使用以下 PowerShell 或 Azure CLI 指令。 當你啟用自動輪換時,伺服器或資料庫會持續檢查金鑰庫中用於 TDE 保護器的金鑰是否有新版本。 如果伺服器或資料庫偵測到金鑰有新版本,會在 24 小時內自動將 TDE 保護器切換為最新的金鑰版本。

在伺服器、資料庫或受控執行個體上使用自動輪換,並搭配 Azure Key Vault 的自動金鑰輪換,以實現 TDE 金鑰的端對端零觸控輪換。

Azure 入口網站

使用 Azure 入口網站:

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

PowerShell

如需 Az PowerShell 模組安裝指示,請參閱安裝 Azure PowerShell。

要使用 PowerShell 啟用 TDE 保護器的自動旋轉,請參考以下腳本。 你可以從 Azure Key Vault 取得 <keyVaultKeyId>。

使用 Set-AzSqlServerTransparentDataEncryptionProtector:

Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault -KeyId <keyVaultKeyId> `
   -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName> `
    -AutoRotationEnabled <boolean>

Azure CLI

關於安裝目前版本的 Azure CLI 資訊,請參見「安裝 Azure CLI」。

要使用 Azure CLI 啟用 TDE 保護器的自動旋轉,請參考以下腳本。

使用 az sql server tde-key set:

az sql server tde-key set --server-key-type AzureKeyVault
                          --auto-rotation-enabled true
                          [--kid] <keyVaultKeyId>
                          [--resource-group] <SQLDatabaseResourceGroupName> 
                          [--server] <logicalServerName>

手動金鑰輪替

手動輪替金鑰會使用下列命令來新增金鑰,而此金鑰可能位於新的金鑰名稱下方,甚至另一個金鑰保存庫。 你也可以用 Azure 入口網站手動輪替金鑰。

當你手動旋轉金鑰並在 金鑰保存庫 中建立新的金鑰版本(無論是手動還是透過自動金鑰輪換政策),你必須手動將該金鑰版本設為伺服器上的 TDE 保護器。

註

金鑰庫名稱與金鑰名稱的總長度不得超過 94 個字元。

Azure 入口網站

  1. 在 SQL 伺服器上開啟 透明資料加密。
  2. 選擇 客戶管理的金鑰。
  3. 選取客戶自控金鑰選項,然後選取金鑰保存庫和金鑰以用作新 TDE 保護器。
  4. 選取 [儲存]。

PowerShell

使用 Add-AzKeyVaultKey 命令,以將新的金鑰新增至金鑰保存庫。

# add a new key to Azure Key Vault
Add-AzKeyVaultKey -VaultName <keyVaultName> -Name <keyVaultKeyName> -Destination <hardwareOrSoftware>

使用下列命令:


# add the new key from Azure Key Vault to the server
Add-AzSqlServerKeyVaultKey -KeyId <keyVaultKeyId> -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
  
# set the key as the TDE protector for all resources under the server
Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault -KeyId <keyVaultKeyId> `
   -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>

Azure CLI

使用 az keyvault key create 命令,以將新的金鑰新增至金鑰保存庫。

# add a new key to Azure Key Vault
az keyvault key create --name <keyVaultKeyName> --vault-name <keyVaultName> --protection <hsmOrSoftware>

使用下列命令:

# add the new key from Azure Key Vault to the server
az sql server key create --kid <keyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>

# set the key as the TDE protector for all resources under the server
az sql server tde-key set --server-key-type AzureKeyVault --kid <keyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>

切換 TDE 保護裝置模式

Azure 入口網站

使用 Azure 入口網站將 TDE 保護器從 Microsoft 管理模式切換到 BYOK 模式:

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

PowerShell

  • 若要將 TDE 保護裝置從 Microsoft 管理模式切換為 BYOK 模式,請使用 Set-AzSqlServerTransparentDataEncryptionProtector 命令。

    Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault `
         -KeyId <keyVaultKeyId> -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
    
  • 若要將 TDE 保護裝置從 BYOK 模式切換為 Microsoft 管理模式,請使用 Set-AzSqlServerTransparentDataEncryptionProtector 命令。

    Set-AzSqlServerTransparentDataEncryptionProtector -Type ServiceManaged `
         -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
    

Azure CLI

下列範例會使用 az sql server tde-key set。

  • 將 TDE 保護裝置從 Microsoft 管理模式切換為 BYOK 模式:

    az sql server tde-key set --server-key-type AzureKeyVault --kid <keyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>
    
  • 將 TDE 保護裝置從 BYOK 模式切換為 Microsoft 管理模式:

    az sql server tde-key set --server-key-type ServiceManaged --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>