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 skapar du ett kostnadsfritt konto innan du börjar.
  • Användaren måste ha en inbyggd Azure-rolltilldelad, 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. De acceptabla värdena för den här parametern är en kommaavgränsad lista över nyckelåtgärder enligt JSON-specifikationen (JSON Web Key):
["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"]
CurveName Elliptisk kurva (EC) namn för EC-nyckeltyp. Se JsonWebKeyCurveName
Kty Vilken 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-portalen, Azure PowerShell, Azure CLI eller REST API. Mer information om distributionsmetoder finns i Distribuera mallar.

Granska distribuerade resurser

Du kan använda Azure-portalen för att kontrollera nyckelvalvet och nyckeln. Du kan också använda följande Azure CLI- eller Azure PowerShell-skript för att lista den nyckel 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 hjälp av ARM-mallen 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 DataAction för "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.