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


руководство разработчика Azure Key Vault

Azure Key Vault — это облачная служба, которая обеспечивает безопасное хранение и управление криптографическими ключами, секретами и сертификатами. Это руководство помогает разработчикам интегрировать Key Vault в свои приложения.

Обзор

Azure Key Vault позволяет:

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

Общие сведения о Azure Key Vault см. в разделе About Azure Key Vault.

Сценарии для разработчиков

Распространенные задачи разработчика с Key Vault включают:

  • Храните и извлекайте секреты: безопасное управление с строками подключения, паролями, ключами API и токенами SAS. Более подробную информацию см. в разделе О секретах.
  • Используйте ключи для шифрования и подписывания: выполняйте криптографические операции без предоставления содержимого ключа приложению. См. сведения о ключах.
  • Управление сертификатами: автоматизация подготовки сертификатов, продления и развертывания для SSL/TLS. См. сведения о сертификатах.

Общедоступные предварительные версии

Майкрософт периодически выпускает общедоступные предварительные версии новых функций Key Vault. Чтобы попробовать предварительные версии функций и предоставить отзыв, обратитесь в группу azurekeyvault@microsoft.com. Чтобы узнать о новых функциях и обновлениях, см. статью Что нового в Azure Key Vault.

Создание хранилищ ключей и управление ими

Key Vault использует двухуровневую модель доступа:

  • Контроль плоскости: управляет самим ресурсом Key Vault (создание, удаление, обновление свойств, назначение политик доступа). Операции управляются с помощью Azure Resource Manager. Сведения об управлении доступом см. в разделе Назначение политики доступа Key Vault.
  • Data plane: управляет данными, хранящимися в Key Vault (ключи, секреты, сертификаты). Доступ управляется с помощью Azure RBAC, где используется Key Vault.

Используйте предопределенную роль участника Key Vault, чтобы предоставить управление доступом к ресурсам Key Vault. Дополнительные сведения о проверке подлинности и авторизации см. в разделе Authentication в Azure Key Vault.

Сетевая безопасность

Уменьшите нагрузку на сеть, настроив частные конечные точки, брандмауэры или конечные точки службы. Подробные рекомендации по безопасности сети, включая варианты конфигурации от наиболее до наименее строгих, см. в разделе Secure your Azure Key Vault: Network Security и Configure Azure Key Vault networking settings.

Интерфейсы API и пакеты SDK для управления хранилищем ключей

В следующей таблице приведены пакеты SDK и краткие обзоры по управлению ресурсами Key Vault (операции плоскости управления — control plane operations). Последние версии и инструкции по установке см. в клиентских библиотеках.

Azure CLI PowerShell REST API Менеджер ресурсов .NET Python Java JavaScript
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы Справочные материалы
Быстрый старт
Справочные материалы Справочные материалы Справочные материалы Справочные материалы

Аутентификация в Key Vault в коде

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

Рекомендации по работе с проверкой подлинности

Для приложений, развернутых в Azure, используйте управляемые удостоверения для устранения необходимости хранения учетных данных в коде. Подробные рекомендации по проверке подлинности и рекомендации субъекта безопасности для разных сред (рабочей среды, разработки, локальной среды) см. в разделе Authentication в Azure Key Vault и Secure Azure Key Vault.

клиентские библиотеки удостоверений Azure

Предыдущие сценарии проверки подлинности поддерживаются клиентской библиотекой Azure Identity и интегрируются с SDK Key Vault. Клиентскую библиотеку удостоверений Azure можно использовать на всех платформах и в любых средах без изменения кода. Библиотека автоматически получает токены аутентификации от пользователей, которые вошли в Azure через Azure CLI, Visual Studio, Visual Studio Code и другие средства.

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

.NET Python Java JavaScript
Azure SDK для удостоверений .NET Пакет SDK Azure Identity для Python пакет SDK для удостоверения личности Azure Identity Java Azure Identity SDK для JavaScript

Замечание

Мы рекомендуем использовать библиотеку проверки подлинности App Authentication для пакета SDK Key Vault .NET версии 3, но теперь она устарела. Чтобы перейти на пакет SDK Key Vault .NET версии 4, выполните руководство по миграции с AppAuthentication на Azure.Identity.

Инструкции по проверке подлинности для Key Vault в приложениях см. в приведенных здесь руководствах.

Управление ключами, сертификатами и секретами

Замечание

Пакеты SDK для .NET, Python, Java, JavaScript, PowerShell и Azure CLI являются частью процесса выпуска функций Key Vault через этапы общедоступного предварительного просмотра и общей доступности при поддержке службы Key Vault. Доступны и другие клиенты SDK для Key Vault, но они создаются и поддерживаются отдельными командами SDK на GitHub и выпускаются в соответствии с графиком команд. Последние версии пакета SDK и пакеты установки см. в клиентских библиотеках.

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

Интерфейсы API и пакеты SDK для ключей

В следующей таблице перечислены пакеты SDK и краткие руководства по операциям с ключами на уровне данных. Дополнительные сведения о ключах см. в разделе "О ключах".

Azure CLI PowerShell REST API Менеджер ресурсов .NET Python Java JavaScript
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт

Прочие библиотеки

Клиент шифрования для Key Vault и управляемого HSM

Этот модуль предоставляет клиент шифрования для клиентского модуля ключей Azure Key Vault для Go.

Замечание

Этот проект не поддерживается командой Azure SDK, но соответствует клиентам шифрования на других поддерживаемых языках.

Язык Справка
Иди Справочные материалы

Интерфейсы API и пакеты SDK для сертификатов

В следующей таблице перечислены пакеты SDK и краткие руководства по работе с сертификатами (операции плоскости данных). Дополнительные сведения о сертификатах см. в разделе "Сведения о сертификатах".

Azure CLI PowerShell REST API Менеджер ресурсов .NET Python Java JavaScript
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы Не применимо Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт

Интерфейсы API и пакеты SDK для управления секретами

В следующей таблице перечислены пакеты SDK и краткие руководства по работе с секретами (операции плоскости данных). Дополнительные сведения о секретах см. в разделе "Сведения о секретах".

Azure CLI PowerShell REST API Менеджер ресурсов .NET Python Java JavaScript
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт

Использование секретов

Используйте Azure Key Vault для хранения только секретов для приложения. Примеры секретов, которые должны храниться в Key Vault, включают:

  • Секреты клиентского приложения
  • Строки подключения
  • Пароли
  • Ключи общего доступа
  • Ключи SSH

Любые сведения о секретах, такие как имена пользователей и идентификаторы приложений, можно хранить как теги в секрете. Для любых других параметров конфиденциальной конфигурации следует использовать Конфигурация приложений Azure.

См. раздел Клиентские библиотеки, где описаны пакеты установки и исходный код.

Использование Key Vault в приложениях

Чтобы воспользоваться новейшими функциями в Key Vault, рекомендуется использовать доступные пакеты SDK Key Vault для использования секретов, сертификатов и ключей в приложении. Пакеты SDK Key Vault и REST API обновляются по мере выпуска новых функций для продукта и следуют лучшим практикам и рекомендациям.

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

Для сертификатов можно использовать:

Для секретов можно использовать:

Примеры кода

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

Руководство по конкретным задачам

В следующих статьях и сценариях содержатся рекомендации по работе с Azure Key Vault.

Интеграция с Key Vault

Следующие службы и сценарии используют или интегрируются с Key Vault:

  • Шифрование неактивных данных — это кодирование (шифрование) данных при хранении. Ключи шифрования данных часто шифруются ключом шифрования ключей в Azure Key Vault для дальнейшего ограничения доступа.
  • Azure Information Protection позволяет управлять собственным ключом клиента. Например, вместо Майкрософт управления ключом клиента (по умолчанию) можно управлять собственным ключом клиента, чтобы соответствовать определенным правилам, применимым к вашей организации. Управление собственным ключом арендатора также называется BYOK.
  • Приватный канал Azure позволяет получать доступ к службам Azure (например, Azure Key Vault, служба хранилища Azure и Azure Cosmos DB) и Azure размещенным службам клиентов или партнеров через частную конечную точку в виртуальной виртуальной Сети.
  • интеграция Key Vault с Сетка событий Azure позволяет пользователям получать уведомления о состоянии секрета, хранящегося в Key Vault. Вы можете распространять новые версии секретов в приложения или выполнять смену секретов с истекающим сроком действия, чтобы предотвратить простои.
  • Защита секретов Azure DevOps от нежелательного доступа в Key Vault.
  • Используйте секреты, хранящиеся в Key Vault, чтобы подключиться к служба хранилища Azure из Azure Databricks.
  • Настройте и запустите поставщик Azure Key Vault для CSI-драйвера Secrets Store в Kubernetes.

Аварийное восстановление и непрерывность бизнес-процессов

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

Производительность и масштабируемость   

При разработке приложений, использующих Key Vault, рассмотрите следующие рекомендации по производительности и масштабируемости:

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

Мониторинг и ведение журнала

Включите ведение журнала и мониторинг для обеспечения безопасности, соответствия требованиям и устранения неполадок. Настройте параметры диагностики, уведомления сетки событий и оповещения для критических событий. Подробные инструкции см. в разделе Мониторинг Azure Key Vault, Ведение журнала Azure Key Vault, Мониторинг Key Vault с помощью Сетка событий Azure и Защита вашего Azure Key Vault: ведение журнала и обнаружение угроз.

Общие параметры и шаблоны запросов

При работе с REST API Key Vault полезно понимать общие параметры и шаблоны запросов и ответов:

  • Версии API: Key Vault использует версии API. Всегда указывайте версию API в запросах.
  • Запросы проверки подлинности. Узнайте, как получаются и используются маркеры проверки подлинности, включая распространенные заголовки запросов и форматы ответов. Дополнительные сведения см. в разделе "Проверка подлинности", "Запросы" и "Ответы".
  • Коды ошибок. Ознакомьтесь с общими кодами ошибок REST API для корректной обработки сбоев. Дополнительные сведения см. в разделе Azure Key Vault коды ошибок REST API.

Устранение неполадок

Чтобы устранить распространенные проблемы, выполните приведенные ниже действия.

  • Ошибки отказа в доступе: проверьте ваши учетные данные аутентификации и убедитесь, что у вашего субъекта безопасности есть необходимые разрешения через назначения RBAC. См. система Azure RBAC для операций в плоскости данных Key Vault.
  • Сетевое подключение: Если доступ к Key Vault из-за брандмауэра, убедитесь, что необходимые точки доступа доступны. См. Доступ к Key Vault за брандмауэром.
  • Регулирование: при получении ответов 429 (Слишком много запросов) реализуйте экспоненциальную паузу. См. рекомендации по ограничению скорости для Azure Key Vault.

Рекомендации по обеспечению безопасности

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

Дополнительные ресурсы

Основные концепции Key Vault

Управление и операции

  • Monitor Azure Key Vault — настройка мониторинга и диагностики.
  • ведение журнала Azure Key Vault — включение и анализ журналов Azure Key Vault.

Сообщество и поддержка

  • Microsoft Q& A — задавать вопросы и получать ответы от сообщества.
  • Stack Overflow для Key Vault - Технические вопросы и ответы от разработчиков.
  • Azure Отзывы — отправка запросов на добавление функций и обратной связи.