Så här skapar du en azure-nyckelvalv och en åtkomstprincip för valv med hjälp av en Resource Manager-mall

Azure Key Vault är en molntjänst som tillhandahåller ett säkert arkiv för hemligheter som nycklar, lösenord och certifikat. Den här artikeln beskriver processen för 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.

Förutsättningar

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

Skapa en Key Vault Resource Manager-mall

Följande mall visar ett grundläggande sätt att skapa ett nyckelvalv. Vissa värden anges i mallen.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the key vault."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "Standard",
      "allowedValues": [
        "Standard",
        "Premium"
      ],
      "metadata": {
        "description": "Specifies whether the key vault is a standard vault or a premium vault."
      }
    }
   },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2019-09-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "enabledForDeployment": "false",
        "enabledForDiskEncryption": "false",
        "enabledForTemplateDeployment": "false",
        "tenantId": "[subscription().tenantId]",
        "accessPolicies": [],
        "sku": {
          "name": "[parameters('skuName')]",
          "family": "A"
        },
        "networkAcls": {
          "defaultAction": "Allow",
          "bypass": "AzureServices"
        }
      }
    }
  ]
}

Mer information om inställningar för Key Vault-mallar finns i Referens för Key Vault ARM-mall.

Viktigt!

Om en mall distribueras om kommer alla befintliga åtkomstprinciper i nyckelvalvet att åsidosättas. Vi rekommenderar att du fyller egenskapen accessPolicies med befintliga åtkomstprinciper för att undvika att förlora åtkomsten till nyckelvalvet.

Lägga till en åtkomstprincip i en Key Vault Resource Manager-mall

Du kan distribuera åtkomstprinciper till ett befintligt nyckelvalv utan att distribuera om hela nyckelvalvsmallen. Följande mall visar ett grundläggande sätt att skapa åtkomstprinciper:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the key vault."
      }
    },
    "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."
      }
    },
    "certificatePermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to certificates in the vault. Valid values are: all,  create, delete, update, deleteissuers, get, getissuers, import, list, listissuers, managecontacts, manageissuers,  recover, backup, restore, setissuers, and purge."
      }
    }
  },
  "resources": [
     {
      "type": "Microsoft.KeyVault/vaults/accessPolicies",
      "name": "[concat(parameters('keyVaultName'), '/add')]",
      "apiVersion": "2019-09-01",
      "properties": {
        "accessPolicies": [
          {
            "tenantId": "[subscription().tenantId]",
            "objectId": "[parameters('objectId')]",
            "permissions": {
              "keys": "[parameters('keysPermissions')]",
              "secrets": "[parameters('secretsPermissions')]",
              "certificates": "[parameters('certificatePermissions')]"
            }
          }
        ]
      }
    }
  ]
}

Mer information om inställningar för Key Vault-mallar finns i Referens för KEY Vault ARM-mall.

Fler Key Vault Resource Manager-mallar

Det finns andra Resource Manager-mallar tillgängliga för Key Vault-objekt:

Hemligheter Nycklar Certifikat
Saknas Saknas

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

Distribuera mallarna

Du kan använda Azure-portalen för att distribuera föregående mallar med hjälp av alternativet Skapa en egen mall i redigeraren enligt beskrivningen här: Distribuera resurser från en anpassad mall.

Du kan också spara föregående mallar i filer och använda följande kommandon: New-AzResourceGroupDeployment och az deployment group create:

New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile key-vault-template.json
az deployment group create --resource-group ExampleGroup --template-file key-vault-template.json

Rensa resurser

Om du planerar att fortsätta med efterföljande snabbstarter och självstudier kan du lämna dessa resurser på plats. Ta bort resursgruppen när du inte längre behöver resurserna. Om du tar bort gruppen tas även nyckelvalvet och relaterade resurser bort. Utför följande steg för att ta 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 ..."

Resurser

Nästa steg