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

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

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

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

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

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

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

Кто-нибудь может предложить какой-нибудь метод, как этого добиться?

Спасибо.

0
задан 1 September 2021 в 14:44
1 ответ

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

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

0
ответ дан 1 September 2021 в 15:13

Теги

Похожие вопросы