Erstellen eines Azure-Schlüsseltresors und von Tresorzugriffsrichtlinien mithilfe einer Resource Manager-Vorlage
Azure Key Vault ist ein Clouddienst, der einen sicheren Speicher für Geheimnisse wie Schlüssel, Kennwörter und Zertifikate bereitstellt. In diesem Artikel wird die Bereitstellung einer Azure Resource Manager-Vorlage (ARM-Vorlage) zum Erstellen eines Schlüsseltresors beschrieben.
Eine Azure Resource Manager-Vorlage ist eine JSON-Datei (JavaScript Object Notation), die die Infrastruktur und die Konfiguration für Ihr Projekt definiert. Die Vorlage verwendet eine deklarative Syntax. Sie beschreiben Ihre geplante Bereitstellung, ohne die Abfolge der Programmierbefehle zu schreiben, mit denen die Bereitstellung erstellt wird.
Voraussetzungen
Zur Durchführung der in diesem Artikel aufgeführten Schritte ist Folgendes erforderlich:
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Erstellen einer Resource Manager-Vorlage für einen Schlüsseltresor
Mit der folgenden einfachen Vorlage wird ein Schlüsseltresor erstellt. Einige Werte werden in der Vorlage angegeben.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"skuName": {
"type": "string",
"defaultValue": "Standard",
"allowedValues": [
"Standard",
"Premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2019-09-01",
"name": "[parameters('keyVaultName')]",
"location": "[resourceGroup().location]",
"properties": {
"enabledForDeployment": "false",
"enabledForDiskEncryption": "false",
"enabledForTemplateDeployment": "false",
"tenantId": "[subscription().tenantId]",
"accessPolicies": [],
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
}
]
}
Weitere Informationen zu Key Vault-Vorlageneinstellungen finden Sie unter Key Vault ARM-Vorlagenreferenz.
Wichtig
Wenn eine Vorlage erneut bereitgestellt wird, werden alle vorhandenen Zugriffsrichtlinien im Schlüsseltresor überschrieben. Es wird empfohlen, die accessPolicies
-Eigenschaft mit vorhandenen Zugriffsrichtlinien aufzufüllen, um zu verhindern, dass Sie den Zugriff auf den Schlüsseltresor verlieren.
Hinzufügen einer Zugriffsrichtlinie zu einer Key Vault Resource Manager-Vorlage
Sie können Zugriffsrichtlinien für einen vorhandenen Schlüsseltresor ohne erneute Bereitstellung der gesamten Schlüsseltresorvorlage bereitstellen. Die folgende Vorlage stellt eine einfache Möglichkeit zum Erstellen von Zugriffsrichtlinien dar:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"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."
}
},
"certificatePermissions": {
"type": "array",
"defaultValue": [
"list"
],
"metadata": {
"description": "Specifies the permissions to certificates in the vault. Valid values are: all, create, delete, update, deleteissuers, get, getissuers, import, list, listissuers, managecontacts, manageissuers, recover, backup, restore, setissuers, and purge."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults/accessPolicies",
"name": "[concat(parameters('keyVaultName'), '/add')]",
"apiVersion": "2019-09-01",
"properties": {
"accessPolicies": [
{
"tenantId": "[subscription().tenantId]",
"objectId": "[parameters('objectId')]",
"permissions": {
"keys": "[parameters('keysPermissions')]",
"secrets": "[parameters('secretsPermissions')]",
"certificates": "[parameters('certificatePermissions')]"
}
}
]
}
}
]
}
Weitere Informationen zu Key Vault-Vorlageneinstellungen finden Sie unter Key Vault ARM-Vorlagenreferenz.
Weitere Key Vault Resource Manager-Vorlagen
Für Key Vault-Objekte stehen weitere Resource Manager-Vorlagen zur Verfügung:
Geheimnisse | Schlüssel | Zertifikate |
---|---|---|
– | – |
Weitere Key Vault-Vorlagen finden Sie hier: Key Vault Resource Manager-Referenz
Bereitstellen der Vorlagen
Sie können das Azure-Portal verwenden, um die oben genannten Vorlagen mithilfe der Option Eigene Vorlage im Editor erstellen bereitzustellen, die hier beschrieben ist: Bereitstellen von Ressourcen mithilfe einer benutzerdefinierten Vorlage
Sie können die oben aufgeführten Vorlagen auch in Dateien speichern und die folgenden Befehle verwenden: New-AzResourceGroupDeployment und az group deployment create:
New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile key-vault-template.json
az deployment group create --resource-group ExampleGroup --template-file key-vault-template.json
Bereinigen von Ressourcen
Falls Sie mit weiteren Schnellstarts und Tutorials fortfahren möchten, müssen Sie diese Ressourcen nicht bereinigen. Wenn Sie die Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe. Wenn Sie die Gruppe löschen, werden auch der Schlüsseltresor und zugehörige Ressourcen gelöscht. Wenn Sie die Ressourcengruppe mit der Azure CLI oder Azure PowerShell löschen möchten, führen Sie die folgenden Schritte aus:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Ressourcen
- Lesen Sie die Übersicht über den Azure-Schlüsseltresor.
- Hier finden Sie weitere Informationen zum Azure-Ressourcen-Manager.
- Azure Key Vault-Sicherheitsübersicht