阻止直接訪問 Azure Blob 儲存上的靜態網站並僅允許 Azure Front Door
我在 Azure Blob Storage 上部署了一個 SPA webapp,其 URL 是公開的。例如https://example.z23.web.core.windows.net/
我想使用帶有 WAF 的 Azure Front Door 來提高安全性。有沒有辦法阻止對 blob URL 的直接訪問?我用Google搜尋並找到了很多答案,其中之一就是在儲存帳戶網路配置中只允許
AzureFrontDoor.Backend
IP。我試過了,它奏效了。但是,這種方法仍然存在漏洞,因為任何人都可以創建一個 Front Door 並指向我的 blob URL(如果他們碰巧以某種方式發現它)。
(這可能聽起來很愚蠢):如果我繼續使用此方法並隨機命名我的儲存帳戶,例如,使用精簡的隨機 GUID。(https://6c4a89d5dba04b8fbe1ed7f.z23.web.core.windows.net/)這可以減少有人發現我的 URL 並繞過安全性的可能性嗎?
Azure 推薦的另一種方法是檢查
X-Azure-FDID
包含我的特定 Front Door 實例的 ID 的標頭並丟棄不包含此標頭的請求。我問我的開發人員這是否可以在 Vue webapp 上實現,他說我們需要在客戶端執行的程式碼中包含 Front Door ID,因此無論如何都會將 ID 公開。(這不是堆棧溢出,但如果有人可以就此提出任何建議,那就太好了)我發現的另一種方法是使用 Azure Front Door Premium SKU,它支持使用專用連結連接到儲存帳戶。這是完美的,但每月花費高達 165 美元。我寧願將我的程式碼部署在 App Service 上,因為它本機只能限制來自 Front Door 的訪問。
任何人都可以提出任何方法來實現這一目標嗎?
謝謝。
檢查 X-Azure-FDID 標頭並結合 IP 限制是目前鎖定此問題而不關閉專用連結路由的唯一方法。因此,您需要獲取應用程式碼來驗證這一點,因為您在 FD 和儲存帳戶之間沒有任何其他內容。
雖然在您的客戶端程式碼中使用它會暴露 ID,但這並不重要。IP 限制意味著您只允許來自 Front Door 實例的流量,並且攻擊者無法在不同的 FD 實例上設置該 ID。