Блокировка прямого доступа к статическому веб-сайту в хранилище BLOB-объектов Azure и разрешение только Azure Front Door

Блокировка прямого доступа к статическому веб-сайту в хранилище BLOB-объектов Azure и разрешение только Azure Front Door

У меня есть веб-приложение SPA, развернутое в хранилище BLOB-объектов Azure, URL-адрес которого является общедоступным. Например:https://example.z23.web.core.windows.net/

Я хотел бы использовать Azure Front Door с WAF для повышения безопасности. Есть ли способ заблокировать прямой доступ по URL-адресу большого двоичного объекта? Я погуглил и нашел много ответов, один из них — просто разрешить только AzureFrontDoor.BackendIP-адреса в сетевых конфигурациях учетной записи хранения. Я попробовал, и это сработало.

Однако этот метод все еще имеет лазейку, поскольку любой может просто создать Front Door и указать URL моего BLOB-объекта (если он каким-то образом его обнаружит).

(Это может показаться глупым): если я воспользуюсь этим методом и назову свою учетную запись хранения случайным образом, например, использовать урезанный случайный GUID. (https://6c4a89d5dba04b8fbe1ed7f.z23.web.core.windows.net/) Может ли это снизить вероятность того, что кто-то может обнаружить мой URL-адрес и обойти систему безопасности?

Другой метод, которыйAzure рекомендуетзаключается в проверке X-Azure-FDIDзаголовка, включающего идентификатор моего конкретного экземпляра Front Door, и отбрасывании запросов, не содержащих этот заголовок. Я спросил своего разработчика, возможно ли это в веб-приложении Vue, и он сказал, что нам нужно включить идентификатор Front Door в код, который выполняется на стороне клиента, таким образом, в любом случае делая идентификатор общедоступным. (Это не Stack Overflow, но если кто-то может что-то посоветовать по этому поводу, было бы здорово)

Другой способ, который я нашел, — это использование Azure Front Door Premium SKU, которыйподдерживаетподключение к Storage Account с помощью Private Link. Это идеально, но стоит колоссальных 165 долларов в месяц. Я бы предпочел развернуть свой код в App Service, так как он может изначально ограничить доступ только из Front Door.

Может ли кто-нибудь подсказать, как этого добиться?

Спасибо.

решение1

Проверка заголовка X-Azure-FDID в сочетании с ограничением IP — единственный способ заблокировать это в настоящее время, не переходя по маршруту частной ссылки. Поэтому вам нужно будет получить код вашего приложения для проверки этого, учитывая, что у вас нет ничего другого между FD и учетной записью хранения.

Хотя наличие этого в вашем клиентском коде раскроет идентификатор, это не имеет значения. Ограничения IP означают, что вы разрешаете трафик только с экземпляров Front Door, и злоумышленник не сможет установить этот идентификатор на другом экземпляре FD.

Связанный контент