Freigeben über


Schnellstart: Festlegen und Abrufen eines geheimen Schlüssels aus Azure Key Vault mithilfe einer ARM-Vorlage

Azure Key Vault ist ein Clouddienst, der einen sicheren Speicher für geheime Schlüssel wie Schlüssel, Kennwörter, Zertifikate und andere geheime Schlüssel bereitstellt. Diese Schnellstartanleitung konzentriert sich auf den Prozess der Bereitstellung einer Azure Resource Manager-Vorlage (ARM-Vorlage), um einen Schlüsseltresor und einen geheimen Schlüssel zu erstellen.

Eine Azure Resource Manager vorlage ist eine JavaScript Object Notation (JSON)-Datei, die die Infrastruktur und 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.

Wenn Ihre Umgebung die Voraussetzungen erfüllt und Sie mit der Verwendung von ARM-Vorlagen vertraut sind, wählen Sie die Schaltfläche Deploy to Azure aus. Die Vorlage wird im Azure Portal geöffnet.

Button zum Bereitstellen der Resource Manager Vorlage auf Azure.

Voraussetzungen

Gehen Sie wie folgt vor, um diesen Artikel abzuschließen:

  • Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein free-Konto, bevor Sie beginnen.

  • Ihre Microsoft Entra Benutzerobjekt-ID wird von der Vorlage benötigt, um Berechtigungen zu konfigurieren. Die folgende Prozedur ruft die Objekt-ID (GUID) ab.

    1. Führen Sie den folgenden befehl Azure PowerShell oder Azure CLI aus, indem Sie Try it auswählen und dann das Skript in den Shellbereich einfügen. Klicken Sie zum Einfügen des Skripts mit der rechten Maustaste auf die Shell, und wählen Sie Einfügen aus.

      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. Notieren Sie sich die Objekt-ID. Sie benötigen ihn im nächsten Abschnitt dieser Schnellstartanleitung.

Überprüfen der Vorlage

Von Bedeutung

Diese Schnellstartanleitung verwendet eine externe Vorlage, die einen Tresor mit älteren Zugriffsrichtlinien erstellt. Verwenden Sie für Produktionsbereitstellungen stattdessen Azure RBAC-Autorisierung. Weitere Informationen finden Sie unter Erstellen Sie einen Schlüsseltresor mit einer ARM-Vorlage für eine Vorlage, die enableRbacAuthorization: true verwendet, oder sehen Sie sich Sichern Sie Ihren Azure-Schlüsseltresor für umfassende Sicherheitsrichtlinien an.

Die in dieser Schnellstartanleitung verwendete Vorlage stammt aus Azure Schnellstartvorlagen.

{
  "$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'))]"
    }
  }
}

In der Vorlage sind zwei Azure Ressourcen definiert:

Weitere Azure Key Vault Vorlagenbeispiele finden Sie in Azure Schnellstartvorlagen.

Implementieren der Vorlage

  1. Wählen Sie das folgende Bild aus, um sich bei Azure anzumelden und eine Vorlage zu öffnen. Die Vorlage erstellt einen Schlüsseltresor und ein Geheimnis.

    Button zum Bereitstellen der Resource Manager Vorlage auf Azure.

  2. Wählen Sie die folgenden Werte aus, bzw. geben Sie sie ein.

    ARM-Vorlage, Key Vault Integration, Portal bereitstellen

    Sofern nicht anders angegeben, verwenden Sie den Standardwert, um den Schlüsseltresor und ein Geheimnis zu erstellen.

    • Subscription: Wählen Sie ein Azure-Abonnement aus.
    • Ressourcengruppe: Wählen Sie die Option Neu erstellen aus, geben Sie einen eindeutigen Namen für die Ressourcengruppe ein, und klicken Sie dann auf OK.
    • Standort: Wählen Sie einen Standort aus. Beispiel: USA, Mitte.
    • Key Vault Name: Geben Sie einen Namen für den Key Vault ein, der innerhalb des Namespace .vault.azure.net global eindeutig sein muss. Sie benötigen den Namen im nächsten Abschnitt, wenn Sie die Bereitstellung validieren.
    • Mandanten-ID: Die Vorlagenfunktion ruft automatisch Ihre Mandanten-ID ab. Ändern Sie nicht den Standardwert.
    • Ad User Id: Geben Sie Ihre Microsoft Entra Benutzerobjekt-ID ein, die Sie aus Prerequisites abgerufen haben.
    • Geheimer Name: Geben Sie einen Namen für den geheimen Schlüssel ein, den Sie im Schlüsseltresor speichern. Beispiel: adminpassword.
    • Geheimer Wert: Geben Sie den geheimen Wert ein. Wenn Sie ein Kennwort speichern, empfiehlt es sich, das generierte Kennwort zu verwenden, das Sie in den Voraussetzungen erstellt haben.
    • Ich stimme den oben genannten Geschäftsbedingungen zu: Aktivieren Sie dieses Kontrollkästchen.
  3. Wählen Sie "Kaufen" aus. Nach der erfolgreichen Bereitstellung des Schlüsseltresors erhalten Sie eine Benachrichtigung:

    ARM-Vorlage, Key Vault Integration, Bereitstellen von Portalbenachrichtigungen

Das Azure Portal wird verwendet, um die Vorlage bereitzustellen. Zusätzlich zum Azure-Portal können Sie auch die Azure PowerShell-, Azure CLI- und REST-API verwenden. Informationen zu anderen Bereitstellungsmethoden finden Sie unter Bereitstellen von Vorlagen.

Überprüfen der bereitgestellten Ressourcen

Sie können entweder das Azure-Portal verwenden, um den Schlüsseltresor und den geheimen Schlüssel zu überprüfen, oder das folgende Azure CLI oder Azure PowerShell Skript verwenden, um den erstellten Schlüssel auflisten zu können.

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

Die Ausgabe sieht in etwa wie folgt aus:

Bereinigen von Ressourcen

Andere Key Vault Schnellstarts und Lernprogramme bauen auf dieser Schnellstartanleitung auf. Wenn Sie planen, mit weiteren Schnellstartanleitungen und Tutorials fortzufahren, möchten Sie diese Ressourcen vielleicht an Ort und Stelle belassen. Wenn sie nicht mehr benötigt wird, löschen Sie die Ressourcengruppe, die die Key Vault und die zugehörigen Ressourcen löscht. So löschen Sie die Ressourcengruppe mithilfe von Azure CLI oder Azure PowerShell:

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

Nächste Schritte

In dieser Schnellstartanleitung haben Sie mithilfe einer ARM-Vorlage einen Schlüsseltresor und ein Geheimnis erstellt und die Bereitstellung überprüft. Wenn Sie mehr über Key Vault und Azure Resource Manager erfahren möchten, fahren Sie mit den nachstehenden Artikeln fort.