Руководство разработчика Azure Key Vault
Azure Key Vault обеспечивает безопасный доступ к конфиденциальной информации из приложений.
- Ключи, секреты и сертификаты защищены без необходимости написания кода. Вы сможете легко использовать их в своих приложениях.
- Вы можете предоставить клиентам возможность самостоятельно и управлять собственными ключами, секретами и сертификатами, чтобы вы могли сосредоточиться на предоставлении основных функций программного обеспечения. В этом случае ваши приложения не будут отвечать за ключи, секреты и сертификаты клиентов.
- Ваше приложение может использовать ключи для подписания и шифрования, но осуществляет управление ключами во внешней среде. См. сведения о ключах.
- Вы можете управлять учетными данными, такими как пароли, ключи доступа и маркеры SAS, храня их в Key Vault в виде секретов. См. сведения о секретах.
- Управление сертификатами. См. сведения о сертификатах.
См. общие сведения об Azure Key Vault.
Общедоступные предварительные версии
Периодически мы выпускаем общедоступные предварительные версии нового компонента Key Vault. Предлагаем вам протестировать функции общедоступной предварительной версии и отправить отзыв по нашему адресу электронной почты для обратной связи: azurekeyvault@microsoft.com.
Создание хранилищ ключей и управление ими
Управление Key Vault, как и другими службами Azure, осуществляется с помощью Azure Resource Manager. Azure Resource Manager — это служба развертывания и управления для Azure. С ее помощью можно создавать, обновлять и удалять ресурсы в учетной записи Azure.
Управление доступом на основе ролей Azure (RBAC) позволяет контролировать доступ на уровне управления, также известном как плоскость управления. Плоскость управления используется в Key Vault для создания хранилищ ключей и их атрибутов, включая политики доступа, и управления ими. Плоскость данных используется для управления ключами, сертификатами и секретами.
Для предоставления доступа для управления к Key Vault можно использовать стандартную роль участника Key Vault.
Интерфейсы API и пакеты SDK для управления хранилищем ключей
| Azure CLI | PowerShell | REST API | Resource Manager | .NET | Python | Java | JavaScript |
|---|---|---|---|---|---|---|---|
| Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки | Ссылки Краткое руководство |
Ссылки | Ссылки | Ссылки | Ссылки |
См. раздел Клиентские библиотеки, где описаны пакеты установки и исходный код.
Проверка подлинности для использования Key Vault в коде
В Key Vault используется проверка подлинности Azure Active Directory (Azure AD), поэтому для предоставления доступа требуется субъект безопасности Azure AD. Субъектом безопасности в Azure AD может быть пользователь, субъект-служба приложения, управляемое удостоверение для ресурсов Azure или группа субъектов любого из этих типов.
Рекомендации по работе с проверкой подлинности
Мы рекомендуем использовать управляемое удостоверение для приложений, развернутых в Azure. Если вы используете службы Azure, которые не поддерживают управляемые удостоверения, или приложения развертываются локально, то возможной альтернативой является субъект-служба с сертификатом. В этом случае сертификат должен храниться в Key Vault и часто сменяться.
Используйте субъект-службу с секретом для сред разработки и тестирования. Используйте основное имя пользователя для локальной разработки и облачной оболочки Azure.
Мы рекомендуем применять приведенные ниже субъекты безопасности в соответствующей среде:
- рабочая среда: управляемое удостоверение или субъект-служба с сертификатом;
- среды тестирования и разработки: управляемое удостоверение, субъект-служба с сертификатом или субъект-служба с секретом;
- локальная разработка: субъект-пользователь или субъект-служба с секретом.
Клиентские библиотеки Azure Identity
Описанные выше сценарии проверки подлинности поддерживаются клиентской библиотекой удостоверений Azure и интегрируются с пакетами SDK для Key Vault. Вы можете использовать клиентскую библиотеку удостоверений Azure в разных средах и на разных платформах, не изменяя свой код. Эта библиотека автоматически получает маркеры проверки подлинности от пользователей, которые вошли в Azure с помощью Azure CLI, Visual Studio, Visual Studio Code или других средств.
Дополнительные сведения о клиентской библиотеке удостоверений Azure:
| .NET | Python | Java | JavaScript |
|---|---|---|---|
| Azure Identity SDK для .NET | Azure Identity SDK для Python | Azure Identity SDK для Java | Azure Identity SDK для JavaScript |
Примечание
Мы рекомендовали использовать библиотеку проверки подлинности приложений для пакета SDK .NET для Key Vault версии 3, но она больше не рекомендуется. Следуйте указаниям в руководстве по переходу с AppAuthentication на Azure.Identity, чтобы перейти на использование пакета SDK .NET для Key Vault версии 4.
Учебные материалы о проверке подлинности в Key Vault в приложениях см. в разделе:
- Использование Azure Key Vault с виртуальной машиной в .NET
- Использование Azure Key Vault с виртуальной машиной в Python
- Подключение Key Vault к веб-приложению Azure с использованием управляемого удостоверения (.NET)
Управление ключами, сертификатами и секретами
Плоскость данных служит для управления доступом к ключам, сертификатам и секретам. Вы можете использовать локальные политики доступа к хранилищу или Azure RBAC для управления доступом посредством плоскости данных.
Интерфейсы API и пакеты SDK для ключей
| Azure CLI | PowerShell | REST API | Resource Manager | .NET | Python | Java | JavaScript |
|---|---|---|---|---|---|---|---|
| Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки | Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки Краткое руководство |
Интерфейсы API и пакеты SDK для сертификатов
| Azure CLI | PowerShell | REST API | Resource Manager | .NET | Python | Java | JavaScript |
|---|---|---|---|---|---|---|---|
| Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки | Н/Д | Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки Краткое руководство |
Интерфейсы API и пакеты SDK для секретов
| Azure CLI | PowerShell | REST API | Resource Manager | .NET | Python | Java | JavaScript |
|---|---|---|---|---|---|---|---|
| Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки | Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки Краткое руководство |
Ссылки Краткое руководство |
Использование секретов
Используйте Azure Key Vault, чтобы хранить только секреты для приложения. Примеры секретов, которые должны храниться в Key Vault:
- секреты клиентских приложений;
- Строки подключения
- Пароли
- ключи общего доступа;
- Ключи SSH
Любые сведения о секретах, такие как имена пользователей и идентификаторы приложений, можно хранить как теги в секрете. Для других конфиденциальных параметров конфигурации следует использовать Конфигурацию приложений Azure.
Ссылки
См. раздел Клиентские библиотеки, где описаны пакеты установки и исходный код.
Сведения о безопасности плоскости данных для Key Vault см. в статье Функции безопасности Azure Key Vault.
Использование 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. Дополнительные сведения см. в разделе Configure applications with App Configuration and Key Vault (Настройка приложений с помощью Конфигурации приложений и Key Vault).
Примеры кода
Полные примеры использования Key Vault с приложениями см. в разделе примеров кода для Azure Key Vault.
Руководство по конкретным задачам
В следующих статьях приводятся рекомендации по решению конкретных задач при работе с Azure Key Vault:
- Для доступа к хранилищу ключей необходимо, чтобы клиентское приложение имело доступ к нескольким конечным точкам, требуемым для различных функций. Ознакомьтесь с разделом Доступ к хранилищу ключей под защитой брандмауэра.
- Облачному приложению, которое работает на виртуальной машине Azure, требуется сертификат. Как перенести этот сертификат на виртуальную машину? Ознакомьтесь с разделами Расширение виртуальной машины Key Vault для Windows и Расширение виртуальной машины Key Vault для Linux.
- Чтобы назначить политику доступа с помощью Azure CLI, PowerShell или портала Azure, изучите раздел Назначение политики доступа Key Vault.
- Руководство по использованию и жизненному циклу хранилища ключей и различных объектов хранилища ключей с поддержкой обратимого удаления см. в разделе Управление восстановлением Azure Key Vault с обратимым удалением и защитой от очистки.
- Если в процессе развертывания в качестве параметра необходимо передать безопасное значение (например, пароль), его можно сохранить как секретный в хранилище ключей и вставить ссылку на это значение в другие шаблоны Resource Manager. Ознакомьтесь с разделом Использование 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.
- Связи между регионами и областями безопасности описаны в разделе Системы безопасности и географические ограничения Azure Key Vault.