Безопасность в Службе приложений 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 и X. Дополнительные сведения см. в разделе "Проверка подлинности и авторизация" в службе приложение Azure.
Аутентификация между службами
При аутентификации внутренней службы служба приложений предоставляет два разных механизма в зависимости от ваших потребностей:
- Удостоверение службы. Войдите в удаленный ресурс, используя удостоверение самого приложения. Служба приложений позволяет легко создать управляемое удостоверение, которое можно использовать для проверки подлинности в других службах, например в Базе данных SQL Azure или Azure Key Vault. Комплексное руководство по этому подходу см. в статье Руководство. Безопасное подключение к базе данных SQL Azure из службы приложений с использованием управляемого удостоверения.
- От имени (OBO). Предоставьте делегированный доступ к удаленным ресурсам от имени пользователя. С идентификатором Microsoft Entra в качестве поставщика проверки подлинности приложение Служба приложений может выполнять делегированный вход в удаленную службу, например Microsoft Graph или удаленное приложение API в Служба приложений. Соответствующие сведения о сквозной аутентификации для этого подхода см. в статье Руководство по сквозной проверке подлинности и авторизации в службе приложений Azure.
Подключение к удаленным ресурсам
Есть три типа удаленных ресурсов, к которым приложению может потребоваться доступ:
В каждом из этих случаев служба приложений предоставляет способ выполнить безопасные подключения, но вы должны по-прежнему соблюдать рекомендации по безопасности. Например, всегда используйте зашифрованные подключения, даже если внутренний ресурс разрешает незашифрованные. Кроме того, настройте для внутренней службы Azure минимальный набор IP-адресов. Вы можете найти исходящие IP-адреса для приложения, ознакомившись со статьей Входящие и исходящие IP-адреса в Службе приложений Azure.
Ресурсы Azure
Когда приложение подключается к ресурсам Azure, например базе данных SQL и службе хранилища Azure, оно остается в пределах Azure и не пересекает границы сети. Однако оно проходит через общедоступную сеть в Azure, поэтому всегда проверяйте, зашифровано ли оно.
Если приложение размещено в среде службы приложений, вы должны подключиться к поддерживаемым службам Azure с использованием конечных точек служб для виртуальной сети.
Ресурсы внутри виртуальной сети Azure.
Ваше приложение может получить доступ к ресурсам в виртуальной сети Azure через интеграцию виртуальной сети. Интеграция с виртуальной сетью устанавливается с помощью VPN-подключения "точка — сеть". Затем приложение может получить доступ к ресурсам в виртуальной сети, используя их частные IP-адреса. Тем не менее подключение "точка — сеть" все еще проходит через общие сети в Azure.
Чтобы полностью изолировать подключение к ресурсам из общих сетей в Azure, создайте свое приложение в среде службы приложений. Так как среда службы приложений всегда развертывается в выделенную виртуальную сеть, связь между вашим приложением и ресурсами в виртуальной сети полностью изолирована. Сведения о других аспектах безопасности сети в среде службы приложений см. в разделе об изоляции сети.
Локальные ресурсы
Есть три способа безопасного получения доступа к локальным ресурсам, таким как базы данных.
- Гибридное подключение. Устанавливает подключение типа "точка — точка" к удаленному ресурсу через TCP-туннель. TCP-туннель устанавливается с помощью протокола TLS 1.2 с общедоступными ключами подписи (SAS).
- Интеграция виртуальной сети с VPN-подключением "сеть — сеть". Выполняется, как описано в разделе о ресурсах внутри виртуальной сети Azure, но виртуальную сеть можно подключить к локальной сети через VPN-подключение "сеть — сеть". В этой топологии сети приложение может подключаться к локальным ресурсам, например другим ресурсам в виртуальной сети.
- Среда службы приложений с VPN-подключением "сеть — сеть". Сведения описаны в разделе о ресурсах внутри виртуальной сети Azure, но виртуальную сеть можно подключить к локальной сети через VPN-подключение "сеть — сеть". В этой топологии сети приложение может подключаться к локальным ресурсам, например другим ресурсам в виртуальной сети.
Секреты приложений
Не храните секреты приложений, такие как учетные данные базы данных, маркеры 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 на уровне сети.
Дополнительные сведения см. в статье Общие сведения о средах службы приложений.