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

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

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

  • Ресурсы вашего приложения защищены от ресурсов Azure других клиентов.
  • Экземпляры виртуальной машины и программное обеспечение среды выполнения регулярно обновляются для обнаружения новых уязвимостей.
  • Обмен секретными данными (например, строками подключения) между приложением и другими ресурсами Azure (например, базой данных SQL) остается в пределах Azure и не выходит за рамки сети. При сохранении секретные данные всегда шифруются.
  • Все сообщения, передаваемые с помощью функций подключения службы приложений, например гибридного подключения, шифруются.
  • Подключения к удаленным инструментам управления, например Azure PowerShell, Azure CLI, пакетам SDK Azure, интерфейсам API REST, шифруются.
  • Круглосуточное предотвращение угроз позволяет защитить инфраструктуру и платформу от вредоносных программ, атак типа "отказ в обслуживании" (DDoS), атак типа "злоумышленник посередине" (MITM) и других угроз.

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

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

Протокол HTTPS и сертификаты

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

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

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

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

Чтобы защитить ваше приложение от всех незашифрованных подключений (HTTP), служба приложений предоставляет конфигурацию в один щелчок для принудительного использования HTTPS. Незащищенные запросы отсеиваются еще до того, как они достигнут кода приложения. Дополнительные сведения см. в разделе Принудительное использование HTTPS.

Протокол TLS версии 1.0 больше не считается безопасным в соответствии с отраслевыми стандартами, такими как PCI DSS. Служба приложений позволяет отключить устаревшие протоколы путем принудительного использования протокола TLS версии 1.1 или 1.2.

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

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

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

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

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

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

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

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

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

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

Есть три типа удаленных ресурсов, к которым приложению может потребоваться доступ:

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

Ресурсы Azure

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Дополнительные сведения см. в статье Общие сведения о средах службы приложений.