Поделиться через


Защита секретов Azure Key Vault

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

Замечание

В этой статье рассматриваются практики безопасности, специфичные для секретов Key Vault. Полные рекомендации по безопасности Key Vault, включая сетевую безопасность, управление удостоверениями и доступом, а также архитектуру хранилища, см. в разделе Secure Azure Key Vault.

Что хранить в качестве секретов

Секреты в Azure Key Vault предназначены для хранения учетных данных службы или приложения. Сохраните следующие типы данных в виде секретов:

  • Учетные данные приложения: секреты клиентского приложения, ключи API, учетные данные служебного субъекта
  • Строки подключения: строки подключения к базе данных, строки подключения к учетной записи хранения
  • Пароли: пароли службы, пароли приложений
  • Ключи доступа: ключи кэша Redis, ключи Центры событий Azure, ключи Azure Cosmos DB, ключи служба хранилища Azure
  • Ключи SSH: закрытые ключи SSH для безопасного доступа к оболочке

Это важно

Не сохраняйте данные конфигурации в Key Vault. IP-адреса, имена служб, флаги компонентов и другие параметры конфигурации должны храниться в Конфигурация приложений Azure, а не в Key Vault. Key Vault оптимизирован для криптографических секретов, а не для общего управления конфигурацией.

Дополнительные сведения о секретах можно найти в разделе О секретах Azure Key Vault.

Формат хранилища секретов

При хранении секретов в Key Vault выполните следующие рекомендации по форматированию:

  • Правильное хранение составных учетных данных: для учетных данных с несколькими компонентами (например, именем пользователя или паролем), сохраните их как:

    • Правильно отформатированная строка подключения или
    • Объект JSON, содержащий компоненты учетных данных
  • Используйте теги для метаданных: храните такие сведения об управлении, как расписания ротации, сроки истечения и владение в секретных тегах, а не в самом значении секрета.

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

Ротация секретов

Секреты, хранящиеся в памяти приложения или файлах конфигурации, сохраняются в течение всего жизненного цикла приложения, повышая риск воздействия. Реализуйте обычную смену секретов, чтобы свести к минимуму риск компрометации:

  • Регулярно обновляйте секреты: часто изменяйте их на основе политики безопасности вашей организации и конфиденциальности учетной записи. Более короткие интервалы ротации (например, 60–90 дней) снижают риск воздействия из-за скомпрометированных данных.
  • Автоматизация поворота: Используйте возможности поворота Azure Key Vault для автоматизации процесса поворота.
  • Используйте двойные учетные данные: Для реализации вращения без простоя применяйте ресурсы с двумя наборами аутентификационных данных.

Дополнительные сведения о смене секретов см. в следующем разделе:

Кэширование секретов и его влияние на производительность

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

  • Кэшируйте секреты в памяти: храните секреты в приложении, чтобы уменьшить количество вызовов API Key Vault и избежать их ограничения. Повторно используйте кэшированные значения всякий раз, когда это возможно, и обновите их при смене секретов. Дополнительные сведения см. в руководстве по ограничению запросов Azure Key Vault.
  • Реализация логики повторных попыток. Использование экспоненциальной логики повтора для обработки временных сбоев и регулирования
  • Обновление при смене: обновите кэшированные значения при смене секретов, чтобы приложения использовали текущие учетные данные.

Мониторинг секретов

Включите мониторинг для отслеживания шаблонов доступа к секретам и обнаружения потенциальных проблем безопасности:

  • Включите ведение журнала Key Vault: записывайте все операции доступа к секретам для обнаружения попыток несанкционированного доступа. См. Azure Key Vault ведение журнала
  • Настройте уведомления Event Grid: Отслеживайте события жизненного цикла секрета (создание, обновление, истечение срока, приближение истечения) для автоматизации рабочих процессов. См. Azure Key Vault как источник Event Grid
  • Настройка оповещений. Настройка оповещений Azure Monitor для подозрительных шаблонов доступа или неудачных попыток проверки подлинности. См. Мониторинг и оповещения для Azure Key Vault
  • Регулярно проверяйте доступ: периодически проверяйте, у кого есть доступ к секретам и удаляйте ненужные разрешения

Дальнейшие шаги