Автоматическая перезагрузка секретов и сертификатов из Key Vault
Конфигурация приложений и Key Vault — это дополняющие службы, которые используются параллельно во многих приложениях. Конфигурация приложений помогает использовать эти службы совместно, создавая ключи в хранилище Конфигурации приложений, которые ссылаются на секреты или сертификаты, хранящиеся в Key Vault. Поскольку Key Vault сохраняет пару из открытого и закрытого ключей сертификата в качестве секрета, приложение может получить любой сертификат в качестве секрета из Key Vault.
Для обеспечения безопасности секреты и сертификаты необходимо периодически менять. После их смены в Key Vault необходимо, чтобы приложение получило последние значения секрета и сертификата. Существует два способа достижения этой цели без перезапуска приложения:
- Обновите ключевое значение Sentinel, чтобы активировать обновление всей конфигурации, перегружая все секреты и сертификаты Key Vault. Дополнительные сведения см. в статье об использовании динамической конфигурации в приложении ASP.NET Core.
- Периодически перезагружайте некоторые или все секреты и сертификаты из Key Vault.
В первом случае необходимо будет обновлять ключевое значение Sentinel в Конфигурации приложения при каждой смене секретов и сертификатов в Key Vault. Этот способ подходит, если необходима принудительная перезагрузка секретов и сертификатов в приложении. Однако после автоматической смены секретов и сертификатов в Key Vault в приложении могут возникать ошибки, если вовремя не обновить значение ключа метки. Второй вариант позволяет полностью автоматизировать этот процесс. Вы можете настроить в приложении перезагрузку секретов и сертификатов из Key Vault в пределах допустимой задержки с момента смены. В этом учебнике будет рассмотрен второй вариант.
Необходимые компоненты
В этом учебнике описана настройка приложения для автоматической перезагрузки секретов и сертификатов из Key Vault. Он составлен на основе учебника по реализации ссылок Key Vault в коде. Перед тем как продолжить, завершите изучение учебника по использованию ссылок Key Vault в приложении ASP.NET Core.
Пакет Microsoft.Azure.AppConfiguration.AspNetCore версии 4.4.0 или более поздней.
Добавление автоматически заменяемого сертификата в Key Vault
Выполните инструкции из учебника по настройке автоматической замены сертификата в Key Vault, чтобы добавить автоматически заменяемый сертификат с именем ExampleCertificate в Key Vault, созданный при изучении предыдущего учебника.
Добавление ссылки на сертификат Key Vault в Конфигурации приложений
На портале Azure выберите Все ресурсы, а затем экземпляр хранилища Конфигурации приложений Azure, созданный по инструкциям из предыдущего учебника.
Выберите Обозреватель конфигураций.
Выберите + Создать>Ссылка на хранилище ключей и укажите следующие значения:
- Ключ — выберите TestApp:Settings:KeyVaultCertificate.
- Метка: оставьте это значение пустым.
- Подписка, Группа ресурсов и Key Vault — введите значения, соответствующие Key Vault, созданному в рамках предыдущего учебника.
- Секрет — выберите секрет с именем ExampleCertificate, созданный в предыдущем разделе.
- Версия секрета — последняя версия.
Примечание.
Если вы ссылаетесь на определенную версию, перезагрузка секрета или сертификата из Key Vault всегда будет возвращать одно и то же значение.
Обновление кода для перезагрузки секретов и сертификатов Key Vault
В файле Program.cs обновите метод AddAzureAppConfiguration
, чтобы настроить интервал обновления для сертификата Key Vault с помощью метода SetSecretRefreshInterval
. После этого изменения программа будет перезагружать пару открытого-закрытого ключа для ExampleCertificate каждые 12 часов.
config.AddAzureAppConfiguration(options =>
{
options.Connect(settings["ConnectionStrings:AppConfig"])
.ConfigureKeyVault(kv =>
{
kv.SetCredential(new DefaultAzureCredential());
kv.SetSecretRefreshInterval("TestApp:Settings:KeyVaultCertificate", TimeSpan.FromHours(12));
});
});
Первым аргументом в методе SetSecretRefreshInterval
является ключ ссылки Key Vault в Конфигурации приложений. Этот аргумент является необязательным. Если параметр ключа пропущен, то интервал обновления будет применяться ко всем секретам и сертификатам, не имеющим отдельных интервалов обновления.
Интервал обновления определяет частоту, с которой секреты и сертификаты будут перезагружены из Key Vault независимо от любых изменений их значений в Key Vault или Конфигурации приложений. Если вы хотите перезагрузить секреты и сертификаты при изменении их значения в Конфигурации приложений, вы можете отслеживать их с помощью метода ConfigureRefresh
. Дополнительные сведения см. в статье об использовании динамической конфигурации в приложении ASP.NET Core.
Выберите интервал обновления в соответствии с допустимой задержкой после обновления секретов и сертификатов в Key Vault. Важно учитывать ограничения службы Key Vault, чтобы они не были отрегулированы.
Очистка ресурсов
Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.
Внимание
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.
- Войдите на портал Azure и выберитеГруппы ресурсов.
- Введите имя группы ресурсов в поле Фильтровать по имени.
- В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
- Выберите команду Удалить группу ресурсов.
- Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.
Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Следующие шаги
Из этого учебника вы узнали, как настроить приложение для автоматической перезагрузки секретов и сертификатов из Key Vault. Чтобы узнать, как с помощью управляемого удостоверения упростить доступ к службе "Конфигурация приложений" и Key Vault, перейдите к следующему учебнику.