Azure 儲存體 在單一儲存體帳戶中為 Blob、檔案、佇列和資料表提供可擴充且高耐久性的雲端儲存。 由於儲存帳號可能持有不同敏感度的資料,且常成為資料外洩和勒索軟體攻擊的目標,因此應採取有意識的措施保護帳號、其持有的資料以及存取者身份。
本文提供安全建議,幫助保護您的 Azure 儲存體 帳號。 這些建議適用於帳戶中的所有資料服務 (Blob、檔案、佇列和資料表)。 關於各資料服務的具體指引,請參閱本文末尾的 相關安全條目 。
本文中的安全性建議會實作零信任原則:「明確驗證」、「使用最低許可權存取」和「假設違規」。 如需完整的 零信任 指引,請參閱 零信任 指引中心。
服務特定安全性
Azure 儲存體 具有架構特性,會影響你如何安全地部署它。 你建立帳號時所做的選擇——部署模式、類型、冗餘和端點設定——之後很難更改,且會影響每個使用該帳號的工作負載的安全狀態。
儲存帳號架構
使用 Azure Resource Manager 部署模型:使用 Azure Resource Manager 部署模型建立新儲存帳號。 Resource Manager 帳號支援 Azure 角色基礎存取控制(RBAC)、管理身份、Microsoft Entra ID 資料授權、資源鎖定、標籤及政策——這些功能在經典部署模型中皆無法提供。 遷移所有剩餘的經典帳號。 欲了解更多資訊,請參閱將經典儲存帳號遷移至 Azure Resource Manager。
依工作負載、環境與敏感度建立獨立儲存帳號:為開發、預製及生產建立獨立帳號,並為不同敏感度分類的資料建立獨立帳號。 儲存帳號是共享金鑰的信任邊界與政策邊界——在同一帳號中混合工作負載會增加入侵的範圍,並使最小權限存取更難建模。
每個區域使用一個帳戶,以實現區域隔離:將帳戶設於使用這些帳戶的工作負載所在區域,可減少跨區域的資料移動,並簡化合規邊界。 多區域設計建議將區域帳號與地理冗餘儲存或物件複製結合,而非從單一帳號服務所有區域。 如需詳細資訊,請參閱 Azure 儲存體冗餘。
Azure 儲存體 的適當使用方式
不要把 Azure 儲存體 帳號金鑰當作長效應用程式憑證:Storage 帳號金鑰會完全控制帳號,無法被範圍限制。 應用程式應使用 Microsoft Entra ID 搭配受管理身份,或在無法使用 Entra ID 時,使用短暫的使用者委派共享存取簽章(SAS)令牌。 如需更多資訊,請參閱授權存取 Azure 儲存體 中的資料。
不要把 Azure 儲存體 當作通用的秘密儲存庫:秘密、連線字串和憑證都應該放在 Azure Key Vault,它提供輪換、存取政策、硬體安全模組(HSM)保護和稽核追蹤。 欲了解更多資訊,請參閱 Azure Key Vault 總覽。
網路安全
儲存帳號預設是可透過網路連線的。 減少網路攻擊面是保護帳號免受未經授權存取、資料外洩及偵查的最有效改變。
停用儲存帳號的公網存取權:當你的客戶端完全在 Azure 或可透過 Private Link 存取時,將帳號的公用網路存取設為「停用」,這樣只有透過私有端點的請求才被接受。 如需詳細資訊,請參閱設定 Azure 儲存體防火牆和虛擬網路。
使用私人端點存取虛擬網路:私有端點會將虛擬網路中的私有 IP 位址分配給儲存帳號,並將流量路由至 Microsoft 骨幹網。 搭配停用公用網路存取時,私人端點可消除網際網路曝露。 如需詳細資訊,請參閱針對 Azure 儲存體使用私人端點。
當私有端點不實用時,請用儲存防火牆限制公共存取:如果用戶端必須透過公共網路存取該帳號,請將防火牆預設動作設為 拒絕 ,並只允許特定 IP 範圍、虛擬網路子網(透過服務端點)或需要存取的資源實例。 如需詳細資訊,請參閱設定 Azure 儲存體防火牆和虛擬網路。
允許受信任的 Microsoft 服務在需要存取帳戶時使用:預設為拒絕的防火牆規則會封鎖來自其他 Azure 服務(例如 Azure 備份、Log Analytics 和 Microsoft Defender for Storage)以及來自 Azure 入口網站和診斷管線的要求。 在可信服務列表中新增「允許 Azure 服務」以存取此儲存帳號例外,這樣你所依賴的第一方服務就能在不開放公共網際網路的情況下存取該帳號。 欲了解更多資訊,請參閱 授予對受信任的 Azure 服務的存取權限。
授與特定資源執行個體的存取權,而非廣泛授與受信任的服務:請優先使用資源執行個體規則;相較於一般的「允許受信任的 Microsoft 服務」例外,這類規則會授權已命名的 Azure 資源及其受控識別。 資源實例規則會產生較小的信任表面積。 如需詳細資訊,請參閱 授與 Azure 資源實例的存取權。
將儲存帳號與網路安全邊界關聯:網路安全邊界定義了平台作為服務資源之間的邏輯邊界,並預設阻擋邊界外的流量,提供超越每個帳號防火牆規則的深度防禦。 欲了解更多資訊,請參閱 Azure 儲存體 的網路安全邊界。
強制執行最低 TLS 版本為 1.2 或更新:設定儲存帳號的最低 TLS 版本,以拒絕協商舊版、已棄用版本的客戶端。 欲了解更多資訊,請參閱「設定儲存帳號的最低所需傳輸層安全版本(TLS)。
要求安全傳輸(HTTPS):啟用 安全傳輸所需 特性,以拒絕任何透過 HTTP 發出的請求。 此要求適用於 REST 端點,以及透過 SMB 存取 Azure 檔案儲存體。 欲了解更多資訊,請參閱 「儲存帳戶要求安全轉移」。
- 某些情境,例如較舊的中小企業客戶端或舊有工具,則需要 HTTP。 在這種情況下,將這些用戶端隔離在受控的網路區段中,並讓它們儘快停止使用 HTTP。
限制跨租戶物件複製與複製操作:設定儲存帳號僅允許同一租戶內的來源帳號進行複製與物件複製操作,或僅限於允許列出的來源帳號。 此配置防止持有資料平面權限的使用者跨租戶邊界的資料移動。 更多資訊請參閱「允許的複製操作範圍」及「防止跨 Microsoft Entra 租戶的物件複製」。
使用 VNet 服務標籤來設定 Azure 儲存體 的外發規則:當你限制虛擬網路到 Azure 儲存體 的外站流量時,請使用
Storageservice tag(或區域特定變體)而非硬編碼的 IP 範圍。 Microsoft 會隨著 IP 領域的演變來維護服務標籤。 如需詳細資訊,請參閱 Azure 服務標籤概觀。偏好使用 Microsoft 全球網路進行入站路由:將儲存帳號的網路路由偏好設定為 Microsoft 網路路由,使入站流量能進入 Microsoft 骨幹網,且端對端保持在 Microsoft 網路上。 網際網路路由流量會更早離開 Microsoft 網路,因而增加暴露於公用網際網路路徑的風險。 如需詳細資訊,請參閱設定 Azure 儲存體的網路路由喜好設定。
身分識別與存取權管理
儲存帳號支援兩種授權模式:Microsoft Entra ID(基於身份、可稽核、可撤銷)以及共享金鑰(一種對稱祕密,具備完整帳號存取權)。 盡可能將工作負載移至 Microsoft Entra ID,並將共享金鑰視為舊有備援。
使用 Microsoft Entra ID 授權資料存取:Microsoft Entra ID 授權使用 OAuth 2.0 令牌,並整合條件存取、管理身份及 RBAC 稽核軌跡。 在資料平面存取方面,它在各方面都優於共享金鑰。 如需更多資訊,請參閱授權存取 Azure 儲存體 中的資料。
禁止共享金鑰授權:將屬性設定
allowSharedKeyAccess為false,使帳號拒絕任何以帳號金鑰簽署的請求。 僅接受 Microsoft Entra ID 以及在適用情況下的使用者委派 SAS 請求。 如需詳細資訊,請參閱防止 Azure 儲存體帳戶使用共用金鑰授權。在最小合理的範圍內指派 RBAC 角色:盡可能在容器、分享、隊列或資料表層級指派內建的儲存資料平面角色(例如, Storage Blob 資料讀取器、 儲存佇列資料貢獻者),而非帳號或訂閱層級。 如需詳細資訊,請參閱「使用 Azure 角色型存取控制授權對 Blob 的存取」。
- 新增 ABAC 條件以進一步限制資料平面存取:Azure 屬性基礎存取控制(ABAC)允許您在角色指派中附加條件,例如限制存取具有特定索引標籤或特定路徑前綴下的 blob。 如需詳細資訊,請參閱使用 Azure 角色指派與 ABAC 條件來授權 Blob 的存取權。
當需要 SAS 時,請使用使用者委派 SAS,而非服務 SAS 或帳戶 SAS:使用者委派 SAS 是以 Microsoft Entra 認證簽署,而不是使用帳戶金鑰,因此撤銷使用者委派金鑰會立即使以該金鑰簽發的所有 SAS 失效。 用帳號金鑰簽署的服務與帳號 SAS 代幣無法單獨撤銷。 如需詳細資訊,請參閱使用共用存取簽章 (SAS) 對 Azure 儲存體資源授與有限存取權。
將每個 SAS 的權限範圍限制為最低權限與最短壽命:只授予特定操作(例如
read,但不write授予),並設定無儲存存取政策支援的服務 SAS 的有效期限為一小時或更短。 欲了解更多資訊,請參閱 使用 SAS 的最佳實務。設定帳戶上的 SAS 到期政策:設定帳戶發行的 SAS 代幣有效期上限。 違規行為會被記錄下來,這樣你才能在程式碼庫中找到並修正長期存在的 SAS。 如需詳細資訊,請參閱建立共用存取簽章的到期原則。
僅將 SAS 權杖限制為 HTTPS:必須發出 SAS 時,僅在 SAS 簽章中允許 HTTPS,以避免權杖以明文方式外洩。 如需詳細資訊,請參閱使用共用存取簽章 (SAS) 對 Azure 儲存體資源授與有限存取權。
如果必須使用帳號金鑰,請保護並輪替它們:將帳號金鑰存入 Azure Key Vault,執行時取用,而非嵌入設定,並依固定頻率輪換。 制定書面的金鑰輪替程序,在輪替期間同時使用兩把金鑰,以避免停機。 如需詳細資訊,請參閱管理儲存體帳戶存取金鑰。
使用 Microsoft Entra Privileged Identity Management (PIM) 即時指派具權限的儲存體角色:對於授予儲存體管理平面變更權限的角色 (例如 Storage Account Contributor 或擁有者),請要求進行 PIM 啟用,並搭配核准與多重要素驗證,而非使用常設指派。 如需詳細資訊,請參閱什麼是 Microsoft Entra Privileged Identity Management?。
資料保護
Azure 儲存體 預設會用 Microsoft 管理的金鑰加密所有靜態資料。 本節建議增加了客戶控制權,防止意外或惡意修改,並減少資料傳輸與靜止時的暴露。
配置客戶管理金鑰(CMK)以進行靜態加密:使用您在 Azure Key Vault 或 Managed HSM 管理的金鑰作為帳戶加密金鑰。 CMK 允許你獨立於 Microsoft 管理的金鑰之外,輪換、稽核並撤銷加密金鑰。 它支援合規要求,強制客戶金鑰控制。 如需詳細資訊,請參閱適用於 Azure 儲存體加密的客戶自控金鑰。
- 對於高敏感度資料,請使用受管理 HSM 或 HSM 支援的 金鑰保存庫 金鑰:受 HSM 保護的金鑰儲存在 FIPS 140-3 Level 3 驗證硬體中,且永遠不會離開邊界。 如需詳細資訊,請參閱使用儲存在 Azure Key Vault 受控 HSM 中的客戶自控金鑰來設定加密。
啟用基礎設施加密以進行防禦縱深雙重加密:基礎設施加密會在主加密層之上再加一層服務管理的加密。 你必須在帳號建立時啟用它。 欲了解更多資訊,請參閱 啟用基礎設施加密以實現資料雙重加密。
使用加密範圍來隔離特定容器或 blob 的加密:加密範圍允許你在單一帳號內以容器層級或 blob 層級的細緻度套用不同的金鑰或金鑰輪換政策。 此功能對於共用帳號但需要每個租戶金鑰控制的多租戶工作負載非常有用。 欲了解更多資訊,請參閱 Blob 儲存體 的加密範圍。
啟用所有傳輸中資料的 Azure 儲存體 加密:與最低 TLS 版本 1.2 或更新版本合併
Secure transfer required = enabled(參見網路安全)。 它們共同確保帳號拒絕未加密及弱加密的連線。對於最敏感的資料使用用戶端加密:對於明文絕不會出現在伺服器上的資料,請在上傳前在用戶端加密。 用戶端加密是服務端加密的補充,可與 CMK 搭配使用以實現分層保護。 關於各服務 SDK 支援與模式,請參閱 相關安全文章。
以資源鎖保護儲存帳號:套用 CanNotDelete 或 唯讀 鎖,以防止帳號本身被意外或惡意刪除或重新設定。 鎖定適用於帳戶資源,而非其中的資料,因此鎖定是虛刪除與不可變性的補充,而非取代。 如需詳細資訊,請參閱 將 Azure Resource Manager 鎖定套用至記憶體帳戶。
關於資料服務專屬的資料保護特性(blob 不可變性與 WORM 政策、blob 加密範圍),請參閱 相關安全條目中的相應子條目。
記錄和監視
儲存帳號經常成為憑證竊取、資料外洩及設定錯誤的目標。 你需要持續的日誌記錄和威脅偵測,才能快速偵測並回應攻擊。
啟用 Microsoft Defender for Storage:Defender for Storage 提供威脅偵測、Blob 上傳時的惡意軟體掃描,以及敏感資料探索。 它會標記異常的存取模式、已知的惡意 IP 和 Tor 出口,以及異常的認證活動。 在訂閱或儲存帳號層級啟用。 欲了解更多資訊,請參閱 Microsoft Defender 儲存概述。
在接受不受信任內容的帳戶上,為 Blob 上傳作業啟用惡意程式掃描:惡意程式掃描會檢查上傳的 Blob,並在惡意內容提供給下游取用者之前,將其標記或移除。 欲了解更多資訊,請參閱 Defender 中的惡意軟體掃描以進行儲存。
啟用敏感資料威脅偵測:敏感資料發現會對帳戶內的資料進行分類,並優先對存放敏感資訊的容器發出警示。 欲了解更多資訊,請參閱 Defender 儲存中的敏感資料發現。
將診斷設定傳送到 Log Analytics 工作區:在帳號及每個資料服務(Blobs、檔案、佇列、表格)上設定診斷設定,以便將
StorageRead、StorageWriteStorageDelete日誌以及所有指標傳送給 Log Analytics。 依照您的法規遵循要求,將記錄保留至規定期間。 如需詳細資訊,請參閱監視 Azure 儲存體。審核每個請求的授權方式:儲存日誌記錄每個請求是否以 Microsoft Entra ID、共享金鑰、SAS 或匿名授權。 定期查詢日誌,以偵測未預期的授權方法,尤其是在停用共用金鑰後仍出現共用金鑰的使用情形,或在停用匿名存取後仍出現匿名存取的情形。 欲了解更多資訊,請參閱針對 Azure 儲存體 的監控請求。
高訊號安全事件警示:設定 Azure 監視器 警示,針對金鑰再生、防火牆規則變更、公共網路存取變更、應停用的帳戶共用金鑰使用情況,以及 Defender for Storage 警示。 如需詳細資訊,請參閱 Azure 監視器中的記錄警示。
將日誌轉發至中央 SIEM:企業級回應時,將 Log Analytics 的儲存日誌轉發至 Microsoft Sentinel 或其他 SIEM,使儲存事件與身份、網路及端點訊號相互關聯。 欲了解更多資訊,請參閱「Connect Azure 儲存體 to Microsoft Sentinel」。
合規性和治理
治理控制會讓安全配置成為預設,並自動偵測漂移。 對於超過少數帳戶的倉儲資產,基於政策的執行是維持基線一致性的唯一可持續方式。
應用 Azure 原則 來強化基線儲存安全:指派內建政策,在部署時阻擋不安全的設定,並稽核現有帳號。 高價值內建功能包括:要求安全傳輸、要求最低 TLS 1.2、拒絕公共網路存取、拒絕公開 blob 存取、要求基礎設施加密,以及要求 CMK。 完整列表請參閱 Azure 原則 內建定義 for Azure 儲存體 及 Azure 原則 Regulatory Compliance controls for Azure 儲存體。
以 Microsoft 雲端安全基準(MCSB)為基準:將儲存控制與 MCSB v2 網域對齊,以確保跨服務的安全態勢一致。 欲了解更多資訊,請參閱 Microsoft 雲端安全基準概覽。
標註擁有者、資料分類與環境的儲存帳號:治理政策、成本管理及事件回應皆依賴一致的標籤。 透過 Azure 原則 套用標籤,避免在建立時被遺漏。
在儲存受規範資料前,請先檢視合規服務:Azure 儲存體 持有常見法規架構(HIPAA、PCI DSS、FedRAMP、ISO 27001 等)的認證。 部署前確認你的工作負擔覆蓋範圍。 欲了解更多資訊,請參閱 Azure 儲存體 合規服務。
備份及復原
跨區域冗餘加上經過驗證的故障轉移程序,為儲存帳號本身提供區域韌性。 關於資料服務專屬的刪除保護(blob 軟刪除、blob 版本控制、變更導向、點點還原、檔案共享軟刪除及快照),請參閱 相關安全條目中相應的子條目。
根據您的復原需求選擇適當的冗餘選項:地理冗餘儲存(GRS/RA-GRS/GZRS/RA-GZRS)會將資料複製到配對區域,並支援客戶主動啟動的故障轉移以提升區域韌性。 區域冗餘儲存(ZRS/GZRS)用於防止區域層級故障。 如需詳細資訊,請參閱 Azure 儲存體冗餘。
不要依賴地理冗餘來防禦勒索軟體:地理冗餘複製會將資料——以及任何損壞或惡意刪除——映照到配對區域。 將 GRS 與不可變性政策、軟刪除及版本控制結合,以防勒索軟體與防篡改。 欲了解更多資訊,請參閱 Azure 儲存體 中的資料保護功能。
演練客戶起始的容錯移轉與容錯回復:對於採用 RA-GRS 或 RA-GZRS 的帳戶,請執行計劃性容錯移轉演練,在實際需要之前先驗證您的復原程序。 如需詳細資訊,請參閱災害復原與儲存帳戶故障轉移。
相關資安文章
關於每個 Azure 儲存體 資料服務的特定安全指引,請參見:
- 保護你的 Azure Blob 儲存體 - 針對 Blob 的專屬安全性,包括 Azure Data Lake Storage、不可變性、版本管理及匿名存取。
- 保護您的 Azure 檔案儲存體 - 檔案共享身份驗證、SMB/NFS 協定安全性,以及共享層級存取控制。
- 保護 Azure 佇列儲存體 - 佇列專用的授權與監視。
- 保護您的 Azure 資料表儲存體 - 資料表專屬授權與 Cosmos DB Table API 考量。