Sdílet prostřednictvím


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 Manager (šablony ARM) pro vytvoření trezoru klíčů a klíče.

Požadavky

Postup pro 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 definované dva prostředky:

Další ukázky šablon Azure Key Vault najdete v tématu Šablony azure pro rychlý start.

Parametry a definice

parametr Definice
keyOps Určuje operace, které lze provádět pomocí klíče. Pokud tento parametr nezadáte, je možné provést všechny operace. Přijatelné hodnoty pro tento parametr jsou čárkami oddělený seznam operací s klíči definovaný specifikací JWK (JSON Web Key):
["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"]
Název křivky Název eliptické křivky (EC) pro typ klíče EC. Viz JsonWebKeyCurveName.
Kty Typ klíče, který chcete vytvořit. Platné hodnoty najdete v tématu 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 unixové časové razítko (počet sekund po unixové epoche 1. ledna 1970 v UTC).
Exp Určuje čas vypršení platnosti jako objekt DateTime. Formát by byl unixové časové razítko (počet sekund po unixové epoche 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í Azure Portal můžete zkontrolovat trezor klíčů a klíč. Případně použijte následující Azure CLI nebo Azure PowerShell skript k výpisu vytvořeného klíče.

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. Není možné aktualizovat existující klíče ani vytvářet nové verze existujících klíčů. Pokud už klíč existuje, načte se existující klíč z úložiště a použije se (neprovedou se žádné operace zápisu).

  • Aby volající mohl toto rozhraní API používat, musí mít akci Řízení přístupu na základě role (RBAC) Microsoft.KeyVault/vaults/keys/write . Předdefinovaná role Přispěvatel 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 1. Vytvoř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 stávají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 RBAC DataAction Microsoft.KeyVault/vaults/keys/create/action.

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 PowerShell:

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 Key Vault a Azure Resource Manager najdete v těchto článcích.