Более безопасный доступ к мультитенантным веб-приложениям из локальной сети

Служба приложений Azure
Виртуальная сеть Azure
Приватный канал Azure
Azure Key Vault
Учетные записи службы хранилища Azure

В этой статье приводятся сведения о настройке более безопасного частного подключения к мультитенантному веб-приложению или приложению-функции из локальной сети или виртуальной сети Azure. Здесь также показано, как настроить подключение с более высоким уровнем безопасности между приложением и другими службами PaaS Azure через Приватный канал Azure без использования общедоступного Интернета.

Архитектура

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

Скачайте файл Visio для этой архитектуры.

Поток данных

  • С помощью интеграции с региональной виртуальной сетьюСлужбы приложений Azure веб-приложение подключается к службам Azure через делегированную подсеть интеграции с виртуальной сетью в виртуальной сети Azure.

    • Подсети интеграции виртуальной сети и подсети частной конечной точки являются отдельными виртуальными сетями в разных подписках. Обе сети пиринговые с концентратором виртуальная сеть в рамках конфигурации сети концентратора и периферийной сети. Для интеграции с региональной виртуальной сетью одноранговые виртуальные сети должны находиться в одном регионе Azure.
  • Приватный канал Azure служба настраивает частную конечную точкудля служб PaaS, веб-приложений, базы данных SQL Azure, учетной записи хранения Azure и хранилища ключей Azure в виртуальная сеть частной конечной точки.

    В этом примере эта виртуальная сеть предназначена только для развертывания частных конечных точек. Другие ресурсы, такие как виртуальные машины, не будут развернуты в этой виртуальной сети. Будущий спрос на добавление частных конечных точек учитывается при выборе размера подсети.

  • Локальная сеть и виртуальные сети Azure могут быть подключены через VPN-подключение типа "сеть — сеть" (S2S) или частный пиринг Azure ExpressRoute. Пользователи в локальной сети получают доступ к приложению в частном порядке и с повышенной безопасностью только через частную сеть.

    В этом примере локальная сеть и виртуальные сети Azure подключены через частный пиринг ExpressRoute.

  • Для локальной сети, которая уже имеет решение системы доменных имен (DNS), локальное решение DNS настроено для пересылки DNS-трафика в частную запись DNS Azure (например, azurewebsites.net) через условный сервер пересылки, который перенаправит запрос в входящий конечную точку службы dns private Resolver, развернутую в Azure. Приватный сопоставитель DNS запрашивает Azure DNS и получает сведения о канале виртуальной сети Azure Частная зона DNS. Затем разрешение выполняется частной зоной DNS, связанной с виртуальной сетью.

    Частные зоны DNS также развертываются в той же подписке, что и виртуальная сеть частной конечной точки.

    В этом примере компьютер пересылки DNS с IP-адресом 192.168.0.254 в локальной сети перенаправит все запросы разрешения DNS на имя узла, azurewebsites.net в конечную точку входящего трафика службы DNS в Azure по адресу 10.0.0.132. Затем запросы разрешаются службой DNS, предоставленной Azure, которая имеет IP-адрес 168.63.129.16 через зону Azure Частная зона DNS, связанную с виртуальной сетью.

    Конечная точка исходящего трафика необходима для включения разрешения имен условного перенаправления из Azure в локальную среду, других поставщиков облачных служб или внешних DNS-серверов с помощью набора правил пересылки DNS.

    Настройка набора правил пересылки DNS не требуется для этого сценария.

    Конфигурация службы приложений должна иметь следующий вид.

    Ключ Значение
    WEBSITE_DNS_SERVER 168.63.129.16
  • Виртуальные сети связываются со всеми частными зонами DNS Azure.

    • Виртуальная сеть, имеющая частные конечные точки, автоматически связывается с частными зонами DNS. Другие виртуальные сети необходимо связать отдельно.
  • Веб-приложение взаимодействует с частными конечными точками служб PaaS в виртуальной сети частной конечной точки через Брандмауэр Azure.

  • Правила приложения в Брандмауэре Azure настроены для разрешения взаимодействия между подсетью интеграции виртуальной сети и частными конечными точками ресурсов PaaS. Используются следующие целевые полные доменные имена (FQDN):

    • *.azurewebsites.net
    • *.database.windows.net
    • *.core.windows.net
    • *.vaultcore.azure.net
  • Конфигурация брандмауэра и виртуальной сети для Azure SQL, учетной записи службы хранилища Azure и Azure Key Vault разрешает трафик только из подсети интеграции с виртуальной сетью. Конфигурация не позволяет взаимодействовать с другими виртуальными сетями или с общедоступным Интернетом.

Компоненты

  • Служба приложений Azure размещает веб-приложения и приложения-функции, позволяя выполнять автоматическое масштабирование и обеспечивать высокую доступность без необходимости управлять инфраструктурой.
  • База данных SQL Azure — это управляемая служба реляционной базы данных общего назначения, которая поддерживает реляционные данные, пространственные данные, JSON и XML.
  • Учетная запись службы хранилища Azure — это уникальное пространство имен для данных службы хранилища Azure, доступное из любой точки мира по протоколам HTTP или HTTPS. Она содержит все объекты данных службы хранилища Azure: большие двоичные объекты, общие папки, очереди, таблицы и диски.
  • Azure Key Vault — это служба для безопасного хранения ключей API, паролей, сертификатов, криптографических ключей и других секретов, используемых облачными приложениями и службами. Она также обеспечивает безопасный доступ к этим объектам.
  • Виртуальная сеть Azure — это фундаментальный стандартный блок для частных сетей в Azure. Такие ресурсы Azure, как виртуальные машины, могут безопасно взаимодействовать друг с другом, Интернетом и локальными сетями через виртуальные сети.
  • Приватный канал Azure предоставляет частную конечную точку в виртуальной сети для подключения к службам Azure PaaS, таким как служба хранилища Azure и База данных SQL, а также к пользовательским или партнерским службам.
  • Azure ExpressRoute расширяет локальные сети на облако Майкрософт с помощью частного подключения. Вместо использования Azure ExpressRoute можно установить VPN-подключение типа "сеть — сеть" между локальной средой и сетью Azure.
  • Брандмауэр Azure — это управляемая облачная служба сетевой безопасности, которая защищает ресурсы виртуальной сети Azure.
  • Частная зона DNS предоставляет надежную и безопасную службу DNS для управления доменными именами в виртуальной сети и их разрешения.
  • Частный сопоставитель DNS позволяет запрашивать частные зоны Azure DNS из локальной среды и наоборот, не развертывая DNS-серверы на основе виртуальных машин.

Альтернативные варианты

Для частного подключения альтернативным подходом является использование Среды службы приложений для размещения веб-приложения в изолированной среде. Для базы данных можно развернуть Управляемый экземпляр SQL Azure в виртуальной сети — в этом случае интеграция с виртуальной сетью или частные конечные точки не требуются. Как правило, эти предложения являются более дорогостоящими, так как они поддерживают однотенантное изолированное развертывание и предоставляют другие возможности.

Если у вас есть Среда службы приложений, но не используется Управляемый экземпляр SQL, вы по-прежнему можете использовать частную конечную точку для частного подключения к базе данных SQL Azure. Если у вас уже есть Управляемый экземпляр SQL, но вы используете Службу приложений с несколькими клиентами, вы по-прежнему можете использовать интеграцию с региональной виртуальной сетью для подключения к частному адресу Управляемого экземпляра SQL.

Для некоторых других служб Azure, таких как Key Vault или служба хранилища, альтернативы использованию частных конечных точек для обеспечения высокобезопасных и частных подключений из веб-приложений не существует.

Потенциальные варианты использования

  • Доступ к мультитенантным веб-приложениям или приложению-функции приватно с улучшенной безопасностью через частную конечную точку из локальной сети или из виртуальных сетей Azure.
  • Подключение из веб-приложения или приложения-функции в платформу Azure как услуга (PaaS):
    • Другое веб-приложение
    • База данных SQL
    • Хранилище Azure
    • Key Vault
    • Любая другая служба, которая поддерживает частные конечные точки Azure для входящих подключений

Рекомендации

Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Безопасность

Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в разделе "Общие сведения о компоненте безопасности".

Использование частной конечной точки для веб-приложения обеспечивает следующие преимущества.

  • Защита веб-приложения путем настройки частной конечной точки без публичной доступности.
  • Более безопасное подключение к веб-приложениям из локальных сетей, которые подключаются к виртуальной сети с помощью частного пиринга VPN или ExpressRoute. Разрешение входящих подключений к веб-приложению только из локальной сети или виртуальной сети Azure.
  • Предотвращение утечки данных из виртуальной сети.

Вы можете повысить уровень безопасности входящего подключения к веб-приложению, защитив приложение с помощью службы, такой как Шлюз приложений или Azure Front Door, используя при необходимости возможности Брандмауэра веб-приложений Azure. При включении частной конечной точки для веб-приложения конфигурация ограничения доступа к веб-приложению не оценивается.

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

При настройке маршрутизации приложений в виртуальную сеть можно направить либо весь трафик, либо только частный трафик (также известный как трафик RFC1918). Это поведение настраивается с помощью параметра Маршрутизировать весь трафик. Если параметр Маршрутизировать весь трафик отключен, веб-приложение направляет в виртуальную сеть только частный трафик. Чтобы заблокировать трафик к общедоступным адресам, включите параметр Маршрутизировать весь трафик для виртуальной сети. Чтобы блокировать исходящий трафик к ресурсам в виртуальной сети или Интернете, можно также использовать группу безопасности сети. Если параметр Маршрутизировать весь трафик отключен, действие групп безопасности сети будет распространяться только на трафик RFC1918.

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

Важным вопросом обеспечения безопасности в этом сценарии является настройка брандмауэра для ресурсов PaaS.

Параметры брандмауэра Базы данных SQL

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

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

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

  • Создайте правило виртуальной сети, разрешающее трафик только из региональной подсети, делегированной путем интеграции с виртуальной сетью — подсети интеграции с виртуальной сетью в этом примере. Для делегированной подсети должна быть настроена конечная точка службы для Microsoft.Sql, чтобы база данных могла опознать трафик из этой подсети.
  • Настройте брандмауэр для запрета доступа из общедоступной сети. При этом отключаются все остальные правила брандмауэра, а база данных становится доступной только через ее частную конечную точку.

Вариант запрета доступа к общедоступной сети является наиболее безопасной конфигурацией. Но при его использовании доступ к базе данных возможен только через виртуальную сеть, в которой размещена частная конечная точка. Для подключения к базе данных все объекты, кроме веб-приложения, должны иметь прямое подключение к виртуальной сети.

Например, развертывания или срочные подключения вручную из SQL Server Management Studio (SSMS) на локальных компьютерах могут обращаться к базе данных только с помощью соединения VPN или ExpressRoute с виртуальной сетью. Вы также можете удаленно подключиться к виртуальной машине в виртуальной сети и использовать в ней SSMS. В исключительных ситуациях можно временно разрешить доступ к общедоступной сети и снизить риск, используя другие параметры конфигурации.

Варианты использования учетной записи хранения и брандмауэра Key Vault

Учетные записи хранения и хранилища ключей имеют общедоступную конечную точку, доступную из Интернета. Можно также создать частные конечные точки для учетной записи хранения и хранилища ключей. При этом службам назначается частный IP-адрес из виртуальной сети, а весь трафик между виртуальной сетью и соответствующей службой защищается по приватному каналу.

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

Availability

Приватный канал поддержка Служба приложений, База данных SQL Azure, служба хранилища Azure и Azure Key Vault доступна во всех общедоступных регионах. Сведения о доступности проверка в других регионах см. в разделе Приватный канал Azure доступности

Приватный канал вводит в архитектуру еще один компонент и вопросы доступности. Для службы "Приватный канал" действует Соглашение об уровне обслуживания, обеспечивающее высокий уровень доступности. Его необходимо принимать во внимание при вычислении составного Соглашения для всего решения.

Масштабируемость

Сведения о том, как интегрировать Приватный канал Azure для служб PaaS с Частными зонами DNS Azure в сетевых архитектурах топологии "Звезда", см. в статье Интеграция Приватного канала и DNS в большом масштабе.

Глобальный пиринг

Любая служба в любом регионе Azure, которая может подключаться через виртуальную сеть, может получать доступ к частным конечным точкам служб PaaS, например через пиринг виртуальных сетей в топологиях типа "Звезда". Однако для интеграции региональной виртуальной сети Службы приложений одноранговые виртуальные сети должны находиться в одном регионе Azure.

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

Чтобы подключить веб-приложения к виртуальной сети в другом регионе, можно настроить интеграцию с виртуальной сетью, требующую шлюза. Ограничение заключается в том, что интеграция с виртуальной сетью, требующая шлюза, не может использоваться с виртуальной сетью, подключенной через Azure ExpressRoute.

Ведение журналов и мониторинг

Приватный канал Azure интегрирован со службой Azure Monitor, что позволяет узнать, передаются ли данные.

Вы также можете использовать службу устранения неполадок с подключениями, доступную в Наблюдателе за сетями Azure, чтобы отслеживать подключение виртуальной машины в виртуальной сети к полному доменному имени ресурса частной конечной точки.

Оптимизация затрат

Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".

В поддерживаемых ценовых категориях Служба приложений "Базовый", "Стандартный", "Премиум" версии 2, "Премиум" версии 3, "Изолированный" версии 2 Служба приложений и Функции Azure "Премиум" нет дополнительных затрат.

Частная конечная точка доступна для веб-приложений Windows и веб-приложений Linux, контейнерных или нет, размещенных в планах "Базовый", "Стандартный", "Премиум" версии 2 и "Изолированный" версии 2 Служба приложений, а также для приложений-функций, развернутых в плане "Премиум".

Служба "Приватный канал Azure", которая включает частные конечные точки для служб PaaS, имеет связанные затраты на основе почасовой платы и уровня "Премиум" для пропускной способности. Дополнительные сведения см. на странице цен на Приватный канал. За подключения из виртуальной сети заказчика к Брандмауэру Azure в центральной виртуальной сети взимается плата. За подключения от Брандмауэра Azure в центральной виртуальной сети к частным конечным точкам в одноранговой виртуальной сети плата не взимается.

Цены на Частную зону DNS Azure зависят от количества зон DNS, размещенных в Azure, и количества полученных запросов DNS.

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

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально она была написана следующими участник.

Автор субъекта:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Следующие шаги