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


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

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

Обзор

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

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

См. общие сведения об Azure Key Vault.

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

К общим задачам разработчика с Key Vault относятся:

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

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

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

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

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

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

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

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

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

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

Azure CLI (Интерфейс командной строки для Azure) PowerShell REST API Менеджер ресурсов .СЕТЬ Питон Ява JavaScript
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы Справочные материалы
Быстрый старт
Справочные материалы Справочные материалы Справочные материалы Справочные материалы

Проверка подлинности для использования Key Vault в коде

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

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

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

Клиентские библиотеки идентификации Azure

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

Дополнительные сведения о клиентской библиотеке удостоверений Azure:

.СЕТЬ Питон Ява JavaScript
SDK для удостоверений Azure в .NET SDK Azure Identity для Python Azure Identity SDK для Java Azure Identity SDK для JavaScript

Замечание

Мы рекомендовали использовать библиотеку проверки подлинности приложений для пакета SDK .NET для Key Vault версии 3, но она больше не рекомендуется. Следуйте указаниям в руководстве по переходу с AppAuthentication на Azure.Identity, чтобы перейти на использование пакета SDK .NET для Key Vault версии 4.

Учебные материалы о проверке подлинности в 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 (Интерфейс командной строки для Azure) PowerShell REST API Менеджер ресурсов .СЕТЬ Питон Ява JavaScript
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт

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

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

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

Замечание

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

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

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

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

Azure CLI (Интерфейс командной строки для Azure) PowerShell REST API Менеджер ресурсов .СЕТЬ Питон Ява JavaScript
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы Не применимо Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт

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

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

Azure CLI (Интерфейс командной строки для Azure) PowerShell REST API Менеджер ресурсов .СЕТЬ Питон Ява JavaScript
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт
Справочные материалы
Быстрый старт

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

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

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

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

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

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

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

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

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

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

Примеры кода

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

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

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

Интеграция с 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 хранилища секретов в Kubernetes.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Основные понятия Key Vault

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

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