Rövid útmutató: Titkos kulcs beállítása és lekérése az Azure Key Vaultból ARM-sablon használatával

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, tanúsítványokhoz és egyéb titkos kódokhoz. Ez a rövid útmutató egy Azure Resource Manager-sablon (ARM-sablon) üzembe helyezésének folyamatára összpontosít egy kulcstartó és egy titkos kulcs létrehozásához.

Az Azure Resource Manager-sablon egy JavaScript Object Notation (JSON) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. A sablon deklaratív szintaxist használ. Az üzembe helyezés létrehozásához szükséges programozási parancsok sorozatának megírása nélkül írhatja le a tervezett üzembe helyezést.

Ha a környezet megfelel az előfeltételeknek, és már ismeri az ARM-sablonokat, kattintson az Üzembe helyezés az Azure-ban gombra. A sablon az Azure Portalon fog megnyílni.

Button to deploy the Resource Manager template to Azure.

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.

  • Az engedélyek konfigurálásához a sablonnak szüksége van a Microsoft Entra felhasználói objektumazonosítóra. Az alábbi eljárás lekéri az objektumazonosítót (GUID).

    1. Futtassa a következő Azure PowerShell- vagy Azure CLI-parancsot a Kipróbálás gombra kattintva, majd illessze be a szkriptet a rendszerhéj panelre. A szkript beillesztéséhez kattintson a jobb gombbal a rendszerhéjra, majd válassza a Beillesztés parancsot.

      echo "Enter your email address that is used to sign in to Azure:" &&
      read upn &&
      az ad user show --id $upn --query "Id" &&
      echo "Press [ENTER] to continue ..."
      
    2. Írja le az objektumazonosítót. A rövid útmutató következő szakaszában szüksége lesz rá.

A sablon áttekintése

Az ebben a gyorsútmutatóban használt sablon az Azure-gyorssablonok közül származik.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.26.54.24096",
      "templateHash": "8629186205194254058"
    }
  },
  "parameters": {
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the key vault."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specifies the Azure location where the key vault should be created."
      }
    },
    "enabledForDeployment": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
      }
    },
    "enabledForDiskEncryption": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
      }
    },
    "enabledForTemplateDeployment": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
      }
    },
    "tenantId": {
      "type": "string",
      "defaultValue": "[subscription().tenantId]",
      "metadata": {
        "description": "Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet."
      }
    },
    "objectId": {
      "type": "string",
      "metadata": {
        "description": "Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets."
      }
    },
    "keysPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge."
      }
    },
    "secretsPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "standard",
      "allowedValues": [
        "standard",
        "premium"
      ],
      "metadata": {
        "description": "Specifies whether the key vault is a standard vault or a premium vault."
      }
    },
    "secretName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the secret that you want to create."
      }
    },
    "secretValue": {
      "type": "securestring",
      "metadata": {
        "description": "Specifies the value of the secret that you want to create."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2023-07-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[parameters('location')]",
      "properties": {
        "enabledForDeployment": "[parameters('enabledForDeployment')]",
        "enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
        "enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
        "tenantId": "[parameters('tenantId')]",
        "enableSoftDelete": true,
        "softDeleteRetentionInDays": 90,
        "accessPolicies": [
          {
            "objectId": "[parameters('objectId')]",
            "tenantId": "[parameters('tenantId')]",
            "permissions": {
              "keys": "[parameters('keysPermissions')]",
              "secrets": "[parameters('secretsPermissions')]"
            }
          }
        ],
        "sku": {
          "name": "[parameters('skuName')]",
          "family": "A"
        },
        "networkAcls": {
          "defaultAction": "Allow",
          "bypass": "AzureServices"
        }
      }
    },
    {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "apiVersion": "2023-07-01",
      "name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretName'))]",
      "properties": {
        "value": "[parameters('secretValue')]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
      ]
    }
  ],
  "outputs": {
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    },
    "name": {
      "type": "string",
      "value": "[parameters('keyVaultName')]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
    }
  }
}

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

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

A sablon üzembe helyezése

  1. Kattintson az alábbi gombra az Azure-ba való bejelentkezéshez és egy sablon megnyitásához. A sablon létrehoz egy kulcstartót és egy titkos kulcsot.

    Button to deploy the Resource Manager template to Azure.

  2. Válassza ki vagy adja meg a következő értékeket.

    ARM template, Key Vault integration, deploy portal

    Ha nincs megadva, használja az alapértelmezett értéket a kulcstartó és a titkos kód létrehozásához.

    • Előfizetés: válasszon ki egy Azure-előfizetést.
    • Erőforráscsoport: válassza az Új létrehozása lehetőséget, adjon meg egy egyedi nevet az erőforráscsoportnak, majd kattintson az OK gombra.
    • Hely: válasszon ki egy helyet. Például: USA középső régiója.
    • Key Vault neve: adja meg a kulcstartó nevét, amelynek globálisan egyedinek kell lennie a .vault.azure.net névtérben. Az üzembe helyezés ellenőrzésekor szüksége lesz a következő szakaszban szereplő névre.
    • Bérlőazonosító: a sablonfüggvény automatikusan lekéri a bérlőazonosítót. Ne módosítsa az alapértelmezett értéket.
    • Hirdetés felhasználói azonosítója: adja meg a Microsoft Entra felhasználói objektumazonosítóját, amelyet az előfeltételekből kapott le.
    • Titkos név: adja meg a kulcstartóban tárolt titkos kulcs nevét. Például: adminpassword.
    • Titkos érték: adja meg a titkos értéket. Ha jelszót tárol, javasoljuk, hogy az előfeltételekben létrehozott jelszót használja.
    • Elfogadom a fenti feltételeket és kikötéseket: Válassza ki.
  3. Válassza a Vásárlás lehetőséget. A kulcstartó sikeres üzembe helyezése után értesítést kap:

    ARM template, Key Vault integration, deploy portal notification

Az Azure Portalon helyezhető üzembe a sablon. Az Azure Portalon kívül használhatja az Azure PowerShellt, az Azure CLI-t és a REST API-t is. Az egyéb üzembehelyezési módszerekről a Sablonok üzembe helyezése című témakörben olvashat.

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

Az Azure Portal használatával ellenőrizheti a kulcstartót és a titkos kulcsot, vagy az alábbi Azure CLI- vagy Azure PowerShell-szkripttel listázhatja a létrehozott titkos kódot.

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

A kimenet a következőhöz hasonló:

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 titkos kulcsot egy ARM-sablon használatával, és érvényesítette az üzembe helyezést. Ha többet szeretne megtudni a Key Vaultról és az Azure Resource Managerről, folytassa az alábbi cikkekkel.