Snabbstart: Skapa ett Azure nyckelvalv med hjälp av ARM-mall

Azure Key Vault är en molntjänst som tillhandahåller ett säkert arkiv för hemligheter, till exempel nycklar, lösenord och certifikat. Den här snabbstarten fokuserar på processen att distribuera en Azure Resource Manager mall (ARM-mall) för att skapa ett nyckelvalv.

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 i Azure-portalen.

Button för att distribuera mallen Resource Manager till Azure.

Förutsättningar

Så här slutför du den här artikeln:

  • Om du inte har en Azure-prenumeration, skapa ett gratis konto innan du börjar.

Granska mallens layout

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": "5424899472990749957"
    }
  },
  "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."
      }
    },
    "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')]",
        "enableRbacAuthorization": true,
        "tenantId": "[parameters('tenantId')]",
        "enableSoftDelete": true,
        "softDeleteRetentionInDays": 90,
        "enablePurgeProtection": true,
        "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'))]"
    }
  }
}

En Azure-resurs har definierats i mallen:

  • Microsoft.KeyVault/vaults: skapa ett Azure-nyckelvalv. Mallen möjliggör Azure RBAC-auktorisering (enableRbacAuthorization: true), mjuk borttagning och rensningsskydd.

Fler Azure Key Vault-mallexempel finns i Azure-snabbstartsmallar.

Använd mallen

  1. Välj följande bild för att logga in på Azure och öppna en mall. Mallen skapar ett nyckelvalv.

    Button för att distribuera mallen Resource Manager till Azure.

  2. Välj eller ange följande värden. Om det inte anges använder du standardvärdet.

    • Prenumeration: 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. Till exempel Centrala USA.
    • Valvnamn: Ange ett namn för nyckelvalvet, som måste vara globalt unikt inom vault.azure.net namnområdet.
    • SKU-namn: välj standard eller premium. Standardvärdet är standard.
  3. Välj Granska + skapaoch välj sedan Skapa. När nyckelvalvet har distribuerats får du ett meddelande om att distributionen lyckades.

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. Om du vill skapa eller läsa nycklar, hemligheter eller certifikat via dataplanet måste du tilldela dig själv en lämplig roll. Om du till exempel vill hantera hemligheter tilldelar du dig själv rollen Key Vault Secrets Officer:

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

Information om andra inbyggda roller finns i Azures inbyggda roller för åtgärder i Key Vault-dataplanet. 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 eller använda följande Azure CLI eller Azure PowerShell skript:

echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault show --name $keyVaultName

Rensa resurser

Andra Key Vault-snabbstarter och handledningar bygger på denna snabbstart. Om du planerar att fortsätta med efterföljande snabbstartsguider och handledningar, kan det vara bra att låta dessa resurser vara kvar. När den inte längre behövs tar du bort resursgruppen, som tar bort nyckelvalvet och relaterade resurser.

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName

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.

Fler Key Vault Resource Manager-mallar

Andra snabbstarter går igenom hur du fyller ett nyckelvalv med hemligheter, nycklar eller certifikat:

Hemligheter Keys Certifikat

Du hittar fler Key Vault-mallar här: Key Vault Resource Manager-referens.

Nästa steg