Краткое руководство. Настройка и получение сертификата из Azure Key Vault с помощью Azure PowerShell

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

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Снимок экрана: пример открытия Azure Cloud Shell с помощью кнопки
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Чтобы установить и использовать PowerShell локально для работы с этим руководством, понадобится модуль Azure PowerShell 1.0.0 или более поздней версии. Чтобы узнать версию, введите $PSVersionTable.PSVersion. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. Если модуль PowerShell запущен локально, необходимо также выполнить командлет Connect-AzAccount, чтобы создать подключение к Azure.

Connect-AzAccount

Создание или изменение группы ресурсов

Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими. С помощью командлета New-AzResourceGroup Azure PowerShell создайте группу ресурсов с именем myResourceGroup в регионе eastus.

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

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

Чтобы создать хранилище ключей в группе ресурсов из предыдущего шага, используйте командлет New-AzKeyVault в Azure PowerShell. Необходимо будет указать следующие сведения:

  • Имя хранилища ключей. Строка длиной от 3 до 24 символов, которая может содержать только цифры (0–9), буквы (a–z, A–Z) и дефисы (-)

    Внимание

    Каждое хранилище ключей должно иметь уникальное имя. В следующих примерах замените <your-unique-keyvault-name> именем своего хранилища ключей.

  • Имя группы ресурсов: myResourceGroup.

  • Расположение: EastUS.

New-AzKeyVault -Name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "EastUS"

В выходных данных командлета будут показаны свойства созданного Key Vault. Запишите значения двух указанных ниже свойств.

  • Имя хранилища. Имя, которое вы указали в параметре --Name выше.
  • URI хранилища. В нашем примере это https://<your-unique-keyvault-name>.vault.vault.azure.net. Необходимо, чтобы приложения, использующие ваше хранилище через REST API, использовали этот URI.

На этом этапе любые операции в этом хранилище ключей может выполнять только учетная запись Azure.

Предоставление доступа к хранилищу ключей

Чтобы предоставить приложению разрешения для хранилища ключей с помощью контроль доступа на основе ролей (RBAC), назначьте роль с помощью командлета Azure PowerShell New-AzRoleAssignment.

New-AzRoleAssignment -RoleDefinitionName "Key Vault Secrets User" -SignInName "<your-email-address>" -Scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"

Замените <адрес электронной почты>, идентификатор> подписки, <<имя группы ресурсов и <уникальное имя> keyvault-name> фактическими значениями. <ваш адрес> электронной почты — это имя входа. Вместо этого можно использовать -ObjectId параметр и идентификатор объекта Microsoft Entra.

Добавление сертификата в Key Vault

Теперь можно добавить сертификат в хранилище. Этот сертификат может использоваться приложением.

Используйте эти команды для создания самозаверяющего сертификата с политикой с именем ExampleCertificate :

$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal

Add-AzKeyVaultCertificate -VaultName "<your-unique-keyvault-name>" -Name "ExampleCertificate" -CertificatePolicy $Policy

Теперь сертификат, добавленный в Azure Key Vault, можно вызвать, используя его URI. Используйте https://<your-unique-keyvault-name>.vault.azure.net/certificates/ExampleCertificate , чтобы получить текущую версию.

Чтобы просмотреть ранее сохраненный сертификат, выполните следующие действия:

Get-AzKeyVaultCertificate -VaultName "<your-unique-keyvault-name>" -Name "ExampleCertificate"

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

Операция вернула недопустимый код статуса 'Запрещено'

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

Для назначения соответствующих разрешений выполните следующую команду Azure PowerShell:

Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> -ObjectId <AzureObjectID> -PermissionsToCertificates get,list,update,create

Очистка ресурсов

Другие руководства в этой серии созданы на основе этого документа. Если вы планируете продолжить работу с другими краткими руководствами и статьями, эти ресурсы можно не удалять.

Чтобы удалить группу ресурсов и все связанные с ней ресурсы, выполните командлет Remove-AzResourceGroup в Azure PowerShell.

Remove-AzResourceGroup -Name "myResourceGroup"

Следующие шаги

Из этого краткого руководства вы узнали, как создать Key Vault и сохранить в нем сертификат. Дополнительные сведения о Key Vault и его интеграции в приложения см. в следующих статьях.