Megosztás a következőn keresztül:


Rövid útmutató: Azure Key Vault és kulcs létrehozása ARM-sablonnal

Az Azure Key Vault egy felhőalapú szolgáltatás, amely biztonságos tárat biztosít a titkos kulcsokhoz, például kulcsokhoz, jelszavakhoz és tanúsítványokhoz. Ez a rövid útmutató egy Azure Resource Manager-sablon (ARM-sablon) üzembe helyezésének folyamatára összpontosít egy kulcstartó és egy kulcs létrehozásához.

Előfeltételek

A cikk elvégzéséhez:

  • Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
  • A felhasználónak azure-beli beépített szerepkört kell hozzárendelnie, ajánlott szerepkör-közreműködőt kell megadnia. További információ itt

A sablon áttekintése

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

A sablonban két erőforrás van definiálva:

További Azure Key Vault-sablonminták találhatók az Azure Gyorsindítási sablonokban.

Paraméterek és definíciók

Paraméter Definíció
keyOps A kulcs használatával végrehajtható műveleteket adja meg. Ha nem adja meg ezt a paramétert, minden művelet végrehajtható. A paraméter elfogadható értékei a JSON Web Key (JWK) specifikációja által meghatározott kulcsműveletek vesszővel tagolt listája:
["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"]
CurveName Az EK-kulcs típusának elliptikus görbe (EC) neve. Lásd: JsonWebKeyCurveName
Kty A létrehozandó kulcs típusa. Érvényes értékekért lásd: JsonWebKeyType
Címkék Alkalmazásspecifikus metaadatok kulcs-érték párok formájában.
nbf Dátum/idő objektumként adja meg az időt, amely előtt a kulcs nem használható. A formátum unix időbélyeg (a Unix Epoch utáni másodpercek száma 1970. január 1-jén (UTC).
Exp Dátum/idő objektumként adja meg a lejárati időt. A formátum unix időbélyeg (a Unix Epoch utáni másodpercek száma 1970. január 1-jén (UTC).

A sablon üzembe helyezése

Használhatja az Azure Portalt, az Azure PowerShellt, az Azure CLI-t vagy a REST API-t. Az üzembe helyezési módszerekről a Sablonok üzembe helyezése című témakörben olvashat.

Üzembe helyezett erőforrások áttekintése

Az Azure Portalon ellenőrizheti a kulcstartót és a kulcsot. Másik lehetőségként a következő Azure CLI- vagy Azure PowerShell-szkripttel listázhatja a létrehozott kulcsot.

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

A kulcs ARM-sablonnal való létrehozása eltér az adatsíkon keresztüli kulcskészítéstől

Kulcs létrehozása ARM-en keresztül

  • Csak új kulcsok hozhatók létre. A meglévő kulcsok frissítése és a meglévő kulcsok új verzióinak létrehozása nem lehetséges. Ha a kulcs már létezik, akkor a rendszer lekéri a meglévő kulcsot a tárolóból, és használja (nem történik írási művelet).

  • Az API használatához a hívónak rendelkeznie kell a "Microsoft.KeyVault/vaults/keys/write" szerepköralapú hozzáférés-vezérlési (RBAC) műveletével. A beépített "Key Vault-közreműködő" szerepkör elegendő, mivel minden olyan RBAC-műveletet engedélyez, amely megfelel a "Microsoft.KeyVault/*" mintának.

    Kulcs létrehozása ARM 1-en keresztülKulcs létrehozása AZ ARM 2-ben

Meglévő API (kulcs létrehozása adatsíkon keresztül)

  • Létrehozhat új kulcsokat, frissítheti a meglévő kulcsokat, és létrehozhatja a meglévő kulcsok új verzióit.
  • A hívónak jogosultnak kell lennie az API használatára. Ha a tároló hozzáférési szabályzatokat használ, a hívónak "létrehozási" kulcs engedéllyel kell rendelkeznie; Ha a tároló engedélyezve van az RBAC-hez, a hívónak rendelkeznie kell a "Microsoft.KeyVault/vaults/keys/create/action" RBAC DataAction értékkel.

Az erőforrások eltávolítása

Erre a rövid útmutatóra egyéb Key Vault-útmutatók és oktatóanyagok is épülnek. Ha azt tervezi, hogy az ezt követő rövid útmutatókkal és oktatóanyagokkal dolgozik tovább, ne törölje ezeket az erőforrásokat. Ha már nincs rá szükség, törölje az erőforráscsoportot. Ezzel törli a kulcstartót és a kapcsolódó erőforrásokat is. Az erőforráscsoport törlése az Azure CLI vagy az Azure PowerShell használatával:

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

Következő lépések

Ebben a rövid útmutatóban létrehozott egy kulcstartót és egy kulcsot egy ARM-sablon használatával, és érvényesítette az üzembe helyezést. A Key Vaultról és az Azure Resource Managerről az alábbi cikkekben olvashat bővebben.