Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Подсказка
Это фрагмент из электронной книги «Архитектура облачных нативных приложений .NET для Azure», доступен на .NET Docs или как бесплатный загружаемый PDF-файл, который можно прочитать в автономном режиме.
В отличие от монолитного приложения, в котором все работает в одном экземпляре, облачное приложение состоит из независимых служб, распределенных между виртуальными машинами, контейнерами и географическими регионами. Управление параметрами конфигурации для десятков взаимозависимых служб может быть сложной задачей. Повторяющиеся копии параметров конфигурации в разных расположениях подвержены ошибкам и трудно управлять. Централизованная конфигурация является критически важным требованием для распределенных облачных приложений.
Как описано в главе 1, рекомендации Twelve-Factor приложений требуют строгого разделения между кодом и конфигурацией. Конфигурация должна храниться вне приложения и читаться по мере надобности. Хранение значений конфигурации в виде констант или литеральных значений в коде является нарушением. Одни и те же значения конфигурации часто используются многими службами в одном приложении. Кроме того, мы должны поддерживать одинаковые значения в нескольких средах, таких как разработка, тестирование и рабочая среда. Рекомендуется хранить их в централизованном хранилище конфигурации.
Облако Azure предоставляет несколько отличных вариантов.
Конфигурация приложений Azure
Конфигурация приложений Azure — это полностью управляемая служба Azure, в которой хранятся параметры конфигурации, отличные от секрета, в безопасном централизованном расположении. Сохраненные значения можно совместно использовать между несколькими службами и приложениями.
Служба проста в использовании и предоставляет несколько преимуществ:
- Гибкие представления и сопоставления ключей и значений
- Применение меток Azure для тегирования
- Выделенный пользовательский интерфейс для управления
- Шифрование конфиденциальной информации
- Запросы и пакетное извлечение
Конфигурация приложений Azure сохраняет изменения, внесенные в параметры key-value в течение семи дней. Функция моментального снимка на определенный момент времени позволяет восстановить историю параметра и даже отменить изменения при неудачном развертывании.
Конфигурация приложений автоматически кэширует каждый параметр, чтобы избежать чрезмерных вызовов в хранилище конфигураций. Операция обновления ожидает истечения срока действия кэшированного значения параметра, даже если его значение изменяется в хранилище конфигурации. Срок действия кэша по умолчанию составляет 30 секунд. Вы можете переопределить время окончания срока действия.
Конфигурация приложения шифрует все значения конфигурации при передаче и хранении. Имена ключей и метки используются в качестве индексов для получения данных конфигурации и не шифруются.
Хотя конфигурация приложений обеспечивает защищенное обеспечение безопасности, Azure Key Vault по-прежнему является лучшим местом для хранения секретов приложений. Key Vault обеспечивает шифрование на уровне оборудования, детализированные политики доступа и встроенные операции управления, например для смены сертификатов. Можно создать значения конфигурации приложений, ссылающиеся на секреты, хранящиеся в Key Vault.
Azure Key Vault
Key Vault — это управляемая служба для безопасного хранения и доступа к секретам. Секрет — это все, к чему требуется жестко контролировать доступ, например ключи API, пароли или сертификаты. Хранилище — это логически организованная группа секретов.
Key Vault значительно снижает вероятность случайной утечки секретов. При использовании Key Vault разработчики приложений больше не должны хранить сведения о безопасности в своем приложении. Эта практика устраняет необходимость хранения этих сведений в коде. Например, приложению может потребоваться подключиться к базе данных. Вместо хранения строки подключения в коде приложений она безопасно хранится в Key Vault.
Приложения могут безопасно получить доступ к нужным сведениям с помощью URI. Эти URI позволяют приложениям получать определенные версии секрета. Нет необходимости писать специальный код для защиты любых секретных данных, хранящихся в Key Vault.
Для доступа к Key Vault требуется правильная проверка подлинности и авторизация пользователя. Как правило, каждая облачная микрослужба использует сочетание ClientId/ClientSecret. Важно сохранить эти учетные данные вне системы управления версиями. Рекомендуется задать их в среде приложения. Прямой доступ к Key Vault из AKS можно достичь с помощью Key Vault FlexVolume.
Настройка в eShop
Приложение eShopOnContainers включает файлы параметров локального приложения с каждой микрослужбой. Эти файлы проверяются в системе управления версиями, но не включают рабочие секреты, такие как строки подключения или ключи API. В производственной среде отдельные настройки могут быть перезаписаны переменными среды для каждой службы. Внедрение секретов в переменные среды является распространенной практикой для размещенных приложений, но не предоставляет центральное хранилище конфигурации. Для поддержки централизованного управления параметрами конфигурации каждая микрослужба включает параметр для переключения между использованием локальных параметров или параметров Azure Key Vault.
Ссылки
- Архитектура eShopOnContainers
- Управление микрослужбами и многоконтейнерными приложениями для обеспечения высокого уровня масштабируемости и доступности
- Управление API Azure
- Обзор База данных SQL Azure
- Кэш Azure для Redis
- API Azure Cosmos DB для MongoDB
- Сервисная шина Azure
- Общие сведения о службе Azure Monitor
- eShopOnContainers: создание кластера Kubernetes в AKS
- eShopOnContainers: Azure Dev Spaces
- Azure Dev Spaces