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

Az Azure Key Vault egy felhőszolgáltatás, amely biztonságos tárat biztosít a titkos kódokhoz, 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 rendelkeznie kell egy azure-beli beépített szerepkörrel, amely ajánlott szerepkör-közreműködő. 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ákat az Azure rövid útmutatósablonjai között talál.

Paraméterek és definíciók

Paraméter Meghatározás
keyOps A kulcs használatával végrehajtható műveleteket adja meg. Ha nem adja meg ezt a paramétert, minden műveletet végrehajthat. A paraméter elfogadható értékei a kulcsműveletek vesszővel tagolt listája, amelyet a JSON Web Key (JWK) specifikációja határoz meg:
["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"]
CurveName Az EC-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 Megadja az időt DateTime objektumként, 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) lesz).
Exp A lejárati időt adja meg DateTime objektumként. A formátum Unix időbélyeg (a Unix Epoch utáni másodpercek száma 1970. január 1-jén (UTC) lesz).

A sablon üzembe helyezése

Használhatja Azure Portal, Azure PowerShell, Azure CLI vagy REST API-t. Az üzembehelyezési módszerekkel kapcsolatos további információkért lásd: Sablonok üzembe helyezése.

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

A Azure Portal segítségével ellenőrizheti a kulcstartót és a kulcsot. Másik lehetőségként használja a következő Azure CLI-t vagy Azure PowerShell szkriptet a létrehozott kulcs listázásához.

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 nem ugyanaz, mint az adatsíkon keresztüli kulcs létrehozása

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 felhasználja (nem történik írási művelet).

  • Ahhoz, hogy jogosult legyen az API használatára, a hívónak rendelkeznie kell a "Microsoft.KeyVault/vaults/keys/write" szerepköralapú hozzáférés-vezérlési (RBAC) műveletpel. 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 ARM 2-en keresztül

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 utasítással.

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 Azure PowerShell használatával:

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

További lépések

Ebben a rövid útmutatóban létrehozott egy kulcstartót és egy kulcsot egy ARM-sablonnal, és ellenőrizte az üzembe helyezést. A Key Vault és az Azure Resource Manager kapcsolatos további információkért tekintse meg ezeket a cikkeket.