Blog

Bewahren Sie Ihre ARM-Bereitstellungsgeheimnisse im Key Vault auf

Peter Groenewegen

Aktualisiert Oktober 21, 2025
3 Minuten

Wenn Sie neue Ressourcen in Azure erstellen, die Geheimnisse wie Passwörter oder SSL-Zertifikate enthalten, können Sie diese sicher im Key Vault speichern und bei der Bereitstellung aus dem Key Vault abrufen. Nur die Personen, die Zugriff auf die Geheimnisse benötigen, können sie im Key Vault lesen und schreiben. In einem Infrastruktur-als-Code-Szenario werden die Geheimnisse bereitgestellt, wenn Sie Ihre Vorlagen in Azure bereitstellen. Der Code selbst ist frei von Geheimnissen.

Um dies zu erreichen, müssen Sie Folgendes tun:
  • Einen Schlüsseltresor einrichten
  • Fügen Sie das Geheimnis zum Key Vault hinzu
  • Erstellen Sie eine ARM-Vorlage, die das Geheimnis bei der Bereitstellung verwendet
Bereitstellen eines Key Vault Wenn Sie von Ihrer Bereitstellung aus auf den Key Vault zugreifen möchten, müssen Sie die Option enabledForTemplateDeployment auf true setzen. Die folgende ARM-Vorlage erstellt einen Key Vault, der für Bereitstellungen aktiviert ist:
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "Parameter": {
  "keyVaultName": {
  "Typ": "string",
  "Metadaten": {
  "Beschreibung": "Name des Tresors"
  }
  },
  "tenantId": {
  "Typ": "string",
  "Metadaten": {
  "Beschreibung": "Tenant Id für das Abonnement und die Verwendung des zugewiesenen Zugriffs auf den Tresor. Verfügbar über das PowerShell-Cmdlet Get-AzureRMSubscription"
  }
  }
  },
  "Variablen":{
  "skuFamily": "A",
  "skuName": "Standard"
  },
  "Ressourcen": [
  {
  "Typ": "Microsoft.KeyVault/vaults",
  "name": "[parameters('keyVaultName')]",
  "apiVersion": "2015-06-01",
  "Standort": "[resourceGroup().location]",
  "Eigenschaften": {
  "sku": {
  "name": "[variables('skuName')]",
  "Familie": "[Variablen('skuFamilie')]"
  },
"accessPolicies": [
],
  "tenantId": "[parameters('tenantId')]",
  "enabledForDeployment": false,
  "enabledForTemplateDeployment": true,
  "enabledForVolumeEncryption": false
  }
  }
  ]
}
Geheimnis zum Key Vault hinzufügen Das Geheimnis kann dem Key Vault mit einer ARM-Vorlage oder mit Powershell hinzugefügt werden oder Sie können es im Portal hinzufügen.
  {
  "Typ": "Geheimnisse",
  "Name": "[parameters('secretName')]",
  "apiVersion": "2015-06-01",
  "Eigenschaften": {
  "Wert": "[parameter('secretValue')]"
  },
  "dependsOn": [
  "[concat('Microsoft.KeyVault/vaults/', parameters('keyVaultName'))]"
  ]
  }
Erstellen Sie eine ARM-Vorlage, die das Geheimnis bei der Bereitstellung verwendet Der letzte Schritt ist die Verwendung der Geheimnisse in Ihren Arm-Vorlagen. Dazu können Sie in den Parametern einen Verweis auf Ihren Schlüsseltresor angeben:
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "Parameter": {
  "Passwort": {
  "Referenz": {
  "keyVault": {
  "id": "/Abonnements/{guid}/resourceGroups/{group-name}/providers/Microsoft.KeyVault/vaults/{vault-name}"
  },
  "GeheimName": "adminPasswort"
  }
  },
  "Benutzername": {
  "Wert": "exampleadmin"
  }
  }
}
Diese Art des Verweises auf das Kennwort ist für ein Infrastruktur-als-Code-Szenario zu statisch. Der nächste Schritt besteht darin, das Geheimnis dynamisch aus dem Key Vault in der Umgebung abzurufen, in der Sie es bereitstellen wollen. Dazu geben Sie den resourceGroupName, vaultName und secretName als Parameter an.
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "Parameter": {
  "vaultName": {
  "Typ": "string"
  },
  "GeheimName": {
  "Typ": "string"
  },
  "keyVaultResourceGroup": {
  "Typ": "string"
  }
  },
  "Ressourcen": [
  {
  "apiVersion": "2015-01-01",
  "name": "nestedTemplate",
  "Typ": "Microsoft.Ressourcen/Einsätze",
  "Eigenschaften": {
  "Modus": "inkrementell",
  "templateLink": {
  "uri": "  ",
  "contentVersion": "1.0.0.0"
  },
  "Parameter": {
  "Passwort": {
  "Referenz": {
  "keyVault": {
  "id": "[concat(subscription().id,'/resourceGroups/',parameters('keyVaultResourceGroup'), '/providers/Microsoft.KeyVault/vaults/', parameters('vaultName'))]"
  },
  "secretName": "[parameters('secretName')]"
  }
  }
  }
  }
  }],
  "Ausgaben": {}
}
Auf diese Weise können Sie die Geheimnisse aus dem Key Vault in dem Abonnement abrufen, in dem Sie die Bereitstellung vornehmen. Weitere Informationen finden Sie unter: resource-manager-keyvault-parameter

Verfasst von

Peter Groenewegen

Contact

Let’s discuss how we can support your journey.