快速入門:使用 ARM 範本建立 Azure 金鑰保存庫和金鑰
Azure Key Vault 是雲端服務,提供安全存放區來儲存祕密,例如金鑰、密碼和憑證。 本快速入門著重於部署 Azure Resource Manager 範本 (ARM 範本) 來建立金鑰保存庫和金鑰的程序。
必要條件
若要完成此文章:
檢閱範本
{
"$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 快速入門範本中,可找到更多 Azure Key Vault 範本範例。
參數和定義
參數 | 定義 |
---|---|
keyOps | 指定可以使用金鑰來執行的作業。 如果不指定此參數,則所有作業都可執行。 此參數可接受的值是以逗號分隔的金鑰作業清單,如 JSON Web 金鑰 (JWK) 規格所定義:["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
CurveName | EC 金鑰類型的橢圓曲線 (EC) 名稱。 請參閱 JsonWebKeyCurveName |
Kty | 要建立的金鑰類型。 關於有效值,請參閱 JsonWebKeyType |
Tags (標籤) | 索引鍵/值組形式的應用程式特有中繼資料。 |
nbf | 以 DateTime 物件指定時間,在此時間之前無法使用金鑰。 格式為 Unix 時間戳記 (Unix Epoch 1970 年 1 月 1 日 UTC 之後的秒數)。 |
exp | 以 DateTime 物件指定到期時間。 格式為 Unix 時間戳記 (Unix Epoch 1970 年 1 月 1 日 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) Action。 內建的「Key Vault 參與者」角色授權所有符合 "Microsoft.KeyVault/*" 模式的 RBAC Action,有此角色就足夠。
現有的 API (透過資料平面建立金鑰)
- 可以建立新的金鑰、更新現有的金鑰,以及建立現有金鑰的新版本。
- 呼叫者必須獲得授權才能使用此 API。 如果保存庫使用存取原則,則呼叫者必須具有「建立」金鑰權限;如果針對 RBAC 啟用保存庫,則呼叫者必須有 "Microsoft.KeyVault/vaults/keys/create/action" RBAC DataAction。
清除資源
其他 Key Vault 快速入門和教學課程會以本快速入門為基礎。 如果您打算繼續進行後續的快速入門和教學課程,您可以讓這些資源留在原處。 如果不再需要,請刪除資源群組,這會刪除 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 安全性概觀