Централизованное конфигурирование и безопасность приложений AzureCentralize Azure app configuration and security

Облачные приложения часто выполняются на нескольких виртуальных машинах или контейнерах в нескольких регионах и используют несколько внешних служб.Cloud-based applications often run on multiple virtual machines or containers in multiple regions, and use multiple external services. Создание надежного и масштабируемого приложения в распределенной среде представляет серьезную сложность.Creating a robust and scalable application in a distributed environment presents a significant challenge. Настройка приложений Azure позволяет управлять и хранить все параметры конфигурации и флаги функций приложения, а также параметры безопасного доступа в одном месте.Azure App Configuration lets you manage and store all your app's configuration settings and feature flags, and secure access settings, in one place.

Конфигурация приложения легко работает с Azure Key Vault, в которой хранятся пароли, ключи и секреты для безопасного доступа.App Configuration works seamlessly with Azure Key Vault, which stores passwords, keys, and secrets for secure access. В этой статье представлены рекомендации по использованию конфигурации приложений и Key Vault в средах разработки и Azure.This article presents best practices for using App Configuration and Key Vault in development and Azure environments.

Варианты использованияUse cases

Несмотря на то, что любое приложение может использовать конфигурацию приложений Azure, большинство типов приложений имеют наибольшее преимущество:While any application can use Azure App Configuration, the following types of applications benefit most from it:

  • микрослужбы на основе службы Azure Kubernetes, Azure Service Fabric или других контейнерных приложений, развернутых в одном или нескольких географических регионах;Microservices based on Azure Kubernetes Service, Azure Service Fabric, or other containerized apps deployed in one or more geographies
  • бессерверные приложения, включая Функции Azure, или другие приложения без отслеживания состояния на основе событий;Serverless apps, which include Azure Functions or other event-driven stateless compute apps
  • Приложения, использующие конвейер непрерывного развертывания (CD)Apps that use a continuous deployment (CD) pipeline

АрхитектураArchitecture

На следующих схемах показано, как конфигурация приложения Azure и Azure Key Vault могут работать вместе для управления приложениями и их защиты в средах разработки и Azure .The following diagrams show how Azure App Configuration and Azure Key Vault can work together to manage and secure apps in Development and Azure environments.

Среда разработкиDevelopment environment

В среде разработки приложение использует Visual Studio или Azure CLI 2,0 Azure.Identity для входа и отправки запроса на проверку подлинности в Azure Active Directory (Azure AD).In the development environment, the app uses Visual Studio or Azure CLI 2.0 Azure.Identity to sign in and send an authentication request to Azure Active Directory (Azure AD).

Среда разработки

Промежуточная или рабочая среда AzureAzure staging or production environment

В промежуточной и рабочей средах Azure для входа и проверки подлинности используется управляемое удостоверение службы Azure (MSI) .The Azure staging and production environments use an Azure Managed Service Identity (MSI) for sign-in and authentication.

Среда Azure

Скачайте файл Visio этой архитектуры.Download a Visio file of this architecture.

Поток данныхData flow

  1. Приложение отправляет запрос проверки подлинности во время отладки в Visual Studio или выполняет проверку подлинности с помощью MSI в Azure.The application sends an authentication request during debugging in Visual Studio, or authenticates via the MSI in Azure.
  2. После успешной проверки подлинности Azure AD возвращает маркер доступа.Upon successful authentication, Azure AD returns an access token.
  3. Пакет SDK для конфигурации приложения отправляет запрос с маркером доступа для чтения значения Секретури конфигурации приложения KeyVault для хранилища ключей приложения.The App Configuration SDK sends a request with the access token to read the app's App Configuration KeyVault secretURI value for the app's key vault.
  4. После успешной авторизации Конфигурация приложения отправляет значение конфигурации.Upon successful authorization, App Configuration sends the configuration value.
  5. Используя удостоверение входа, приложение отправляет запрос на Azure Key Vault для получения секрета приложения для секретури , отправленного этой конфигурацией приложения.Using the sign-in identity, the app sends a request to Azure Key Vault to retrieve the application secret for the secretURI that App Configuration sent.
  6. После успешной авторизации Key Vault возвращает секретное значение.Upon successful authorization, Key Vault returns the secret value.

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

  • Лучше использовать другое хранилище ключей для каждого приложения в каждой среде: Разработка, предварительная версия Azure и Рабочая среда Azure.It's best to use a different key vault for each application in each environment: development, Azure pre-production, and Azure production. Использование разных хранилищ помогает предотвратить совместное использование секретов в разных средах и снижает угрозу в случае нарушения.Using different vaults helps prevent sharing secrets across environments, and reduces the threat in case of a breach.

  • Чтобы использовать эти сценарии, удостоверение входа должно иметь роль модуля чтения данных конфигурации приложения в ресурсе конфигурации приложения и иметь явные политики доступа для получения секретов в Azure Key Vault.To use these scenarios, the sign-in identity must have the App Configuration Data Reader role in the App Configuration resource, and have explicit access policies for retrieving the secrets in Azure Key Vault.

Дальнейшие действияNext steps