使用 Azure 入口網站,對適用於 MySQL 的 Azure 資料庫進行資料加密
適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器
重要
適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫單一伺服器會發生什麼事?
了解如何使用 Azure 入口網站,對適用於 MySQL 的 Azure 資料庫設定和管理資料加密。
Azure CLI 的必要條件
您必須具有 Azure 訂用帳戶,並且是該訂用帳戶的系統管理員。
在 Azure Key Vault 中,建立金鑰保存庫和金鑰,以用於客戶自控金鑰。
金鑰保存庫必須具有下列屬性,才能用來作為客戶自控金鑰:
-
az resource update --id $(az keyvault show --name \ <key_vault_name> -o tsv | awk '{print $1}') --set \ properties.enableSoftDelete=true
-
az keyvault update --name <key_vault_name> --resource-group <resource_group_name> --enable-purge-protection true
保留天數設定為 90 天
az keyvault update --name <key_vault_name> --resource-group <resource_group_name> --retention-days 90
-
金鑰必須具有下列屬性才能作為客戶自控金鑰:
- 沒有到期日
- 未停用
- 執行 get、wrap、unwrap 作業
- recoverylevel 屬性設定為 [Recoverable] (這需要啟用虛刪除,且保留期間設定為 90 天)
- 已啟用清除保護
您可以使用下列命令來驗證金鑰的上述屬性:
az keyvault key show --vault-name <key_vault_name> -n <key_name>
適用於 MySQL 的 Azure 資料庫 - 單一伺服器應位於 [一般用途] 或 [記憶體已最佳化] 定價層及一般用途儲存體 v2 上。 繼續進行之前,請先參閱使用客戶自控金鑰進行資料加密的限制。
設定金鑰作業的正確權限
在 Key Vault 中,選取 [存取原則]>[新增存取原則]。
選取 [金鑰權限],然後選取 [Get]、[Wrap]、[Unwrap],以及 [主體] (這是 MySQL 伺服器的名稱)。 如果在現有主體清單中找不到您的伺服器主體,則您需要加以註冊。 如果您在第一次嘗試設定資料加密時遇到失敗,系統會提示您註冊伺服器主體。
選取 [儲存]。
對適用於 MySQL 的 Azure 資料庫設定資料加密
在適用於 MySQL 的 Azure 資料庫中,選取 [資料加密] 以設定客戶自控金鑰。
您可以選取金鑰保存庫和金鑰組,或輸入金鑰識別碼。
選取 [儲存]。
若要確保所有檔案 (包括暫存檔案) 均已完全加密,請重新啟動伺服器。
對還原或複本伺服器使用資料加密
在「適用於 MySQL 的 Azure 資料庫」使用儲存於 Key Vault 的客戶管理金鑰加密之後,任何新建立的伺服器複本也會一併加密。 您可以透過本機或異地還原作業,或者透過複本 (本機/跨區域) 作業來建立這個新複本。 因此,對於加密的 MySQL 伺服器,您可以使用下列步驟來建立加密的還原伺服器。
在伺服器上,選取 [概觀]> [還原]。
或者,針對已啟用複寫的伺服器,在 [設定] 標題底下,選取 [複寫]。
還原作業完成之後,就會使用主伺服器的金鑰來加密新建立的伺服器。 不過,伺服器上的功能和選項都會停用,而且無法存取伺服器。 這可防止任何資料操作,因為新伺服器的身分識別尚未獲得存取金鑰保存庫的權限。
若要讓伺服器可供存取,請重新驗證已還原伺服器上的金鑰。 選取 [資料加密]>[重新驗證金鑰]。
注意
第一次嘗試重新驗證將會失敗,因為新伺服器的服務主體必須獲得金鑰保存庫的存取權。 若要產生服務主體,選取 [重新驗證金鑰],這將顯示錯誤,但會產生服務主體。 之後,請參閱此文章稍早的這些步驟。
您必須為金鑰保存庫提供新伺服器的存取權。 如需詳細資訊,請參閱指派 Key Vault 存取原則。
註冊服務主體之後,請再次重新驗證金鑰,之後伺服器便能繼續進行其正常功能。