Share via


使用 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
      
  • 金鑰必須具有下列屬性才能作為客戶自控金鑰:

    • 沒有到期日
    • 未停用
    • 執行 getwrapunwrap 作業
    • recoverylevel 屬性設定為 [Recoverable] (這需要啟用虛刪除,且保留期間設定為 90 天)
    • 已啟用清除保護

    您可以使用下列命令來驗證金鑰的上述屬性:

    az keyvault key show --vault-name <key_vault_name> -n <key_name>
    
  • 適用於 MySQL 的 Azure 資料庫 - 單一伺服器應位於 [一般用途] 或 [記憶體已最佳化] 定價層及一般用途儲存體 v2 上。 繼續進行之前,請先參閱使用客戶自控金鑰進行資料加密的限制。

設定金鑰作業的正確權限

  1. 在 Key Vault 中,選取 [存取原則]>[新增存取原則]

    Screenshot of Key Vault, with Access policies and Add Access Policy highlighted

  2. 選取 [金鑰權限],然後選取 [Get]、[Wrap]、[Unwrap],以及 [主體] (這是 MySQL 伺服器的名稱)。 如果在現有主體清單中找不到您的伺服器主體,則您需要加以註冊。 如果您在第一次嘗試設定資料加密時遇到失敗,系統會提示您註冊伺服器主體。

    Access policy overview

  3. 選取 [儲存]。

對適用於 MySQL 的 Azure 資料庫設定資料加密

  1. 在適用於 MySQL 的 Azure 資料庫中,選取 [資料加密] 以設定客戶自控金鑰。

    Screenshot of Azure Database for MySQL, with Data encryption highlighted

  2. 您可以選取金鑰保存庫和金鑰組,或輸入金鑰識別碼。

    Screenshot of Azure Database for MySQL, with data encryption options highlighted

  3. 選取 [儲存]。

  4. 若要確保所有檔案 (包括暫存檔案) 均已完全加密,請重新啟動伺服器。

對還原或複本伺服器使用資料加密

在「適用於 MySQL 的 Azure 資料庫」使用儲存於 Key Vault 的客戶管理金鑰加密之後,任何新建立的伺服器複本也會一併加密。 您可以透過本機或異地還原作業,或者透過複本 (本機/跨區域) 作業來建立這個新複本。 因此,對於加密的 MySQL 伺服器,您可以使用下列步驟來建立加密的還原伺服器。

  1. 在伺服器上,選取 [概觀]> [還原]

    Screenshot of Azure Database for MySQL, with Overview and Restore highlighted

    或者,針對已啟用複寫的伺服器,在 [設定] 標題底下,選取 [複寫]

    Screenshot of Azure Database for MySQL, with Replication highlighted

  2. 還原作業完成之後,就會使用主伺服器的金鑰來加密新建立的伺服器。 不過,伺服器上的功能和選項都會停用,而且無法存取伺服器。 這可防止任何資料操作,因為新伺服器的身分識別尚未獲得存取金鑰保存庫的權限。

    Screenshot of Azure Database for MySQL, with Inaccessible status highlighted

  3. 若要讓伺服器可供存取,請重新驗證已還原伺服器上的金鑰。 選取 [資料加密]>[重新驗證金鑰]

    注意

    第一次嘗試重新驗證將會失敗,因為新伺服器的服務主體必須獲得金鑰保存庫的存取權。 若要產生服務主體,選取 [重新驗證金鑰],這將顯示錯誤,但會產生服務主體。 之後,請參閱此文章稍早的這些步驟

    Screenshot of Azure Database for MySQL, with revalidation step highlighted

    您必須為金鑰保存庫提供新伺服器的存取權。 如需詳細資訊,請參閱指派 Key Vault 存取原則

  4. 註冊服務主體之後,請再次重新驗證金鑰,之後伺服器便能繼續進行其正常功能。

    Screenshot of Azure Database for MySQL, showing restored functionality

下一步