Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 kraven och du är bekant med att använda ARM-mallar väljer du alternativet Distribuera till Azure. Mallen öppnas i 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 free-konto innan du börjar.
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.42.1.51946",
"templateHash": "10998800669048245550"
}
},
"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."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
},
"secretsObject": {
"type": "secureObject",
"metadata": {
"description": "Specifies all secrets {\"secretName\":\"\",\"secretValue\":\"\"} wrapped in a secure object."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('keyVaultName')]",
"location": "[parameters('location')]",
"properties": {
"enabledForDeployment": "[parameters('enabledForDeployment')]",
"enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
"enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
"enableRbacAuthorization": true,
"tenantId": "[parameters('tenantId')]",
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"copy": {
"name": "secrets",
"count": "[length(parameters('secretsObject').secrets)]"
},
"type": "Microsoft.KeyVault/vaults/secrets",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretsObject').secrets[copyIndex()].secretName)]",
"properties": {
"value": "[parameters('secretsObject').secrets[copyIndex()].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 med Azure RBAC-auktorisering aktiverat (
enableRbacAuthorization: true), mjuk borttagning aktiverat och rensningsskydd aktiverat. -
Microsoft. KeyVault/vaults/secrets: skapa en eller flera nyckelvalvshemligheter som itererar över den
secretsObject.secretsmatris som skickas till mallen.
Eftersom valvet använder Azure RBAC för dataplansauktorisering beviljar du åtkomst till hemligheter genom att tilldela en Azure roll (i stället för att konfigurera åtkomstprinciper).
Fler Azure Key Vault mallexempel finns i Azure snabbstartsmallar.
Använd 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.
Subscription: välj en Azure prenumeration.
Resursgrupp: välj Skapa ny, ange ett unikt namn för resursgruppen och välj sedan OK.
Region: välj en plats. Välj till exempel Centrala USA.
Key Vault Name: ange ett namn för key vault, som måste vara globalt unikt inom namnområdet
vault.azure.net. Du behöver det här namnet i nästa avsnitt när du verifierar distributionen.SKU-namn: välj standard eller premium. Standardvärdet är standard.
Hemlighetsobjekt: ange de hemligheter som ska skapas som ett JSON-objekt med en
secretsmatris. Ett exempel:{ "secrets": [ { "secretName": "adminpassword", "secretValue": "<your-secret-value>" } ] }Eftersom Secrets Object är en
secureObjectparameter loggas inte dess värde eller upprepas inte efter distributionen.
Välj Granska + skapaoch välj sedan Skapa. När nyckelvalvet och hemligheten har distribuerats får du ett meddelande.
Du kan också använda Azure PowerShell, Azure CLI eller REST API för att distribuera mallen. Mer information om andra distributionsmetoder finns i Distribuera mallar.
Tilldela en Key Vault RBAC-roll
Nyckelvalvet som skapas av den här mallen använder Azure RBAC för auktorisering. För att få åtkomst till hemligheter via dataplanet (till exempel med hjälp av Azure CLI eller Azure PowerShell) måste du tilldela dig själv en lämplig roll.
Hämta ditt Microsoft Entra användarobjekt-ID:
az ad signed-in-user show --query id -o tsvTilldela rollen Key Vault Secrets Officer till dig själv i nyckelvalvet:
echo "Enter your key vault name:" && read keyVaultName && az role assignment create --role "Key Vault Secrets Officer" \ --assignee-object-id $(az ad signed-in-user show --query id -o tsv) \ --scope $(az keyvault show --name $keyVaultName --query id -o tsv)Note
Rolltilldelningar kan ta en minut eller två att slå igenom.
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 ..."
Rensa resurser
Andra Key Vault snabbstartsguider och handledningar bygger på denna snabbstartsguide. Om du planerar att fortsätta med efterföljande snabbstartsguider och handledningar, kan det vara bra att låta dessa resurser vara kvar. Ta bort resursgruppen när den inte längre behövs, vilket tar bort Key Vault och relaterade resurser. 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 ..."
Note
Om du tar bort resursgruppen tas även nyckelvalvet bort, men valvet går sedan in i ett mjukt borttaget tillstånd och kan fortfarande återställas under kvarhållningsperioden (90 dagar som standard). Valvnamnet förblir reserverat globalt under den perioden och eftersom rensningsskyddet är aktiverat kan valvet inte rensas tidigt. För nyckelvalv av standardtyp medför mjukt borttagna valv inga avgifter. Mer information finns i Översikt över mjuk borttagning i Key Vault.
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 Key Vault