可以使用自己的加密密鑰來保護(hù)存儲帳戶中的數(shù)據(jù)。指定客戶托管密鑰時,該密鑰用于保護(hù)和控制對數(shù)據(jù)加密密鑰的訪問。使用客戶托管密鑰可以更靈活地管理訪問控制。
必須使用Azure Key Vault來存儲客戶管理的密鑰??梢詣?chuàng)建自己的密鑰并將其存儲在密鑰保管庫中,也可以使用Azure密鑰保管庫API來生成密鑰。存儲帳戶和Key Vault必須在同一個區(qū)域和同一個Azure Active Directory(Azure AD)租戶中,但可以在不同的訂閱中。
有關(guān)Azure Key Vault的詳細(xì)信息,請參閱什么是Azure Key Vault?。
關(guān)于客戶托管密鑰
下圖顯示了Azure存儲如何通過Azure Active Directory和密鑰保管庫使用客戶管理的密鑰發(fā)出請求:
Azure存儲中客戶管理的密鑰的工作原理示意圖
以下列表解釋了示意圖中帶編號的步驟:
1.Azure Key Vault管理員向與存儲帳戶關(guān)聯(lián)的托管標(biāo)識授予對加密密鑰的權(quán)限。
2.Azure存儲管理員使用存儲帳戶的客戶管理密鑰配置加密。
3.Azure存儲使用與存儲帳戶關(guān)聯(lián)的托管標(biāo)識,對通過Azure Active Directory訪問Azure Key Vault的活動進(jìn)行身份驗證。
4.Azure存儲使用Azure Key Vault中的客戶密鑰包裝帳戶加密密鑰。
5.對于讀/寫操作,Azure存儲將向Azure Key Vault發(fā)送解包帳戶加密密鑰的請求,以執(zhí)行加密和解密操作。
為存儲帳戶啟用客戶管理的密鑰
在配置客戶托管密鑰時,Azure存儲會在關(guān)聯(lián)的密鑰保管庫中使用客戶托管密鑰來包裝帳戶的根數(shù)據(jù)加密密鑰。啟用客戶托管密鑰不影響性能,并且會立即生效。
在啟用或禁用客戶托管密鑰時,或者在修改密鑰或密鑰版本時,對根加密密鑰的保護(hù)會變化,但你不需要重新加密Azure存儲帳戶中的數(shù)據(jù)。
客戶托管密鑰只能在現(xiàn)有存儲帳戶上啟用。密鑰保管庫必須配置為將權(quán)限授予與存儲帳戶關(guān)聯(lián)的托管標(biāo)識。托管標(biāo)識僅在存儲帳戶創(chuàng)建后可用。
可隨時在客戶管理的密鑰與Microsoft管理的密鑰之間進(jìn)行切換。有關(guān)Microsoft管理的密鑰的詳細(xì)信息,請參閱關(guān)于加密密鑰管理。
若要了解如何使用密鑰保管庫中的客戶管理的密鑰來配置Azure存儲加密,請參閱使用Azure Key Vault中存儲的客戶管理的密鑰配置加密。
重要
客戶托管密鑰依賴于Azure資源的托管標(biāo)識,后者是Azure AD的一項功能。托管標(biāo)識當(dāng)前不支持跨目錄方案。在Azure門戶中配置客戶管理的密鑰時,系統(tǒng)會在幕后自動將一個托管標(biāo)識分配到你的存儲帳戶。如果隨后將訂閱、資源組或存儲帳戶從一個Azure AD目錄移到另一個目錄,與存儲帳戶關(guān)聯(lián)的托管標(biāo)識不會傳輸?shù)叫伦鈶?,因此客戶管理的密鑰可能不再起作用。有關(guān)詳細(xì)信息,請參閱Azure資源的常見問題解答和已知問題中的“在Azure AD目錄之間轉(zhuǎn)移訂閱”。
Azure存儲加密支持2048、3072和4096大小的RSA密鑰。有關(guān)密鑰的詳細(xì)信息,請參閱關(guān)于密鑰。
使用密鑰保管庫會有相關(guān)的成本。有關(guān)詳細(xì)信息,請參閱Key Vault定價。
更新密鑰版本
使用客戶管理的密鑰配置加密時,有兩個選項可用于更新密鑰版本:
·手動更新密鑰版本:若要在有新版本可用時自動更新客戶管理的密鑰的密鑰版本,請在為存儲帳戶啟用“使用客戶管理的密鑰進(jìn)行加密”時省略密鑰版本。如果省略了密鑰版本,Azure存儲每天都會在密鑰保管庫中檢查是否有客戶管理的密鑰的新版本。Azure存儲將自動使用最新版本的密鑰。
·手動更新密鑰版本:若要對Azure存儲加密使用特定版本的密鑰,請在為存儲帳戶啟用“使用客戶管理的密鑰進(jìn)行加密”時指定該密鑰版本。如果指定密鑰版本,則Azure存儲將使用該版本進(jìn)行加密,直到手動更新密鑰版本。
顯式指定密鑰版本后,必須手動更新存儲帳戶,以便在創(chuàng)建新版本時使用新密鑰版本URI。若要了解如何將存儲帳戶更新為使用新的密鑰版本,請參閱使用Azure Key Vault中存儲的客戶管理的密鑰配置加密。
更新密鑰版本時,根加密密鑰的保護(hù)會更改,但是Azure存儲帳戶中的數(shù)據(jù)不會重新加密。用戶無需執(zhí)行任何其他操作。
備注
若要輪換密鑰,請根據(jù)你的符合性策略,在密鑰保管庫中創(chuàng)建新版本的密鑰??梢允謩虞啌Q密鑰,或創(chuàng)建一個函數(shù)以便按計劃輪換密鑰。
撤消對客戶管理的密鑰的訪問權(quán)限
可以隨時撤銷存儲帳戶對客戶托管密鑰的訪問權(quán)限。在撤銷對客戶托管密鑰的訪問權(quán)限之后,或者在禁用或刪除密鑰之后,客戶端無法調(diào)用在Blob或其元數(shù)據(jù)中讀取或?qū)懭霐?shù)據(jù)的操作。對于所有用戶來說,嘗試調(diào)用以下任何操作都會失敗,錯誤代碼為“403(禁止訪問)”:
·在請求URI上通過include=metadata參數(shù)調(diào)用列出Blob
·獲取Blob
·獲取Blob屬性
·獲取Blob元數(shù)據(jù)
·設(shè)置Blob元數(shù)據(jù)
·通過x-ms-meta-name請求標(biāo)頭調(diào)用快照Blob
·復(fù)制Blob
·從URL復(fù)制Blob
·設(shè)置Blob層
·放置塊
·從URL放置塊
·追加塊
·從URL追加塊
·放置Blob
·放置頁
·從URL放置頁
·增量復(fù)制Blob
若要再次調(diào)用這些操作,請還原對客戶托管密鑰的訪問權(quán)限。
此部分中未列出的所有數(shù)據(jù)操作可以在撤銷客戶托管密鑰或者禁用或刪除某個密鑰后繼續(xù)。
若要撤銷對客戶托管密鑰的訪問權(quán)限,請使用PowerShell或Azure CLI。
Azure托管磁盤的客戶托管密鑰
客戶托管密鑰也可用于管理Azure托管磁盤的加密。客戶管理的密鑰對托管磁盤的行為不同于對Azure存儲資源的行為。有關(guān)詳細(xì)信息,請參閱適用于Windows的Azure托管磁盤的服務(wù)器端加密或適用于Linux的Azure托管磁盤的服務(wù)器端加密。