Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Key Vault — это облачная служба, которая предоставляет безопасное хранилище секретов, таких как ключи, пароли и сертификаты. В этом кратком руководстве рассматривается процесс развертывания шаблона Azure Resource Manager (шаблона ARM) для создания хранилища ключей и ключа.
Предпосылки
Чтобы завершить эту статью, выполните указанные ниже действия.
- Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
- Пользователю необходимо, чтобы ему была назначена встроенная роль Azure, рекомендуется роль Contributor. Дополнительные сведения см. здесь.
Проверьте шаблон
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vaultName": {
"type": "string",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The name of the key to be created."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the resources"
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "The SKU of the vault to be created."
}
},
"keyType": {
"type": "string",
"defaultValue": "RSA",
"allowedValues": [
"EC",
"EC-HSM",
"RSA",
"RSA-HSM"
],
"metadata": {
"description": "The JsonWebKeyType of the key to be created."
}
},
"keyOps": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The permitted JSON web key operations of the key to be created."
}
},
"keySize": {
"type": "int",
"defaultValue": 2048,
"metadata": {
"description": "The size in bits of the key to be created."
}
},
"curveName": {
"type": "string",
"defaultValue": "",
"allowedValues": [
"",
"P-256",
"P-256K",
"P-384",
"P-521"
],
"metadata": {
"description": "The JsonWebKeyCurveName of the key to be created."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2021-11-01-preview",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"properties": {
"accessPolicies": [],
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": "90",
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": false,
"tenantId": "[subscription().tenantId]",
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2021-11-01-preview",
"name": "[format('{0}/{1}', parameters('vaultName'), parameters('keyName'))]",
"properties": {
"kty": "[parameters('keyType')]",
"keyOps": "[parameters('keyOps')]",
"keySize": "[parameters('keySize')]",
"curveName": "[parameters('curveName')]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
]
}
],
"outputs": {
"proxyKey": {
"type": "object",
"value": "[reference(resourceId('Microsoft.KeyVault/vaults/keys', parameters('vaultName'), parameters('keyName')))]"
}
}
}
В шаблоне определены два ресурса:
Дополнительные примеры шаблонов Azure Key Vault можно найти в шаблонах быстрого запуска Azure.
Параметры и определения
| Параметр | Definition |
|---|---|
| keyOps | Указывает операции, которые можно выполнять с помощью ключа. Если этот параметр не указан, все операции можно выполнить. Допустимые значения для этого параметра — это разделенный запятыми список ключевых операций, определенных спецификацией веб-ключа JSON (JWK): ["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
| Имя кривой | Название эллиптической кривой (EC) для типа ключа EC. См. jsonWebKeyCurveName |
| Kty | Тип создаваемого ключа. Допустимые значения см. в разделе JsonWebKeyType |
| Теги | Метаданные, относящиеся к приложению, в виде пар "ключ-значение". |
| nbf | Указывает время в качестве объекта DateTime, перед которым не удается использовать ключ. Формат будет представлять собой метку времени Unix, выраженную в количестве секунд после эпохи Unix, начиная с 1 января 1970 года в UTC. |
| exp | Указывает время окончания срока действия в качестве объекта DateTime. Формат будет представлять собой метку времени Unix, выраженную в количестве секунд после эпохи Unix, начиная с 1 января 1970 года в UTC. |
Развертывание шаблона
Вы можете использовать портал Azure, Azure PowerShell, Azure CLI или REST API. Дополнительные сведения о методах развертывания см. в разделе "Развертывание шаблонов".
Проверка развернутых ресурсов
Портал Azure можно использовать для проверки хранилища ключей и ключа. Кроме того, используйте следующий скрипт Azure CLI или Azure PowerShell для перечисления созданного ключа.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Создание ключа с помощью шаблона ARM отличается от создания ключа с помощью плоскости данных
Создание ключа с помощью ARM
Создать можно только новые ключи. Невозможно обновить существующие ключи или создать новые версии существующих ключей. Если ключ уже существует, то существующий ключ извлекается из хранилища и используется (операции записи не будут выполняться).
Чтобы быть авторизованным для использования этого API, вызывающий объект должен иметь действие "Microsoft.KeyVault/vaults/keys/write" для доступа на основе ролей (RBAC). Встроенная роль "Key Vault Contributor" достаточна, так как она авторизует все действия RBAC, соответствующие шаблону "Microsoft.KeyVault/*".
Существующий API (создание ключа с помощью плоскости данных)
- Можно создать новые ключи, обновить существующие ключи и создать новые версии существующих ключей.
- Вызывающий объект должен быть авторизован для использования этого API. Если хранилище использует политики доступа, вызывающий объект должен иметь разрешение на "создание" ключей; если хранилище включено для RBAC, вызывающий объект должен иметь разрешение "Microsoft.KeyVault/vaults/keys/create/action" RBAC DataAction.
Очистите ресурсы
Другие краткие руководства и учебные материалы по 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