Snabbstart: Skapa ett Azure-nyckelvalv och en nyckel 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 och en nyckel.

Förutsättningar

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

  • Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
  • Användaren måste ha en inbyggd Azure-roll tilldelad, rekommenderad rolldeltagare. Läs mer här

Granska mallen

{
  "$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')))]"
    }
  }
}

Två resurser definieras i mallen:

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

Parametrar och definitioner

Parameter Definition
keyOps Anger åtgärder som kan utföras med hjälp av nyckeln. Om du inte anger den här parametern kan alla åtgärder utföras. Godkända värden för den här parametern är en kommaavgränsad lista över nyckelåtgärder som definieras av JSON-webbnyckelspecifikationen (JWK):
["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"]
CurveName Elliptisk kurva (EC) för EC-nyckeltyp. Se JsonWebKeyCurveName
Kty Typ av nyckel som ska skapas. Giltiga värden finns i JsonWebKeyType
Taggar Programspecifika metadata i form av nyckel/värde-par.
Nbf Anger tiden, som ett DateTime-objekt, innan nyckeln inte kan användas. Formatet skulle vara Unix tidsstämpel (antalet sekunder efter Unix Epoch den 1 januari 1970 vid UTC).
Exp Anger förfallotiden som ett DateTime-objekt. Formatet skulle vara Unix tidsstämpel (antalet sekunder efter Unix Epoch den 1 januari 1970 vid UTC).

Distribuera mallen

Du kan använda Azure Portal, Azure PowerShell, Azure CLI eller REST API. Mer information om distributionsmetoder finns i Distribuera mallar.

Granska distribuerade resurser

Du kan använda Azure Portal för att kontrollera nyckelvalvet och nyckeln. Du kan också använda följande Azure CLI- eller Azure PowerShell-skript för att visa en lista över nyckeln som skapats.

echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."

Att skapa en nyckel med arm-mall skiljer sig från att skapa en nyckel via dataplanet

Skapa en nyckel via ARM

  • Det går bara att skapa nya nycklar. Det går inte att uppdatera befintliga nycklar eller skapa nya versioner av befintliga nycklar. Om nyckeln redan finns hämtas den befintliga nyckeln från lagringen och används (inga skrivåtgärder utförs).

  • För att ha behörighet att använda det här API:et måste anroparen ha rollbaserad åtkomstkontroll (RBAC) "Microsoft.KeyVault/vaults/keys/write ". Den inbyggda rollen "Key Vault Deltagare" räcker eftersom den godkänner alla RBAC-åtgärder som matchar mönstret "Microsoft.KeyVault/*".

    Skapa en nyckel via ARM 1Skapa en nyckel via ARM 2

Befintligt API (skapa nyckel via dataplan)

  • Det går att skapa nya nycklar, uppdatera befintliga nycklar och skapa nya versioner av befintliga nycklar.
  • Anroparen måste ha behörighet att använda det här API:et. Om valvet använder åtkomstprinciper måste anroparen ha behörigheten "skapa"-nyckel. Om valvet är aktiverat för RBAC måste anroparen ha RBAC-åtgärden "Microsoft.KeyVault/vaults/keys/create/action".

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 nyckel med hjälp av en ARM-mall och verifierade distributionen. Mer information om Key Vault och Azure Resource Manager finns i de här artiklarna.