Безопасное подключение к службам и базам данных Azure из Служба приложений Azure

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

Сегодня решение о подходе к подключению тесно связано с управлением секретами. Распространенный шаблон использования секретов подключения в строка подключения, таких как имя пользователя и пароль, секретный ключ и т. д., больше не считается наиболее безопасным подходом для подключения. Сегодня риск еще выше, так как субъекты угроз регулярно обходят общедоступные репозитории на GitHub в поисках случайно размещенных секретов подключения. Для облачных приложений лучшее управление секретами заключается в отсутствии секретов вообще. При переходе на Служба приложений Azure приложение может начинаться с подключения на основе секретов, а служба приложений позволяет безопасно хранить секреты. Однако Azure могут обеспечить безопасность внутреннего подключения вашего приложения через проверку подлинности Microsoft Entra, что полностью устраняет секреты в приложении.

Способ подключения Когда использовать
Подключение с идентификацией приложения * Вы хотите полностью удалить учетные данные, ключи или секреты из приложения.
Подчиненная служба Azure поддерживает проверку подлинности Microsoft Entra, например, Microsoft Graph.
* Подчиненный ресурс не должен знать текущего вошедшего пользователя или не требует детализированной авторизации текущего вошедшего пользователя.
Подключение от имени вошедшего пользователя * Приложение должно получить доступ к нижестоящему ресурсу от имени вошедшего пользователя.
Подчиненная служба Azure поддерживает проверку подлинности Microsoft Entra, например, Microsoft Graph.
* Подчиненный ресурс должен выполнять детализированную авторизацию текущего вошедшего пользователя.
Подключение с помощью секретов * Для нижестоящего ресурса требуются секреты подключения.
* Приложение подключается к службам, не Azure, например локальному серверу базы данных.
* Конечный сервис Azure ещё не поддерживает аутентификацию Microsoft Entra.

Подключение, используя удостоверение приложения

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

На следующем рисунке показана служба приложений, подключающаяся к другим службам Azure:

  • Ответ. Пользователь посещает веб-сайт службы приложений Azure.
  • B. Безопасно подключайтесь от App Service к другой службе Azure с помощью управляемой идентификации.
  • C: безопасно подключитесь из App Service к Microsoft Graph с помощью управляемого удостоверения.

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

Примеры использования секретов приложений для подключения к базе данных:

Подключение от имени вошедшего пользователя

Возможно, приложению потребуется подключиться к подчиненной службе от имени пользователя, выполнившего вход. Служба приложений позволяет легко аутентифицировать пользователей с помощью наиболее распространенных поставщиков удостоверений (см. Аутентификацию и авторизацию в Служба приложений Azure и Функции Azure). Если вы используете поставщика Microsoft (Microsoft Entra для аутентификации), вы можете передавать авторизованного пользователя в любую нижестоящую службу. Например:

  • Запустите запрос базы данных, возвращающий конфиденциальные данные, которые пользователь, выполнивший вход, имеет право читать.
  • Получение персональных данных или выполнение действий в качестве пользователя, вошедшего в систему, в Microsoft Graph.

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

Схема архитектуры для учебного сценария.

Ниже описываются наиболее типичные сценарии применения:

Подключение с помощью секретов

Рекомендуется использовать секреты в вашем приложении двумя способами: или храня их в Azure Key Vault, или в параметрах службы приложений.

Использование секретов из Key Vault

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

Преимущества управляемых удостоверений, интегрированных с Key Vault включают:

  • Доступ к секрету хранилища ключей ограничен приложением.
  • Участники приложения, такие как администраторы, могут иметь полный контроль над ресурсами App Service и в то же время не иметь доступа к секретам хранилища ключей.
  • Если код приложения уже обращается к секретам подключения с использованием параметров приложения, никакое изменение ему не требуется.
  • Key Vault обеспечивает мониторинг и аудит того, кто из пользователей получил доступ к секретам.
  • Обновление секретов хранилища ключей не требует изменений в Службе приложений.

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

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

Использование секретов в параметрах приложения

Для приложений, подключающихся к службам с помощью секретов (таких как имена пользователей, пароли и ключи API), Служба приложений безопасно хранит их в параметрах приложения. Эти секреты внедряются в код приложения в качестве переменных среды при запуске приложения. Параметры приложения всегда шифруются при хранении (шифрование в состоянии покоя). Для более расширенного управления секретами, таких как смена секретов, политики доступа и журнал аудита, попробуйте использование Key Vault.

Примеры использования секретов приложений для подключения к базе данных: