Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как приступить к работе с Azure Key Vault с помощью Azure CLI. Вы можете просмотреть информацию о:
- Создание защищенного контейнера (хранилища) в Azure
- Добавление ключа, секрета или сертификата в хранилище ключей
- Регистрация приложения с помощью идентификатора Microsoft Entra
- Авторизация приложения для использования ключа или секрета
- Настройка политик расширенного доступа к хранилищу ключей
- Работа с аппаратными модулями безопасности (HSM)
- Удаление хранилища ключей вместе с ключами и секретами
- Разные команды кроссплатформенного интерфейса командной строки Azure
Хранилище ключей Azure доступно в большинстве регионов. Дополнительные сведения см. на странице цен на хранилище ключей.
Замечание
В этой статье не содержатся инструкции по написанию приложения Azure, которое включает в себя один из шагов, в котором показано, как авторизовать приложение для использования ключа или секрета в хранилище ключей.
Общие сведения о Azure Key Vault см. в статье "Что такое Azure Key Vault?) Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Предпосылки
Чтобы использовать команды Azure CLI в этой статье, вам необходимо следующее:
- Подписка на Microsoft Azure. Если у вас ее нет, зарегистрируйтесь, чтобы воспользоваться бесплатной пробной версией.
- Azure CLI версии 2.0 или более поздней. Чтобы установить последнюю версию, см. статью "Установка Azure CLI".
- Приложение, которое будет настроено для использования ключа или пароля, создаваемого в этой статье. Пример приложения доступен в Центре загрузки Майкрософт. Инструкции см. в включенном файле Readme.
Получение справки по кроссплатформенным интерфейсам Command-Line Azure
В этой статье предполагается, что вы знакомы с интерфейсом командной строки (Bash, Терминал, командная строка).
Параметр --help или -h можно использовать для просмотра справки по определенным командам. Кроме того, можно использовать формат справки Azure [command] [options]. Если сомневаться в параметрах, необходимых команде, обратитесь к справке. Например, следующие команды возвращают одну и ту же информацию:
az account set --help
az account set -h
Вы также можете ознакомиться со следующими статьями, чтобы ознакомиться с Azure Resource Manager в кроссплатформенной Command-Line интерфейсе:
Создание защищенного контейнера (хранилища) в Azure
Хранилища защищены контейнерами, поддерживаемыми аппаратными модулями безопасности. Хранилища позволяют уменьшить вероятность случайной потери информации о безопасности путем централизации хранения секретов приложений. Key Vault также контролируют и регистрируют доступ ко всем хранящимся в них данным. Azure Key Vault может обрабатывать запросы и обновлять сертификаты TLS, предоставляя функции, необходимые для надежного решения по управлению жизненным циклом сертификатов. В следующих шагах вы создадите хранилище.
Подключение к подпискам
Для интерактивного входа используйте следующую команду:
az login
Чтобы войти с помощью учетной записи организации, вы можете ввести свои имя пользователя и пароль.
az login -u [email protected] -p password
Если у вас несколько подписок и необходимо указать, какой из них следует использовать, введите следующую команду, чтобы просмотреть подписки для учетной записи:
az account list
Укажите подписку с параметром подписки.
az account set --subscription <subscription name or ID>
Дополнительные сведения о настройке кроссплатформенного интерфейса Command-Line Azure см. в статье "Установка Azure CLI".
Создание новой группы ресурсов
При использовании Azure Resource Manager все связанные ресурсы создаются в группе ресурсов. Хранилище ключей можно создать в существующей группе ресурсов. Если вы хотите использовать новую группу ресурсов, можно создать новую.
az group create -n "ContosoResourceGroup" -l "East Asia"
Первый параметр — имя группы ресурсов, а второй — расположение. Чтобы получить список всех возможных расположений, выполните указанные ниже действия.
az account list-locations
Регистрация поставщика ресурсов Key Vault
При попытке создать новое хранилище ключей может появиться сообщение об ошибке "Подписка не зарегистрирована для использования пространства имен Microsoft.KeyVault". Если появится это сообщение, убедитесь, что поставщик ресурсов Key Vault зарегистрирован в вашей подписке. Это однократная операция для каждой подписки.
az provider register -n Microsoft.KeyVault
Создание хранилища ключей
az keyvault create
Используйте команду для создания хранилища ключей. Этот скрипт имеет три обязательных параметра: имя группы ресурсов, имя хранилища ключей и географическое расположение.
Чтобы создать хранилище с именем ContosoKeyVault, в группе ресурсов ContosoResourceGroup, находящейся в расположении Восточной Азии , введите:
az keyvault create --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --location "East Asia"
В выходных данных этой команды показаны свойства созданного хранилища ключей. Два самых важных свойства это:
- name: В примере имя — ContosoKeyVault. Вы будете использовать это имя для других команд Key Vault.
-
vaultUri: в примере используется
https://contosokeyvault.vault.azure.net
. Необходимо, чтобы приложения, использующие ваше хранилище через REST API, использовали этот URI.
Теперь ваша учетная запись Azure авторизована для выполнения любых операций в этом хранилище ключей. На данный момент никто другой не имеет полномочий.
Добавление ключа, секрета или сертификата в хранилище ключей
Если вы хотите, чтобы Azure Key Vault создавал ключ, защищенный программным обеспечением, используйте az key create
команду.
az keyvault key create --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --protection software
Если у вас есть ключ в PEM-файле, его можно отправить в Azure Key Vault. Вы можете защитить ключ с помощью программного обеспечения или HSM. В этом примере ключ импортируется из PEM-файла и защищает его с помощью программного обеспечения с помощью пароля hVFkk965BuUv:
az keyvault key import --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --pem-file "./softkey.pem" --pem-password "hVFkk965BuUv" --protection software
Теперь вы можете ссылаться на ключ, созданный или отправленный в Azure Key Vault, с помощью его URI. Используйте https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey
, чтобы всегда получить текущую версию.
https://<keyvault-name>.vault.azure.net/keys/<keyname>/<key-unique-id>
позволяет получить конкретную версию. Например: https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87
.
Добавьте секрет в хранилище, который является паролем с именем SQLPassword и имеет значение "hVFkk965BuUv" в Azure Key Vault.
az keyvault secret set --vault-name "ContosoKeyVault" --name "SQLPassword" --value "hVFkk965BuUv "
Обратитесь к этому паролю с помощью URI. Всегда используйте https://ContosoVault.vault.azure.net/secrets/SQLPassword, чтобы получать текущую версию, и https://<keyvault-name>.vault.azure.net/secret/<secret-name>/<secret-unique-id>
, чтобы получать эту конкретную версию. Например: https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d
.
Импортируйте сертификат в хранилище с помощью .pem или .pfx.
az keyvault certificate import --vault-name "ContosoKeyVault" --file "c:\cert\cert.pfx" --name "ContosoCert" --password "hVFkk965BuUv"
Давайте рассмотрим созданный ключ, секрет или сертификат:
- Чтобы просмотреть ключи, введите следующее:
az keyvault key list --vault-name "ContosoKeyVault"
- Чтобы просмотреть секреты, введите текст:
az keyvault secret list --vault-name "ContosoKeyVault"
- Чтобы просмотреть сертификаты, введите следующее:
az keyvault certificate list --vault-name "ContosoKeyVault"
Регистрация приложения с помощью идентификатора Microsoft Entra
Обычно этот шаг выполняется разработчиком на отдельном компьютере. Это не относится к Azure Key Vault, но включается здесь для осведомленности. Чтобы завершить регистрацию приложения, учетная запись, хранилище и приложение должны находиться в одном каталоге Azure.
Приложения, использующие хранилище ключей, должны аутентифицироваться с помощью токена от Microsoft Entra ID. Сначала владелец приложения должен зарегистрировать его в Microsoft Entra. В конце регистрации владелец приложения получает следующие значения:
- Идентификатор приложения (также известный как идентификатор клиента Microsoft Entra или appID)
- Ключ проверки подлинности (также известный как общий секрет).
Чтобы получить токен, приложение должно представить оба этих значения в Microsoft Entra ID. Настройка приложения для получения маркера зависит от приложения. Для примера приложения Key Vault владелец приложения задает эти значения в файле app.config.
Подробные инструкции по регистрации приложения с помощью идентификатора Microsoft Entra id см. в статьях с названием "Интеграция приложений с идентификатором Microsoft Entra ID", "Использование портала для создания приложения Microsoft Entra и субъекта-службы, который может получить доступ к ресурсам" и"Создание субъекта-службы Azure" с помощью Azure CLI.
Чтобы зарегистрировать приложение в идентификаторе Microsoft Entra, выполните следующие действия.
az ad sp create-for-rbac -n "MyApp" --password "hVFkk965BuUv" --role Contributor --scopes /subscriptions/<subscription id>
# If you don't specify a password, one will be created for you.
Авторизация приложения для использования ключа или секрета
Чтобы авторизовать приложение для доступа к ключу или секрету в хранилище, используйте az keyvault set-policy
команду.
Например, если имя хранилища — ContosoKeyVault, и вы хотите авторизовать приложение для расшифровки и входа с помощью ключей в хранилище, используйте следующую команду с идентификатором приложения:
az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --key-permissions decrypt sign
Чтобы авторизовать то же приложение для чтения секретов в хранилище, введите следующую команду:
az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --secret-permissions get
Настройка политик расширенного доступа к хранилищу ключей
Используйте az keyvault update , чтобы включить расширенные политики для хранилища ключей.
Включение Key Vault для развертывания. Позволяет виртуальным машинам получать сертификаты, хранящиеся в виде секретов из хранилища.
az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-deployment "true"
Включите Key Vault для шифрования дисков: обязательно при использовании хранилища для шифрования дисков Azure.
az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-disk-encryption "true"
Включите Key Vault для развертывания шаблона: позволяет Resource Manager получать секреты из хранилища.
az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-template-deployment "true"
Работа с аппаратными модулями безопасности (HSM)
Для дополнительной гарантии можно импортировать или создать ключи из аппаратных модулей безопасности (HSM), которые никогда не покидают границу HSM. Эти HSM сертифицированы FIPS 140. Если это требование не применяется к вам, пропустите этот раздел и перейдите к разделу "Удалить хранилище ключей" и связанные ключи и секреты.
Чтобы создать ключи с защитой HSM, необходимо иметь подписку на хранилище, которая поддерживает ключи с защитой HSM.
При создании keyvault добавьте параметр SKU:
az keyvault create --name "ContosoKeyVaultHSM" --resource-group "ContosoResourceGroup" --location "East Asia" --sku "Premium"
Вы можете добавить защищенные программным обеспечением ключи (как показано ранее) и ключи, защищенные HSM, в это хранилище. Чтобы создать защищенный HSM-ключ, задайте для параметра Destination значение HSM:
az keyvault key create --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --protection "hsm"
Следующая команда позволяет импортировать ключ из PEM-файла на компьютере. Эта команда импортирует ключ в HSM в службе Key Vault:
az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --pem-file "/.softkey.pem" --protection "hsm" --pem-password "PaSSWORD"
Следующая команда импортирует пакет "принести собственный ключ" (BYOK). Это позволяет сгенерировать ваш ключ в локальном HSM и передать его в HSM в службе Key Vault, не выходя за границы HSM.
az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --byok-file "./ITByok.byok" --protection "hsm"
Дополнительные инструкции по созданию этого пакета BYOK см. в статье "Использование ключей HSM-Protected с Azure Key Vault".
Удаление хранилища ключей, а также связанных с ним ключей и секретов
Если вам больше не нужен хранилище ключей и его ключи или секреты, можно удалить хранилище ключей с помощью az keyvault delete
команды:
az keyvault delete --name "ContosoKeyVault"
Кроме того, можно удалить всю группу ресурсов Azure, которая включает хранилище ключей и любые другие ресурсы, включенные в эту группу:
az group delete --name "ContosoResourceGroup"
Другие команды интерфейса командной строки Azure кроссплатформенного интерфейса
Другие команды, которые могут оказаться полезными для управления Azure Key Vault.
Эта команда содержит табличное отображение всех ключей и выбранных свойств:
az keyvault key list --vault-name "ContosoKeyVault"
Эта команда отображает полный список свойств для указанного ключа:
az keyvault key show --vault-name "ContosoKeyVault" --name "ContosoFirstKey"
Эта команда содержит табличное отображение всех имен секретов и выбранных свойств:
az keyvault secret list --vault-name "ContosoKeyVault"
Ниже приведен пример удаления определенного ключа:
az keyvault key delete --vault-name "ContosoKeyVault" --name "ContosoFirstKey"
Ниже приведен пример удаления определенного секрета:
az keyvault secret delete --vault-name "ContosoKeyVault" --name "SQLPassword"
Дальнейшие шаги
Полное описание команд Azure CLI для хранилища ключей доступно в справочнике по интерфейсу командной строки Key Vault.
Справочные материалы по программированию см. в статье Руководство разработчика хранилища ключей Azure.
Сведения об Azure Key Vault и HSM см. в статье "Использование ключей HSM-Protected с Azure Key Vault".