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 的使用說明。
自動金鑰輪替
在為伺服器或資料庫設定 TDE 保護器時,為 TDE 保護器啟用 自動輪替。 你可以從 Azure 入口網站啟用自動輪替,或使用以下 PowerShell 或 Azure CLI 指令。 當你啟用自動輪換時,伺服器或資料庫會持續檢查金鑰庫中用於 TDE 保護器的金鑰是否有新版本。 如果伺服器或資料庫偵測到金鑰有新版本,會在 24 小時內自動將 TDE 保護器切換為最新的金鑰版本。
在伺服器、資料庫或受控執行個體上使用自動輪換,並搭配 Azure Key Vault 的自動金鑰輪換,以實現 TDE 金鑰的端對端零觸控輪換。
Azure 入口網站
使用 Azure 入口網站:
- 瀏覽至現有伺服器或受控執行個體的透明資料加密區段。
- 選擇 客戶管理的金鑰 選項,並選擇用於 TDE 保護器的金鑰庫與金鑰。
- 選取自動輪替金鑰核取方塊。
- 選取 [儲存]。
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 --server-key-type AzureKeyVault
--auto-rotation-enabled true
[--kid] <keyVaultKeyId>
[--resource-group] <SQLDatabaseResourceGroupName>
[--server] <logicalServerName>
手動金鑰輪替
手動輪替金鑰會使用下列命令來新增金鑰,而此金鑰可能位於新的金鑰名稱下方,甚至另一個金鑰保存庫。 你也可以用 Azure 入口網站手動輪替金鑰。
當你手動旋轉金鑰並在 金鑰保存庫 中建立新的金鑰版本(無論是手動還是透過自動金鑰輪換政策),你必須手動將該金鑰版本設為伺服器上的 TDE 保護器。
註
金鑰庫名稱與金鑰名稱的總長度不得超過 94 個字元。
Azure 入口網站
- 在 SQL 伺服器上開啟 透明資料加密。
- 選擇 客戶管理的金鑰。
- 選取客戶自控金鑰選項,然後選取金鑰保存庫和金鑰以用作新 TDE 保護器。
- 選取 [儲存]。
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>
使用下列命令:
- az sql server key create
- az sql server tde-key set(設置 Azure SQL Server 透明數據加密(TDE)密鑰的命令)
# 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 模式:
- 瀏覽至現有伺服器或受控執行個體的透明資料加密選單。
- 選取 [客戶自控金鑰] 選項。
- 選取金鑰保存庫和金鑰以用作 TDE 保護器。
- 選取 [儲存]。
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>