阻止直接存取 Azure Blob 儲存體上的靜態網站並僅允許 Azure Front Door

阻止直接存取 Azure Blob 儲存體上的靜態網站並僅允許 Azure Front Door

我在 Azure Blob 儲存體上部署了一個 SPA Web 應用程序,其 URL 是公開的。例如https://example.z23.web.core.windows.net/

我想將 Azure Front Door 與 WAF 結合使用來提高安全性。有沒有辦法阻止對 blob URL 的直接存取?我用谷歌搜尋並找到了很多答案,其中之一就是AzureFrontDoor.Backend在儲存帳戶網路配置中僅允許 IP。我嘗試了一下並且成功了。

然而,這種方法仍然有一個漏洞,因為任何人都可以創建一個前門並指向我的 blob URL(如果他們碰巧以某種方式發現它)。

(這可能聽起來很愚蠢):例如,如果我繼續使用此方法並隨機命名我的儲存帳戶,請使用精簡的隨機 GUID。 (https://6c4a89d5dba04b8fbe1ed7f.z23.web.core.windows.net/) 這是否可以降低有人發現我的 URL 並繞過安全措施的可能性?

另一種方法是Azure 推薦是檢查X-Azure-FDID包含我的特定 Front Door 實例 ID 的標頭,並刪除不包含此標頭的請求。我問我的開發人員這在 Vue webapp 上是否可行,他說我們需要將前門 ID 包含在客戶端運行的程式碼中,從而將 ID 暴露給公眾。 (這不是 Stack Overflow,但如果有人能就此提出任何建議,那就太好了)

我發現的另一種方法是使用 Azure Front Door Premium SKU支援使用專用連結連接到儲存帳戶。這很完美,但每月的費用高達 165 美元。我寧願將我的程式碼部署在應用程式服務上,因為它本身只能限制來自 Front Door 的存取。

誰能建議任何方法來實現這一目標?

謝謝。

答案1

檢查 X-Azure-FDID 標頭並結合 IP 限制是目前鎖定此問題而無需關閉專用連結路由的唯一方法。因此,鑑於 FD 和儲存帳戶之間沒有任何其他內容,您需要取得應用程式程式碼來驗證這一點。

雖然在客戶端程式碼中包含此內容會暴露 ID,但這並不重要。 IP 限製表示您只允許來自 Front Door 執行個體的流量,且攻擊者無法在不同的 FD 執行個體上設定該 ID。

相關內容