Доступ через брандмауэр из службы приложений Azure к хранилищу больших двоичных объектов с использованием виртуальной сети - PullRequest
0 голосов
/ 13 мая 2019

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

Я хочу быть в состоянии достичь этого без настройки VPN-соединения «точка-сайт». Для настройки виртуальной сети в Azure я предпринял следующие шаги:

  • Создана сетевая группа безопасности "securitygroup-frontend", добавлена ​​пользовательская Правило входящего трафика называется Web с источником: метка сервиса, метка сервиса источника: Интернет, диапазоны портов источника: *, пункт назначения: любой, порт пункта назначения диапазоны: 80, 443, протокол: любой, действие: разрешить, приоритет: 100
  • Создана виртуальная сеть с адресным пространством 192.168.0.0/23 и подсетью, называемой диапазоном адресов внешнего интерфейса 192.168.0.0/26, с группой безопасности сети: внешний интерфейс группы безопасности и делегирование подсети в Microsoft.Web / serverFarms и конечные точки службы Microsoft.Storage
  • Пошли в службу приложений -> Сеть -> Настройка интеграции VNet -> Добавьте предварительный просмотр VNet и выберите созданную вами подсеть
  • Отправлено в хранилище -> Брандмауэры и виртуальные сети -> Настроить интеграцию с VNet -> Выберите «Выбранные сети» и добавьте в только что созданную виртуальную сеть и подсеть.

Мне пришлось перенести диагностику и журналы Azure, например, для хранилища ключей, служебной шины и sql azure, в собственное хранилище больших двоичных объектов, поскольку для них требуется хранилище больших двоичных объектов вне виртуальной сети, и их нельзя заставить работать внутри. Служба приложений находится в стандартном плане. Служба приложений, хранилище больших двоичных объектов и виртуальная сеть находятся в одном регионе.

Этот вопрос и ответ не дают никакой информации: https://social.msdn.microsoft.com/Forums/azure/en-US/9f4d8aeb-68a6-4ec1-9e11-bee2d1301792/allow-access-to-azure-storage-account-only-from-an-app-service?forum=windowsazurewebsitespreview

Вышеуказанные шаги блокируют доступ службы приложений к хранилищу больших двоичных объектов и любым активам в нем, возвращая ошибку: (403) Запрещено. Если я удалю виртуальную сеть из хранилища BLOB-объектов, она будет работать нормально. Что я делаю не так?

1 Ответ

1 голос
/ 14 мая 2019

Да, вы можете сделать это с помощью виртуальной сети, но вам необходимо развернуть веб-приложение в виртуальной сети с средами обслуживания приложений . Вы не можете сделать это с интеграцией с VNet . Интеграция служб Azure в виртуальную сеть Azure обеспечивает частный доступ к службе с виртуальных машин или вычисление ресурсов в виртуальной сети. Однако служба веб-приложений в обычном плане обслуживания приложений является мультитенантной. С ASE вы можете развернуть его в своей виртуальной сети.

Более подробную информацию и пояснения вы можете получить из этой темы . Согласно комментарию из безмолвного , вы также можете рассмотреть возможность развертывания вашего веб-приложения внутри контейнера, который может быть развернут в виртуальной сети с некоторыми ограничениями.

Обновление

Иногда порядок развертывания сети важен. В вашем случае вы включаете конечную точку сервиса перед интеграцией в VNet. Я предлагаю снять ограничение NSG в подсети интегрированного приложения VNet для теста. Тогда вы можете проверить следующие шаги.

Во-первых, вы можете развернуть новую интеграцию VNet с неиспользуемой подсетью . После завершения интеграции VNet и перезапуска веб-приложения можно включить конечную точку службы и делегирование подсети для этой подсети. В конце вы можете добавить подсеть в брандмауэр учетной записи хранения.

Новая версия в предварительном просмотре, а не GA в настоящее время. Это могут быть не все доступные функции. Вы также можете проверить следующие характеристики.

  • Для использования новой функции интеграции с VNet шлюз не требуется gate
  • Вы можете получить доступ к ресурсам через соединения ExpressRoute без какой-либо дополнительной настройки, кроме интеграции с подключенной к ExpressRoute виртуальной сетью.
  • Приложение и виртуальная сеть должны находиться в одном регионе.
  • Для новой функции требуется неиспользуемая подсеть в виртуальной сети Resource Manager .
  • Ваше приложение должно быть в развертывании службы приложений Azure, которое может масштабироваться до Premium v2.
  • Ваш план обслуживания приложений должен быть планом Standard, Premium или PremiumV2. Производственные нагрузки не поддерживаются новой функцией, пока это в Preview
  • Новая функция интеграции VNet не работает для приложений в среде службы приложений.
  • Невозможно удалить виртуальную сеть со встроенным приложением.
  • Таблицы маршрутов и глобальный пиринг еще не доступны с новой интеграцией VNet.
  • Один адрес используется для каждого экземпляра плана службы приложений. Поскольку размер подсети не может быть изменен после назначения, используйте подсеть, которая может больше, чем охват вашего максимального размера шкалы. A / 27 с 32 адресами рекомендуемый размер, который соответствует плану службы приложений масштабируется до 20 экземпляров.
  • Вы можете использовать защищенные ресурсы Service Endpoint, используя новую возможность интеграции VNet. Для этого включите конечные точки службы на подсеть, используемая для интеграции VNet.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...