Рекомендации по управлению секретами в Key Vault
Хранилище ключей Azure позволяет безопасно хранить учетные данные служб или приложений, такие как пароли и ключи доступа, в качестве секретов. Все секреты в вашем хранилище ключей шифруются с помощью программного ключа. При использовании key Vault вам больше не нужно хранить сведения о безопасности в приложениях. Отсутствие необходимости хранить сведения о безопасности в приложениях устраняет потребность включать эти сведения в код.
Примеры секретов, которые должны храниться в Key Vault:
- секреты клиентских приложений;
- Строки подключения
- Passwords
- Клавиши доступа (кэш Azure для Redis, центры событий Azure, Azure Cosmos DB)
- Ключи SSH
Любые другие конфиденциальные сведения, например IP-адреса, имена служб и другие параметры конфигурации, должны храниться в Конфигурации приложения Azure, а не в Key Vault.
Каждое отдельное хранилище ключей определяет границы безопасности для секретов. Для одного ключевого хранилища для каждого приложения, региона или среды рекомендуется обеспечить детальную изоляцию секретов приложения.
Дополнительные сведения о лучших методиках использования Key Vault см. раздел Рекомендации по использованию Key Vault.
Настройка и хранение
Учетные данные, необходимые для доступа к базе данных или службе, следует хранить в виде значения секрета. Если используются составные учетные данные, например имя пользователя и пароль, их можно сохранить как строку подключения или объект JSON. Другие сведения для управления следует хранить в тегах, например в конфигурации ротации.
Дополнительные сведения о секретах см. в статье Сведения о секретах Azure Key Vault.
Смена секретов
Секреты часто хранятся в памяти приложения в качестве переменных среды или параметров конфигурации для всего жизненного цикла приложения, что делает их уязвимыми для нежелательного воздействия. Так как секреты уязвимы к утечкам или воздействию, их важно часто сменять (хотя бы каждые 60 дней).
Дополнительные сведения о смене секретов см. в статье Автоматизация смены секретов для ресурсов с двумя наборами учетных данных для проверки подлинности.
Изоляция доступа и сети
Вы можете снизить уязвимость хранилищ, указав IP-адреса, к которым они имеют доступ. Настройте брандмауэр, чтобы разрешить приложениям и связанным службам доступ только к секретам в хранилище, чтобы злоумышленники не получили к ним доступ.
Дополнительные сведения о сетевой безопасности см. в разделе Настройка сетевых параметров Azure Key Vault.
Кроме того, уровень доступа приложений должен быть наименее привилегированным, обеспечивая доступ только к считываемым секретам. Доступ к секретам можно контролировать с помощью политик доступа или управления доступом на основе ролей Azure.
Дополнительные сведения об управлении доступом в хранилище ключей Azure см. в:
- Предоставление доступа к ключам, сертификатам и секретам Key Vault с помощью управления доступом на основе ролей Azure
- Назначение политики доступа Key Vault
Ограничения служб и кэширование
Изначально хранилище Key Vault было создано с регулируемыми ограничениями, указанными в статье Ограничения службы Azure Key Vault. Чтобы максимально увеличить пропускную способность, рекомендуется использовать две рекомендуемых методики:
- Кэшировать секреты в приложении в течение не менее восьми часов.
- Внедрить экспоненциальную логику задержки повторного выполнения операций для обработки сценариев, когда превышены ограничения службы.
Дополнительные сведения о регулировании см. в статье Руководство по регулированию Azure Key Vault.
Наблюдение
Чтобы отслеживать доступ к секретам и их жизненному циклу, включите ведение журнала в Key Vault. Используйте Azure Monitor для отслеживания всех действий, связанных с секретами, во всех хранилищах. Кроме того, можно использовать сетку событий Azure для отслеживания жизненного цикла секретов, так как она легко интегрируется с Azure Logic Apps и функциями Azure.
Дополнительные сведения см. в разделе:
- Azure Key Vault как источник Сетки событий
- Ведение журнала Azure Key Vault
- Мониторинг и оповещения для Azure Key Vault
Защита от резервного копирования и очистки
Включите защиту от очистки, чтобы предотвратить злонамеренное или случайное удаление секретов. В тех сценариях, где защита от очистки неприменима, мы рекомендуем создавать секреты резервного копирования, которые невозможно воссоздать из других источников.