Snabbstart: Ange och hämta en hemlighet från Azure Key Vault med hjälp av en ARM-mall
Azure Key Vault är en molntjänst som tillhandahåller ett säkert arkiv för hemligheter, till exempel nycklar, lösenord, certifikat och andra hemligheter. Den här snabbstarten fokuserar på processen att distribuera en Azure Resource Manager-mall (ARM-mall) för att skapa ett nyckelvalv och en hemlighet.
En Azure Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Mallen använder deklarativ syntax. Du beskriver den avsedda distributionen utan att skriva sekvensen med programmeringskommandon för att skapa distributionen.
Om din miljö uppfyller förhandskraven och du är van att använda ARM-mallar väljer du knappen Distribuera till Azure. Mallen öppnas på Azure-portalen.
Förutsättningar
Så här slutför du den här artikeln:
Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Ditt Microsoft Entra-användarobjekt-ID krävs av mallen för att konfigurera behörigheter. Följande procedur hämtar objekt-ID:t (GUID).
Kör följande Azure PowerShell- eller Azure CLI-kommando genom att välja Prova och klistra sedan in skriptet i gränssnittsfönstret. Om du vill klistra in skriptet högerklickar du på gränssnittet och väljer sedan Klistra in.
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 ..."
Anteckna objekt-ID:t. Du behöver det i nästa avsnitt i den här snabbstarten.
Granska mallen
Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar.
{
"$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'))]"
}
}
}
Två Azure-resurser definieras i mallen:
- Microsoft.KeyVault/vaults: skapa ett Azure-nyckelvalv.
- Microsoft.KeyVault/vaults/secrets: skapa en nyckelvalvshemlighet.
Fler Azure Key Vault-mallexempel finns i Azure-snabbstartsmallar.
Distribuera mallen
Välj följande bild för att logga in på Azure och öppna en mall. Mallen skapar ett nyckelvalv och en hemlighet.
Välj eller ange följande värden.
Om det inte anges använder du standardvärdet för att skapa nyckelvalvet och en hemlighet.
- Prenumeration: välj en Azure-prenumeration.
- Resursgrupp: välj Skapa ny, ange ett unikt namn för resursgruppen och klicka sedan på OK.
- Plats: välj en plats. Välj till exempel USA, centrala.
- Key Vault-namn: ange ett namn för nyckelvalvet, som måste vara globalt unikt i namnområdet .vault.azure.net. Du behöver namnet i nästa avsnitt när du verifierar distributionen.
- Klientorganisations-ID: mallfunktionen hämtar automatiskt ditt klientorganisations-ID. Ändra inte standardvärdet.
- Annonsanvändar-ID: Ange ditt Användarobjekt-ID för Microsoft Entra som du hämtade från Krav.
- Hemligt namn: ange ett namn för hemligheten som du lagrar i nyckelvalvet. Till exempel adminpassword.
- Hemligt värde: ange det hemliga värdet. Om du lagrar ett lösenord rekommenderar vi att du använder det genererade lösenordet som du skapade i Krav.
- Jag godkänner villkoren ovan: Välj.
Välj Köp. När nyckelvalvet har distribuerats får du ett meddelande:
Azure-portalen används för att distribuera mallen. Förutom Azure-portalen kan du även använda Azure PowerShell, Azure CLI och REST API. Mer information om andra distributionsmetoder finns i Distribuera mallar.
Granska distribuerade resurser
Du kan antingen använda Azure-portalen för att kontrollera nyckelvalvet och hemligheten, eller använda följande Azure CLI- eller Azure PowerShell-skript för att visa den hemlighet som skapats.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Utdata ser ut ungefär så här:
Rensa resurser
Andra snabbstarter och självstudier om Key Vault bygger på den här snabbstarten. Om du planerar att fortsätta med efterföljande snabbstarter och självstudier kan du lämna kvar de här resurserna. När du inte behöver resursgruppen längre så tar du bort den. Då tas även nyckelvalvet och relaterade resurser bort. Så här tar du bort resursgruppen med hjälp av Azure CLI eller Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Nästa steg
I den här snabbstarten skapade du ett nyckelvalv och en hemlighet med hjälp av en ARM-mall och verifierade distributionen. Om du vill veta mer om Key Vault och Azure Resource Manager fortsätter du till artiklarna nedan.
- Läs en översikt över Azure Key Vault
- Läs mer om Azure Resource Manager
- Granska säkerhetsöversikten för Key Vault