Rychlý start: Vytvoření trezoru klíčů Azure a klíče pomocí šablony ARM
Azure Key Vault je cloudová služba, která poskytuje zabezpečené úložiště tajných kódů, jako jsou klíče, hesla a certifikáty. Tento rychlý start se zaměřuje na proces nasazení šablony Azure Resource Manageru (šablony ARM) pro vytvoření trezoru klíčů a klíče.
Požadavky
K dokončení tohoto článku:
- Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
- Uživatel by musel mít přiřazenou předdefinovanou roli Azure, doporučenou přispěvateli rolí. Další informace najdete tady.
Kontrola šablony
{
"$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')))]"
}
}
}
V šabloně jsou definovány dva prostředky:
Další ukázky šablon Azure Key Vault najdete v šablonách rychlého startu Azure.
Parametry a definice
Parametr | Definice |
---|---|
keyOps | Určuje operace, které lze provést pomocí klíče. Pokud tento parametr nezadáte, můžete provést všechny operace. Přijatelné hodnoty pro tento parametr jsou čárkami oddělený seznam operací s klíči definovaný specifikací JSON Web Key (JWK):["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
CurveName | Název tři tečky (EC) pro typ klíče EC. Viz JsonWebKeyCurveName |
Kty | Typ klíče, který chcete vytvořit. Platné hodnoty najdete v souboru JsonWebKeyType. |
Značky | Metadata specifická pro aplikaci ve formě párů klíč-hodnota. |
nbf | Určuje čas, jako objekt DateTime, před kterým nelze klíč použít. Formát by byl časový razítko Unixu (počet sekund po Unix Epochu 1. ledna 1970 v UTC). |
Exp | Určuje čas vypršení platnosti jako objekt DateTime. Formát by byl časový razítko Unixu (počet sekund po Unix Epochu 1. ledna 1970 v UTC). |
Nasazení šablony
Můžete použít Azure Portal, Azure PowerShell, Azure CLI nebo REST API. Další informace o metodách nasazení najdete v tématu Nasazení šablon.
Kontrola nasazených prostředků
Pomocí webu Azure Portal můžete zkontrolovat trezor klíčů a klíč. K výpisu vytvořeného klíče použijte také následující skript Azure CLI nebo Azure PowerShellu.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Vytvoření klíče pomocí šablony ARM se liší od vytvoření klíče prostřednictvím roviny dat.
Vytvoření klíče prostřednictvím ARM
Je možné vytvořit pouze nové klíče. Existující klíče není možné aktualizovat ani vytvářet nové verze existujících klíčů. Pokud klíč již existuje, stávající klíč se načte z úložiště a použije se (nedojde k žádným operacím zápisu).
Aby mohl volající používat toto rozhraní API, musí mít akci řízení přístupu na základě role (RBAC) Microsoft.KeyVault/vaults/keys/write . Předdefinovaná role Přispěvatel služby Key Vault je dostatečná, protože autorizuje všechny akce RBAC, které odpovídají vzoru Microsoft.KeyVault/*.
Existující rozhraní API (vytvoření klíče prostřednictvím roviny dat)
- Je možné vytvářet nové klíče, aktualizovat existující klíče a vytvářet nové verze existujících klíčů.
- Volající musí mít oprávnění k používání tohoto rozhraní API. Pokud trezor používá zásady přístupu, volající musí mít oprávnění k vytvoření klíče. Pokud je trezor povolený pro RBAC, volající musí mít "Microsoft.KeyVault/vaults/keys/create/action" DataAction RBAC.
Vyčištění prostředků
Další rychlé starty a kurzy týkající se služby Key Vault vycházejí z tohoto rychlého startu. Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, možná budete chtít tyto prostředky zachovat. Až nebudete prostředky potřebovat, odstraňte jejich skupinu. Tím odstraníte Key Vault i související prostředky. Odstranění skupiny prostředků pomocí Azure CLI nebo Azure PowerShellu:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Další kroky
V tomto rychlém startu jste vytvořili trezor klíčů a klíč pomocí šablony ARM a ověřili jste nasazení. Další informace o službě Key Vault a Azure Resource Manageru najdete v těchto článcích.