Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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. In dieser Schnellstartanleitung geht es die Bereitstellung einer Azure Resource Manager-Vorlage (ARM-Vorlage) zum Erstellen eines Schlüsseltresors und eines Geheimnisses.
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.
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.
Überprüfen der Vorlage
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.42.1.51946",
"templateHash": "10998800669048245550"
}
},
"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."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
},
"secretsObject": {
"type": "secureObject",
"metadata": {
"description": "Specifies all secrets {\"secretName\":\"\",\"secretValue\":\"\"} wrapped in a secure object."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('keyVaultName')]",
"location": "[parameters('location')]",
"properties": {
"enabledForDeployment": "[parameters('enabledForDeployment')]",
"enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
"enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
"enableRbacAuthorization": true,
"tenantId": "[parameters('tenantId')]",
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"copy": {
"name": "secrets",
"count": "[length(parameters('secretsObject').secrets)]"
},
"type": "Microsoft.KeyVault/vaults/secrets",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretsObject').secrets[copyIndex()].secretName)]",
"properties": {
"value": "[parameters('secretsObject').secrets[copyIndex()].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:
-
Microsoft. KeyVault/Vaults: Erstellen Sie einen Azure Schlüsseltresor mit aktivierter Azure RBAC-Autorisierung (
enableRbacAuthorization: true), aktiviertem Soft Delete und Löschschutz. -
Microsoft.KeyVault/vaults/secrets: Erstellen Sie ein oder mehrere Geheimnisse im Schlüsseltresor, indem Sie das an die Vorlage übergebene
secretsObject.secrets-Array durchlaufen.
Da der Tresor Azure RBAC für die Autorisierung auf Datenebene verwendet, gewähren Sie Geheimen Zugriff, indem Sie eine Azure Rolle zuweisen (anstatt Zugriffsrichtlinien zu konfigurieren).
Weitere Azure Key Vault Vorlagenbeispiele finden Sie in Azure Schnellstartvorlagen.
Implementieren der Vorlage
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.
Wählen Sie die folgenden Werte aus, bzw. geben Sie sie ein. Wenn sie nicht angegeben ist, verwenden Sie den Standardwert.
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 wählen Sie dann OK aus.
Region: Wählen Sie einen Speicherort aus. Beispiel: USA, Mitte.
Key Vault Name: Geben Sie einen Namen für die key vault ein, der innerhalb des namespaces
vault.azure.netglobal eindeutig sein muss. Sie benötigen diesen Namen im nächsten Abschnitt, wenn Sie die Bereitstellung überprüfen.Sku-Name: Wählen Sie "Standard " oder "Premium" aus. Der Standardwert ist Standard.
Secrets-Objekt: Geben Sie die zu erstellenden Secrets als JSON-Objekt mit einem
secrets-Array an. Beispiel:{ "secrets": [ { "secretName": "adminpassword", "secretValue": "<your-secret-value>" } ] }Da Secrets-Objekt ein
secureObjectParameter ist, wird der Wert nach der Bereitstellung nicht protokolliert oder wieder wiedergegeben.
Klicken Sie aufÜberprüfen + erstellen und dann auf Erstellen. Nachdem der Schlüsseltresor und das Geheimnis erfolgreich bereitgestellt wurden, erhalten Sie eine Benachrichtigung.
Sie können auch Azure PowerShell, die Azure CLI oder die REST-API verwenden, um die Vorlage bereitzustellen. Informationen zu anderen Bereitstellungsmethoden finden Sie unter Bereitstellen von Vorlagen.
Zuweisen einer RBAC-Rolle für Key Vault
Der von dieser Vorlage erstellte Schlüsseltresor verwendet Azure RBAC für die Autorisierung. Um auf geheime Schlüssel über die Datenebene zuzugreifen (z. B. mithilfe der Azure CLI oder Azure PowerShell), müssen Sie sich selbst eine entsprechende Rolle zuweisen.
Rufen Sie Ihre Microsoft Entra Benutzerobjekt-ID ab:
az ad signed-in-user show --query id -o tsvWeisen Sie sich selbst die Rolle Key Vault Secrets Officer für den Schlüsseltresor zu:
echo "Enter your key vault name:" && read keyVaultName && az role assignment create --role "Key Vault Secrets Officer" \ --assignee-object-id $(az ad signed-in-user show --query id -o tsv) \ --scope $(az keyvault show --name $keyVaultName --query id -o tsv)Note
Rollenzuweisungen können eine oder zwei Minuten dauern, bis sie verteilt werden.
Ü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 ..."
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 ..."
Note
Durch das Löschen der Ressourcengruppe wird auch der Schlüsseltresor gelöscht, der Tresor wechselt dann jedoch in einen vorläufig gelöschten Zustand und bleibt für den Aufbewahrungszeitraum wiederherstellbar (standardmäßig 90 Tage). Der Tresorname bleibt während dieses Zeitraums global reserviert, und da der Löschschutz aktiviert ist, kann der Tresor nicht frühzeitig gelöscht werden. Für Standard-Schlüsseltresore fallen für vorläufig gelöschte Schlüsseltresore keine Gebühren an. Weitere Informationen finden Sie unter Übersicht über das vorläufige Löschen in Key Vault.
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.
- Lesen Sie eine Overview von Azure Key Vault
- Weitere Informationen zu Azure Resource Manager
- Lesen Sie die Sicherheitsübersicht Key Vault