Поделиться через


Безопасность в Службе приложений Azure

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

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

Дополнительные сведения о безопасности инфраструктуры и платформы в Azure см. в Центре управления безопасностью Azure.

В следующих разделах описаны дополнительные способы защиты приложения службы приложений от угроз.

HTTPS и сертификаты

Службу приложений можно использовать для защиты приложений через HTTPS. При создании приложения его доменное имя <app_name>.azurewebsites.net по умолчанию уже доступно через HTTPS. Если вы настроите личный домен для приложения, помогите защитить его с помощью TLS/SSL-сертификата , чтобы клиентские браузеры могли обеспечить безопасные подключения HTTPS к вашему пользовательскому домену.

Служба приложений поддерживает следующие типы сертификатов:

  • Управляемый сертификат службы бесплатных приложений
  • сертификат Службы приложений;
  • сторонний сертификат;
  • сертификат, импортированный из Azure Key Vault.

Дополнительные сведения см. в разделе "Добавление TLS/SSL-сертификатов" и управление ими в службе приложений Azure.

Незащищенные протоколы (HTTP, TLS 1.0, FTP)

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

Служба приложений Azure поддерживает следующие версии TLS для входящих запросов к веб-приложению:

  • TLS 1.3: последняя и самая безопасная версия.
  • TLS 1.2. Минимальная версия TLS по умолчанию для новых веб-приложений.
  • TLS 1.1 и TLS 1.0: версии, поддерживаемые для обратной совместимости, но не считаются защищенными отраслевыми стандартами, такими как стандарт безопасности данных индустрии оплаты (PCI DSS).

Минимальную версию TLS можно настроить для входящих запросов к вашему веб-приложению и сайту системы управления версиями (SCM). По умолчанию для минимального значения задано значение TLS 1.2. Сведения о том, как разрешить различные версии TLS, см. в разделе "Настройка общих параметров".

Служба приложений поддерживает как FTP, так и FTPS для развертывания файлов приложений. Новые приложения по умолчанию принимают только FTPS. Чтобы повысить безопасность, используйте FTPS вместо FTP, если это возможно. Если вы не используете FTP/S, его следует отключить. Дополнительные сведения см. в статье "Развертывание приложения в службе приложений Azure с помощью FTP/S".

Ограничения статических IP-адресов

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

Для службы приложений в Windows можно также динамически ограничить IP-адреса, настроив файлweb.config . Дополнительные сведения см. в разделе Dynamic IP Security <dynamicIpSecurity>.

Аутентификация и авторизация клиента

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

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

Служба приложений поддерживает аутентификацию и авторизацию через несколько поставщиков проверки подлинности, включая Microsoft Entra ID, учетные записи Microsoft, Facebook, Google и X. Дополнительные сведения см. в разделе «Проверка подлинности и авторизация в службе приложений Azure».

Аутентификация между службами

При проверке подлинности в серверной службе служба приложений предоставляет два механизма в зависимости от ваших потребностей:

Подключение к удаленным ресурсам

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

Кроме того, убедитесь, что служба Azure обеспечивает наименьший возможный набор IP-адресов. Сведения о исходящих IP-адресах приложения см. в статье "Поиск исходящих IP-адресов".

Ресурсы Azure

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

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

Ресурсы в виртуальной сети Azure

Приложение может получить доступ к ресурсам в виртуальной сети Azure через интеграцию виртуальной сети с помощью VPN типа "точка — сеть". Затем приложение может получить доступ к ресурсам в виртуальной сети с помощью частных IP-адресов. Подключение типа "точка — сеть" по-прежнему проходит через общие сети в Azure.

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

Локальные ресурсы

Вы можете безопасно получить доступ к локальным ресурсам, таким как базы данных, следующим образом:

  • Гибридное подключение устанавливает подключение типа "точка-точка" к удаленному ресурсу с помощью туннеля протокола TCP, использующего TLS 1.2 с ключами общей подписи доступа.

  • Интеграция виртуальной сети с VPN-подключением типа "сеть-сеть" или Среда службы приложений с VPN-подключением типа "сеть-сеть". Эти методы подключают виртуальную сеть приложения к локальной сети, как описано в разделе "Ресурсы" в виртуальной сети Azure, но виртуальная сеть подключается к локальной сети через VPN типа "сеть — сеть". В этих топологиях сети приложение может подключаться к локальным ресурсам так же, как он подключается к другим ресурсам в своей виртуальной сети.

Секреты приложений

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

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

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

Сетевая изоляция

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

Уровень "Изолированный" обеспечивает полную сетевую изоляцию, выполняя приложения в выделенной среде службы приложений в собственном экземпляре виртуальной сети Azure. С помощью сетевой изоляции можно:

  • Обслуживайте приложения через выделенную общедоступную конечную точку с выделенными внешними интерфейсами.
  • Обслуживайте внутренние приложения с помощью внутренней подсистемы балансировки нагрузки (ILB), которая разрешает доступ только из виртуальной сети Azure. У балансировщика ILB есть IP-адрес из вашей частной подсети, который обеспечивает полную изоляцию ваших приложений от Интернета.
  • Использовать внутренний балансировщик нагрузки (ILB) позади брандмауэра веб-приложения (WAF). WAF предлагает фильтрацию URI корпоративного уровня, защиту от распределенных атак отказа в обслуживании (DDoS) и предотвращение SQL-инъекций для общедоступных приложений.

Защита от атак DDoS

Для веб-рабочих нагрузок используйте защиту WAF и Azure DDoS для защиты от новых атак DDoS. Другой вариант — развернуть Azure Front Door с WAF для защиты на уровне платформы от атак DDoS на уровне сети.