Rychlý start: Vytvoření trezoru klíčů Azure a klíče pomocí šablony ARM

Azure Key Vault je cloudová služba, která poskytuje zabezpečené úložiště tajných kódů, jako jsou klíče, hesla a certifikáty. Tento rychlý start se zaměřuje na proces nasazení šablony Azure Resource Manageru (šablony ARM) pro vytvoření trezoru klíčů a klíče.

Požadavky

K dokončení tohoto článku:

Kontrola šablony

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

V šabloně jsou definovány dva prostředky:

Další ukázky šablon Azure Key Vault najdete v šablonách rychlého startu Azure.

Parametry a definice

Parametr Definice
keyOps Určuje operace, které lze provést pomocí klíče. Pokud tento parametr nezadáte, můžete provést všechny operace. Přijatelné hodnoty pro tento parametr jsou čárkami oddělený seznam operací s klíči definovaný specifikací JSON Web Key (JWK):
["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"]
CurveName Název tři tečky (EC) pro typ klíče EC. Viz JsonWebKeyCurveName
Kty Typ klíče, který chcete vytvořit. Platné hodnoty najdete v souboru JsonWebKeyType.
Značky Metadata specifická pro aplikaci ve formě párů klíč-hodnota.
nbf Určuje čas, jako objekt DateTime, před kterým nelze klíč použít. Formát by byl časový razítko Unixu (počet sekund po Unix Epochu 1. ledna 1970 v UTC).
Exp Určuje čas vypršení platnosti jako objekt DateTime. Formát by byl časový razítko Unixu (počet sekund po Unix Epochu 1. ledna 1970 v UTC).

Nasazení šablony

Můžete použít Azure Portal, Azure PowerShell, Azure CLI nebo REST API. Další informace o metodách nasazení najdete v tématu Nasazení šablon.

Kontrola nasazených prostředků

Pomocí webu Azure Portal můžete zkontrolovat trezor klíčů a klíč. K výpisu vytvořeného klíče použijte také následující skript Azure CLI nebo Azure PowerShellu.

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

Vytvoření klíče pomocí šablony ARM se liší od vytvoření klíče prostřednictvím roviny dat.

Vytvoření klíče prostřednictvím ARM

  • Je možné vytvořit pouze nové klíče. Existující klíče není možné aktualizovat ani vytvářet nové verze existujících klíčů. Pokud klíč již existuje, stávající klíč se načte z úložiště a použije se (nedojde k žádným operacím zápisu).

  • Aby mohl volající používat toto rozhraní API, musí mít akci řízení přístupu na základě role (RBAC) Microsoft.KeyVault/vaults/keys/write . Předdefinovaná role Přispěvatel služby Key Vault je dostatečná, protože autorizuje všechny akce RBAC, které odpovídají vzoru Microsoft.KeyVault/*.

    Vytvoření klíče prostřednictvím ARM 1Vytvoření klíče prostřednictvím ARM 2

Existující rozhraní API (vytvoření klíče prostřednictvím roviny dat)

  • Je možné vytvářet nové klíče, aktualizovat existující klíče a vytvářet nové verze existujících klíčů.
  • Volající musí mít oprávnění k používání tohoto rozhraní API. Pokud trezor používá zásady přístupu, volající musí mít oprávnění k vytvoření klíče. Pokud je trezor povolený pro RBAC, volající musí mít "Microsoft.KeyVault/vaults/keys/create/action" DataAction RBAC.

Vyčištění prostředků

Další rychlé starty a kurzy týkající se služby Key Vault vycházejí z tohoto rychlého startu. Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, možná budete chtít tyto prostředky zachovat. Až nebudete prostředky potřebovat, odstraňte jejich skupinu. Tím odstraníte Key Vault i související prostředky. Odstranění skupiny prostředků pomocí Azure CLI nebo Azure PowerShellu:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Další kroky

V tomto rychlém startu jste vytvořili trezor klíčů a klíč pomocí šablony ARM a ověřili jste nasazení. Další informace o službě Key Vault a Azure Resource Manageru najdete v těchto článcích.