Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Key Vault — это облачная служба, которая предоставляет безопасное хранилище секретов, таких как ключи, пароли, сертификаты и другие секреты. В этом кратком руководстве рассматривается процесс развертывания шаблона Azure Resource Manager (шаблона ARM) для создания хранилища ключей и секрета.
Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.
Если среда соответствует предварительным требованиям и вы знакомы с использованием шаблонов ARM, нажмите кнопку Развертывание в Azure. Шаблон откроется на портале Azure.
Предпосылки
Чтобы завершить эту статью, выполните указанные ниже действия.
Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Идентификатор пользовательского объекта Microsoft Entra необходим шаблоном для настройки разрешений. Следующая процедура получает идентификатор объекта (GUID).
Выполните следующую команду Azure PowerShell или Azure CLI, выбрав "Попробовать", а затем вставьте сценарий в область оболочки. Чтобы вставить сценарий, щелкните правой кнопкой мыши оболочку и выберите Вставить.
echo "Enter your email address that is used to sign in to Azure:" && read upn && az ad user show --id $upn --query "Id" && echo "Press [ENTER] to continue ..."Запишите идентификатор объекта. Вам понадобится в следующем разделе этого краткого руководства.
Проверьте шаблон
Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "8629186205194254058"
}
},
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specifies the Azure location where the key vault should be created."
}
},
"enabledForDeployment": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
}
},
"enabledForDiskEncryption": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
}
},
"enabledForTemplateDeployment": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
}
},
"tenantId": {
"type": "string",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"description": "Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet."
}
},
"objectId": {
"type": "string",
"metadata": {
"description": "Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets."
}
},
"keysPermissions": {
"type": "array",
"defaultValue": [
"list"
],
"metadata": {
"description": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge."
}
},
"secretsPermissions": {
"type": "array",
"defaultValue": [
"list"
],
"metadata": {
"description": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
},
"secretName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the secret that you want to create."
}
},
"secretValue": {
"type": "securestring",
"metadata": {
"description": "Specifies the value of the secret that you want to create."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('keyVaultName')]",
"location": "[parameters('location')]",
"properties": {
"enabledForDeployment": "[parameters('enabledForDeployment')]",
"enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
"enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
"tenantId": "[parameters('tenantId')]",
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"accessPolicies": [
{
"objectId": "[parameters('objectId')]",
"tenantId": "[parameters('tenantId')]",
"permissions": {
"keys": "[parameters('keysPermissions')]",
"secrets": "[parameters('secretsPermissions')]"
}
}
],
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/secrets",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretName'))]",
"properties": {
"value": "[parameters('secretValue')]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
]
}
],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('keyVaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
}
}
}
В шаблоне определено два ресурса Azure:
- Microsoft.KeyVault/vaults: создайте хранилище ключей Azure.
- Microsoft.KeyVault/vaults/secret: создайте секрет хранилища ключей.
Дополнительные примеры шаблонов Azure Key Vault можно найти в шаблонах быстрого запуска Azure.
Развертывание шаблона
Выберите следующее изображение, чтобы войти на портал Azure и открыть шаблон. Шаблон создает хранилище ключей и секрет.
Введите или выберите следующие значения.
Если оно не указано, используйте значение по умолчанию для создания хранилища ключей и секрета.
- Подписка. Выберите нужную подписку Azure.
- Группа ресурсов. Щелкните Создать, введите уникальное имя новой группы ресурсов и нажмите кнопку ОК.
- Расположение. Выберите расположение. Например, центральная часть США.
- Имя хранилища ключей: введите имя хранилища ключей, которое должно быть глобально уникальным в пространстве имен .vault.azure.net. Вам потребуется имя из следующего раздела при проверке развертывания.
- Идентификатор клиента: функция шаблона автоматически извлекает идентификатор клиента. Не изменяйте значение по умолчанию.
- Идентификатор пользователя Entra: введите идентификатор объекта пользователя Microsoft Entra, полученный из предварительных условий.
- Имя секрета: введите имя секрета, сохраненного в хранилище ключей. Например, adminpassword.
- Значение секрета: введите значение секрета. При хранении пароля рекомендуется использовать созданный пароль, созданный в предварительных требованиях.
- I agree to the terms and conditions state above (Я принимаю указанные выше условия). Установите этот флажок.
Выберите Покупка. После успешного развертывания хранилища ключей вы получите уведомление.
Для развертывания шаблона используется портал Azure. В дополнение к порталу Azure можно также использовать Azure PowerShell, Azure CLI и REST API. Дополнительные сведения о других методах развертывания см. в статье о развертывании с использованием шаблонов.
Проверка развернутых ресурсов
Вы можете использовать портал Azure для проверки хранилища ключей и секрета, либо использовать следующий скрипт Azure CLI или Azure PowerShell для перечисления созданного секрета.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Результат будет выглядеть примерно так:
Очистите ресурсы
Другие краткие руководства и учебные материалы по Key Vault основаны на этом кратком руководстве. Если вы планируете продолжить работу с последующими быстрыми стартами и руководствами, вы можете пожелать оставить эти ресурсы на месте. При отсутствии необходимости удалите группу ресурсов, которая удаляет Хранилище ключей и связанные ресурсы. Чтобы удалить группу ресурсов с помощью Azure CLI или Azure PowerShell, выполните следующие действия.
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Дальнейшие шаги
В этом кратком руководстве вы создали хранилище ключей и секрет с помощью шаблона ARM и проверили развертывание. Дополнительные сведения о Key Vault и Azure Resource Manager см. в следующих статьях.
- Прочитайте обзор Azure Key Vault
- Сведения об Azure Resource Manager
- Просмотрите обзор безопасности Key Vault