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:

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

Nächste Schritte