Azure 資料表儲存體 提供一個結構化、非關聯資料的 NoSQL 鍵值儲存。 表格安全與其他 Azure 儲存體 資料服務共享基本原則,但有幾個具體細節——包括獨特的 Microsoft Entra ID 授權介面,以及與 Azure Cosmos DB for Table API 的重疊——值得關注。
Note
本文介紹了 Azure 資料表儲存體 特有的安全實務。 關於帳號層級的安全指引,請參見「保護你的 Azure 儲存體 帳號」。
服務特定安全性
Azure 資料表儲存體 與 Azure Cosmos DB for Table API 都暴露出類似的表格資料模型,但它們的安全能力有顯著差異。 在專案啟動時,選擇符合你安全需求的平台。 它們之間的資料遷移並不簡單。
當你需要專用吞吐量、全球分布或每個資料表工作負載進行更細緻的網路隔離時,請使用 Azure Cosmos DB for Table:Cosmos DB for Table API 是一個獨立資源,擁有自己的私有端點、防火牆和 IAM 設定,獨立於任何儲存帳號。 當資料表工作負載的網路或控管需求,與共用您一般用途儲存體帳戶的其他工作負載不同時,這可提供隔離的影響範圍。 欲了解更多資訊,請參閱《Azure Cosmos DB 表格介紹》。
當你需要帳號層級的共置(包含 blob、檔案和佇列)時,請使用 Azure 資料表儲存體:Table Storage 存在於一個通用儲存帳號中,因此四大資料服務皆需一套網路規則、私有端點與身份政策。 Cosmos DB for Table 是一個獨立資源,擁有獨立的安全配置。
身分識別與存取權管理
使用 Microsoft Entra ID 授權資料表資料操作:Entra ID 授權可免除應用程式碼中帳戶金鑰的需求,並提供基於身份的稽核追蹤。 請盡可能在資料表範圍指派內建的 Storage Table Data Reader 或 Storage Table Data Contributor 角色。 欲了解更多資訊,請參閱授權使用 Microsoft Entra ID 存取資料表。
將角色指派範圍限定為特定資料表:內建的資料表資料角色支援資料表層級範圍。 當服務只需要存取一個資料表時,應將角色指派在資料表資源上,而非帳戶。
將 SAS 標記範圍至特定分割區與列鍵範圍:SAS 表格支援分割鍵與列鍵區段限制。 使用權杖可將存取限制在多租用戶資料表中單一租用戶的資料列,或限制在特定的資料切割範圍內。 如需詳細資訊,請參閱使用共用存取簽章 (SAS) 對 Azure 儲存體資源授與有限存取權。
僅授予所需的特定資料表操作:SAS 資料表分別支援
query、add、update及delete權限。 讀取器型呼叫端應只能持有update,絕不可持有query或delete。
資料保護
Table Storage 將實體儲存為平面屬性袋,且不需每個實體使用 ACL。 在分割策略中考慮安全性,而不是試圖事後改裝存取控制。
分割表以符合存取邊界:當一個資料表服務多個租戶或分類層級時,選擇一個分割鍵,依租戶或分類將實體分組。 結合 SAS 分割金鑰範圍限制,強制租戶隔離,無需每個租戶設置獨立資料表。
不要在實體屬性中儲存機密資訊或非必要的個人資料:對資料表或分割區具有
query或read存取權限的任何主體,都可以看見這些實體。 請將秘密存放在 Azure Key Vault 中並在實體中加入參照,同時盡量減少您放入可查詢屬性中的個人資料。在應用層加密敏感屬性值:對於必須保密的屬性值,在插入或更新前,先用 金鑰保存庫 的金鑰加密用戶端的值。 此加密獨立於對整個資料表施加的儲存端加密。 如需詳細資訊,請參閱關於金鑰。
記錄和監視
啟用資料表作業的診斷設定:將
StorageRead、StorageWrite和StorageDelete類別傳送至 Log Analytics。 請針對非預期的授權方法發出警示,特別是在應停用共用金鑰存取的帳戶上,卻仍發生共用金鑰存取的情況。 欲了解更多資訊,請參閱監控 Azure 資料表儲存體。大量刪除或更新操作警示:大量
DeleteEntity或UpdateEntity活動若偏離資料表的基準,可能表示資料遭到刪除或竄改。 建立基準並警示偏差。
相關資安文章
- 保護你的 Azure 儲存體 帳戶 - 跨領域 Azure 儲存體 安全指引。
- 保護你的 Azure Blob 儲存體 - Blob 專屬安全。
- 保護你的 Azure 檔案儲存體 - 檔案共享安全。
- 保護 Azure 佇列儲存體 - 佇列專屬安全性。