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 bereitstellt, z. B. Schlüssel, Kennwörter und Zertifikat. In dieser Schnellstartanleitung geht es um die Bereitstellung einer Bicep-Datei zum Erstellen eines Schlüsseltresors und eines Schlüssels.
Bicep ist eine domänenspezifische Sprache (Domain-Specific Language, DSL), die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. Sie bietet eine präzise Syntax, zuverlässige Typsicherheit und Unterstützung für die Wiederverwendung von Code. Bicep bietet die beste Entwicklungserfahrung für Ihre Infrastructure-as-Code-Lösungen in Azure.
Voraussetzungen
Gehen Sie wie folgt vor, um diesen Artikel abzuschließen:
- Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
- Dem Benutzer muss eine integrierte Azure-Rolle zugewiesen sein. Empfohlen wird die Rolle Mitwirkender. Weitere Informationen finden Sie hier
Überprüfen der Bicep-Datei
Die in dieser Schnellstartanleitung verwendete Vorlage stammt von der Seite mit den Azure-Schnellstartvorlagen.
@description('The name of the key vault to be created.')
param vaultName string
@description('The name of the key to be created.')
param keyName string
@description('The location of the resources.')
param location string = resourceGroup().location
@description('The SKU of the vault to be created.')
@allowed([
'standard'
'premium'
])
param skuName string = 'standard'
@description('The JsonWebKeyType of the key to be created.')
@allowed([
'EC'
'EC-HSM'
'RSA'
'RSA-HSM'
])
param keyType string = 'RSA'
@description('The permitted JSON web key operations of the key to be created.')
param keyOps array = []
@description('The size in bits of the key to be created.')
param keySize int = 2048
@description('The JsonWebKeyCurveName of the key to be created.')
@allowed([
''
'P-256'
'P-256K'
'P-384'
'P-521'
])
param curveName string = ''
resource vault 'Microsoft.KeyVault/vaults@2023-07-01' = {
name: vaultName
location: location
properties: {
enableRbacAuthorization: true
enableSoftDelete: true
softDeleteRetentionInDays: 90
enablePurgeProtection: true
enabledForDeployment: false
enabledForDiskEncryption: false
enabledForTemplateDeployment: false
tenantId: subscription().tenantId
sku: {
name: skuName
family: 'A'
}
networkAcls: {
defaultAction: 'Allow'
bypass: 'AzureServices'
}
}
}
resource key 'Microsoft.KeyVault/vaults/keys@2023-07-01' = {
parent: vault
name: keyName
properties: {
kty: keyType
keyOps: keyOps
keySize: keySize
curveName: curveName
}
}
output proxyKey object = key.properties
output location string = location
output name string = vault.name
output resourceGroupName string = resourceGroup().name
output resourceId string = vault.id
In der Bicep-Datei sind zwei Ressourcen definiert:
Weitere Vorlagenbeispiele für Azure Key Vault finden Sie in Azure-Schnellstartvorlagen.
Parameter und Definitionen
| Parameter | Definition |
|---|---|
| keyOps | Gibt Vorgänge an, die mithilfe des Schlüssels ausgeführt werden können. Wenn Sie diesen Parameter nicht angeben, können alle Vorgänge ausgeführt werden. Die zulässigen Werte für diesen Parameter sind eine durch Trennzeichen getrennte Liste von Schlüsselvorgängen, wie durch die JSON Web Key (JWK)-Spezifikation definiert: ["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
| CurveName | Elliptische Kurve (EC)-Name für EC-Schlüsseltyp. Siehe JsonWebKeyCurveName |
| Kty | Der Typ des zu erstellenden Schlüssels. Gültige Werte finden Sie unter JsonWebKeyType |
| Stichwörter | Anwendungsspezifische Metadaten in Form von Schlüssel-Wert-Paaren. |
| nbf | Gibt die Uhrzeit als DateTime-Objekt an, vor der der Schlüssel nicht verwendet werden kann. Das Format wäre Unix-Zeitstempel (die Anzahl der Sekunden nach Unix Epoch am 1. Januar 1970 bei UTC). |
| Exp | Gibt die Ablaufzeit als DateTime-Objekt an. Das Format wäre Unix-Zeitstempel (die Anzahl der Sekunden nach Unix Epoch am 1. Januar 1970 bei UTC). |
Bereitstellen der Bicep-Datei
Speichern Sie die Bicep-Datei als main.bicep auf Ihrem lokalen Computer.
Stellen Sie die Bicep-Datei entweder mit Azure CLI oder mit Azure PowerShell bereit.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters vaultName=<vault-name> keyName=<key-name>Hinweis
Ersetzen Sie
<vault-name>durch den Namen des Schlüsseltresors. Ersetzen Sie<vault-name>mit dem Namen des Schlüsseltresors und<key-name>mit dem Namen des Schlüssels.Nach Abschluss der Bereitstellung sollte eine Meldung mit dem Hinweis angezeigt werden, dass die Bereitstellung erfolgreich war.
Zuweisen einer RBAC-Rolle für Key Vault
Der von dieser Bicep-Datei erstellte Schlüsseltresor verwendet Azure RBAC für die Autorisierung. Um über die Datenebene auf Schlüssel zuzugreifen (z. B. mithilfe der Azure CLI oder Azure PowerShell), müssen Sie sich selbst eine entsprechende Rolle zuweisen.
echo "Enter your key vault name:" &&
read keyVaultName &&
az role assignment create --role "Key Vault Crypto Officer" \
--assignee-object-id $(az ad signed-in-user show --query id -o tsv) \
--scope $(az keyvault show --name $keyVaultName --query id -o tsv)
Hinweis
Rollenzuweisungen können eine oder zwei Minuten dauern, bis sie verteilt werden.
Überprüfen der bereitgestellten Ressourcen
Sie können das Azure-Portal verwenden, um den Schlüsseltresor und den Schlüssel zu überprüfen. Alternativ können Sie 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 key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Das Erstellen von Schlüsseln mithilfe der ARM-Vorlage unterscheidet sich vom Erstellen von Schlüsseln über die Datenebene.
Erstellen eines Schlüssels über ARM
Es ist nur möglich, neue Schlüssel zu erstellen. Es ist nicht möglich, vorhandene Schlüssel zu aktualisieren oder neue Versionen vorhandener Schlüssel zu erstellen. Wenn der Schlüssel bereits vorhanden ist, wird der vorhandene Schlüssel aus dem Speicher abgerufen und verwendet (es treten keine Schreibvorgänge auf).
Um zur Verwendung dieser API berechtigt zu sein, muss der Aufrufer über die Aktion Microsoft.KeyVault/vaults/keys/write der rollenbasierten Zugriffssteuerung (Azure RBAC) verfügen. Die integrierte Rolle "Key Vault Contributor" ist ausreichend, da sie alle Azure RBAC-Aktionen autorisiert, die mit dem Muster "Microsoft.KeyVault/*" übereinstimmen.
Vorhandene API (Erstellen eines API-Schlüssels über Datenebene)
- Es ist möglich, neue Schlüssel zu erstellen, vorhandene Schlüssel zu aktualisieren und neue Versionen vorhandener Schlüssel zu erstellen.
- Der Aufrufer muss für die Verwendung dieser API autorisiert sein. Wenn der Tresor Zugriffsrichtlinien verwendet, muss der Aufrufer über die Berechtigung "Schlüssel erstellen" verfügen. Wenn der Tresor für Azure RBAC aktiviert ist, muss der Aufrufer über "Microsoft.KeyVault/vaults/keys/create/action" Azure RBAC DataAction verfügen.
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 die Ressourcengruppe nicht mehr benötigt wird, löschen Sie sie, wodurch der Key Vault und die damit verbundenen Ressourcen gelöscht werden. Die Ressourcengruppe kann über die Azure-Befehlszeilenschnittstelle oder mithilfe von Azure PowerShell gelöscht werden:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Hinweis
Durch das Löschen der Ressourcengruppe wird auch der Schlüsseltresor gelöscht, der Tresor wechselt dann jedoch in einen vorläufig gelöschten Status 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 die Schlüsseltresor-Funktion für vorläufiges Löschen.
Nächste Schritte
In dieser Schnellstartanleitung haben Sie mithilfe einer Bicep-Datei einen Schlüsseltresor und einen Schlüssel erstellt und die Bereitstellung überprüft. Weitere Informationen zu Key Vault und Azure Resource Manager finden Sie in diesen Artikeln.
- Siehe Übersicht über Azure Key Vault
- Lesen Sie weitere Informationen zu Azure Resource Manager.
- Lesen Sie die Key Vault-Sicherheitsübersicht.