為 Azure 儲存體加密的客戶自控金鑰

您可以使用自己的加密金鑰來保護儲存體帳戶中的資料。 當您指定客戶自控金鑰時,該金鑰會用來保護及控制加密資料所需金鑰的存取權。 客戶自控金鑰可提供更大的彈性來管理存取控制。

您必須使用下列其中一個 Azure 金鑰存放區來儲存客戶自控金鑰:

您可以建立自己的金鑰並儲存在金鑰保存庫或受控 HSM 中,或是使用 Azure Key Vault API 來產生金鑰。 儲存體帳戶和金鑰保存庫或受控 HSM 可以在不同的 Microsoft Entra 租用戶、區域和訂用帳戶中。

注意

Azure Key Vault 和 Azure Key Vault 受控 HSM 支援使用相同的 API 和管理介面以進行客戶自控金鑰的設定。 Azure Key Vault 支援的任何動作也受 Azure Key Vault 受控 HSM 所支援。

關於客戶管理的金鑰

下圖顯示 Azure 儲存體如何透過 Microsoft Entra ID 和金鑰保存庫或受控 HSM,以使用客戶自控金鑰來提出要求:

Diagram showing how customer-managed keys work in Azure Storage

下列清單說明圖表中編號的步驟:

  1. Azure Key Vault 系統管理員會將加密金鑰的權限授與受控識別。 受控識別可以是您所建立和管理的使用者指派受控識別,或是與儲存體帳戶相關聯的系統指派受控識別。
  2. Azure 儲存體系統管理員會使用客戶自控金鑰來設定儲存體帳戶的加密。
  3. Azure 儲存體使用 Azure Key Vault 系統管理員在步驟 1 中授與權限的受控識別,透過 Microsoft Entra ID 驗證對 Azure Key Vault 的存取。
  4. Azure 儲存體使用 Azure Key Vault 中的客戶自控金鑰來包裝帳戶加密金鑰。
  5. 針對讀取/寫入作業,Azure 儲存體將要求傳送至 Azure Key Vault 以解除包裝帳戶加密金鑰,並執行加密和解密作業。

與儲存體帳戶相關聯的受控識別必須至少具備這些權限,才能存取 Azure Key Vault 中的客戶自控金鑰:

  • wrapkey
  • unwrapkey
  • get

如需有關金鑰權限的詳細資訊,請參閱金鑰類型、演算法和作業

Azure 原則提供內建原則,需要儲存體帳戶將客戶自控金鑰用於 Blob 儲存體和 Azure 檔案儲存體工作負載。 如需詳細資訊,請參閱 Azure 原則內建原則定義中的儲存體一節。

適用於佇列和資料表的客戶自控金鑰

儲存體帳戶啟用客戶自控金鑰時,儲存在佇列和資料表儲存體中的資料不會自動受到客戶自控金鑰的保護。 您可以在建立儲存體帳戶時,選擇將這些服務納入這個保護範圍。

若要深入了解如何建立儲存體帳戶並支援將客戶自控金鑰用於佇列和資料表,請參閱建立支援資料表和佇列使用客戶自控金鑰的帳戶

當儲存體帳戶已設定客戶自控金鑰時,Blob 儲存體和 Azure 檔案儲存體中的資料一律會受到客戶自控金鑰的保護。

啟用儲存體帳戶的客戶自控金鑰

當您為儲存體帳戶設定客戶自控金鑰時,Azure 儲存體會使用相關金鑰保存庫或受控 HSM 中的客戶自控金鑰,來包裝帳戶的根資料加密金鑰。 根加密金鑰的保護會變更,但 Azure 儲存體帳戶中的資料會一直保持加密。 您不需要採取任何其他動作,即可確保您的資料持續加密。 客戶自控金鑰的保護會立即生效。

您可以隨時切換客戶受控金鑰和 Microsoft 管理的金鑰。 如需有關 Microsoft 管理的金鑰詳細資訊,請參閱關於加密金鑰管理

金鑰保存庫需求

儲存金鑰的金鑰保存庫或受控 HSM 必須同時啟用虛刪除和清除保護。 Azure 儲存體加密支援 2048、3072 和 4096 大小的 RSA 和 RSA-HSM 金鑰。 如需金鑰的相關詳細資訊,請參閱關於金鑰

使用金鑰保存庫或受控 HSM 會有相關聯的成本。 如需詳細資訊,請參閱 Key Vault 價格

具有位於相同租用戶中之金鑰保存庫的客戶自控金鑰

您可以在金鑰保存庫和儲存體帳戶位於相同租用戶或不同 Microsoft Entra 租用戶中的情況下,對客戶自控金鑰進行設定。 若要了解在金鑰保存庫和儲存體帳戶位於相同的租用戶時如何使用客戶自控金鑰來設定 Azure 儲存體加密,請參閱下列其中一篇文章:

當您在金鑰保存庫位於相同租用戶的情況下啟用客戶自控金鑰時,您必須指定受控識別,以用來授權存取包含該金鑰所在的金鑰保存庫。 受控識別可以是使用者指派或系統指派的受控識別:

  • 當您在建立儲存體帳戶時設定客戶自控金鑰,必須使用使用者指派的受控識別。
  • 當您在現有的儲存體帳戶上設定客戶自控金鑰時,您可以使用使用者指派的受控識別或系統指派的受控識別。

若要深入了解系統指派與使用者指派的受控識別,請參閱 Azure 資源受控識別。 若要了解如何建立及管理使用者指派的受控識別,請參閱管理使用者指派的受控識別

具有位於不同租用戶中之金鑰保存庫的客戶自控金鑰

若要了解在金鑰保存庫和儲存體帳戶位於不同 Microsoft Entra 租用戶中時如何使用客戶自控金鑰來設定 Azure 儲存體加密,請參閱下列其中一篇文章:

搭配受控 HSM 的客戶自控金鑰

您可以使用 Azure Key Vault 受控 HSM 為新的或現有帳戶設定客戶自控金鑰。 您還可以使用與儲存體帳戶位於相同租用戶中的受控 HSM 或使用位於不同租用戶中的受控 HSM,來設定客戶自控金鑰。 在受控 HSM 中設定客戶自控金鑰的流程與在金鑰保管庫中設定客戶自控金鑰的流程相同,但權限則略有不同 如需詳細資訊,請參閱使用儲存在 Azure Key Vault 受控 HSM 中的客戶自控金鑰來設定加密

更新金鑰版本

遵循密碼編譯最佳做法意味著週期性地變換保護您儲存體帳戶帳戶的金鑰,通常至少每兩年一次。 Azure 儲存體絕不會修改金鑰保存庫中的金鑰,但您可以設定金鑰變換原則,以根據您的合規性需求變換密鑰。 如需詳細資訊,請參閱在 Azure Key Vault 中設定密碼編譯金鑰自動變換 (部分機器翻譯)。

金鑰在金鑰保存庫中變換之後,您必須更新儲存體帳戶的客戶自控金鑰設定,才能使用新的金鑰版本。 客戶自控金鑰同時支援保護帳戶之金鑰的金鑰版本自動和手動更新。 您可以決定在設定客戶自控金鑰時或更新設定時,要使用的方法。

當您修改金鑰或金鑰版本時,根加密金鑰的保護會變更,但 Azure 儲存體帳戶中的資料會一直保持加密。 您不需要在電腦上執行其他動作,就可以確保您的資料受到保護。 輪換金鑰版本並不會影響效能。 輪換金鑰版本不會產生任何停機時間。

重要

若要變換金鑰,請根據您的合規性需求,在金鑰保存庫或受控 HSM 中建立新版本的金鑰。 Azure 儲存體不會處理金鑰輪替,因此您必須對金鑰保存庫中的金鑰進行輪替管理。

當您變換客戶自控金鑰使用的金鑰時,該動作目前不會記錄至 Azure 儲存體的 Azure 監視器記錄中。

自動更新金鑰版本

若要在有可用的新版本時自動更新客戶自控金鑰,請在您使用客戶自控金鑰啟用儲存體帳戶的加密時,省略金鑰版本。 如果省略金鑰版本,則 Azure 儲存體會每天檢查金鑰保存庫或受控 HSM 是否有新版本的客戶自控金鑰。 如果有可用的金鑰新版本,Azure 儲存體會自動使用最新版本的金鑰。

Azure 儲存體每天只會檢查金鑰保存庫是否有新的金鑰版本一次。 當您輪替金鑰時,請務必等候 24 小時,再停用舊版金鑰。

如果之前已將儲存體帳戶設定為手動更新金鑰版本並想要將其變更為自動更新,則可能需要將金鑰版本明確變更為空白字串。 如需如何執行該動作的詳細資料,請參閱設定會自動更新金鑰版本的加密

手動更新金鑰版本

若要使用特定版本的金鑰進行 Azure 儲存體加密,請在使用客戶自控金鑰啟用儲存體帳戶的加密時指定該金鑰版本。 如果您指定金鑰版本,則 Azure 儲存體會使用該版本進行加密,直到您手動更新金鑰版本為止。

明確指定金鑰版本時,您必須在建立新版本時,手動更新儲存體帳戶以使用新的金鑰版本 URI。 若要了解如何將儲存體帳戶更新為使用新版本的金鑰,請參閱使用儲存在 Azure Key Vault 中的客戶自控金鑰來設定加密,或使用儲存在 Azure Key Vault 受控 HSM 中的客戶自控金鑰來設定加密

撤銷使用客戶自控金鑰的儲存體帳戶存取權

若要撤銷使用客戶自控金鑰的儲存體帳戶存取權,請停用金鑰保存庫中的金鑰。 若要了解如何停用密鑰,請參閱撤銷使用客戶自控金鑰的儲存體帳戶存取權 (部分機器翻譯)。

停用金鑰之後,客戶端即無法呼叫自資源或其中繼資料讀取或寫入其中的作業。 所有使用者嘗試呼叫這些作業都會失敗,並顯示錯誤碼 403 (禁止)。

若要再次呼叫這些作業,請還原客戶自控金鑰的存取權。

撤銷客戶自控金鑰或是停用或刪除金鑰之後,可以繼續執行下列各節中未列出的所有資料作業。

若要撤銷客戶自控金鑰的存取權,請使用 PowerShellAzure CLI

撤銷金鑰之後失敗的 Blob 儲存體作業

撤銷金鑰之後失敗的 Azure 檔案儲存體作業

Azure 受控磁碟的客戶自控金鑰:

客戶自控金鑰也可用於管理 Azure 受控磁碟的加密作業。 客戶自控金鑰在受控磁碟上的行為會與 Azure 儲存體資源的行為不同。 如需詳細資訊,請參閱適用於 Windows 的 Azure 受控磁碟的伺服器端加密,或適用於 Linux 的 Azure 受控磁碟的伺服器端加密

下一步