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 hilft Ihnen, geheime Schlüssel wie API-Schlüssel und Datenbankverbindungszeichenfolgen zu schützen, die Ihre Anwendungen, Dienste und Ressourcen benötigen.
In diesem Lernprogramm konfigurieren Sie eine Konsolenanwendung zum Lesen von Informationen aus Azure Key Vault. Die Anwendung verwendet die verwaltete Identität des virtuellen Computers, um sich bei Key Vault zu authentifizieren.
Das Tutorial veranschaulicht folgende Vorgehensweisen:
- Erstellen Sie eine Ressourcengruppe.
- Erstellen eines Schlüsseltresors.
- Hinzufügen eines Geheimnisses zum Schlüsseltresor.
- Abrufen eines Geheimnisses aus dem Schlüsseltresor.
- Erstellen Sie einen Azure virtuellen Computer.
- Aktivieren einer verwalteten Identität für den virtuellen Computer
- Zuweisen von Berechtigungen zur VM-Identität.
Lesen Sie vor Beginn Key Vault grundlegende Konzepte.
Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein free-Konto.
Voraussetzungen
Für Windows, Mac und Linux:
- Git
- Das .NET 8.0 SDK oder höher.
- Azure CLI oder Azure PowerShell
Erstellen von Ressourcen und Zuweisen von Berechtigungen
Bevor Sie mit der Programmierung beginnen, müssen Sie einige Ressourcen erstellen, ein Geheimnis in Ihren Schlüsseltresor legen und Berechtigungen zuweisen.
Anmelden bei Azure
Melden Sie sich mit dem Azure CLI oder Azure PowerShell bei Azure an:
az login
Erstellen einer Ressourcengruppe und eines Schlüsseltresors
In dieser Schnellstartanleitung wird ein vorkonfigurierter Azure Key Vault verwendet. Sie können einen Schlüsseltresor erstellen, indem Sie die Schritte in den folgenden Schnellstarts ausführen:
Alternativ können Sie diese Azure CLI oder Azure PowerShell Befehle ausführen.
Wichtig
Jeder Schlüsseltresor muss einen eindeutigen Namen haben. Ersetzen Sie in den folgenden Beispielen <vault-name> durch den Namen Ihres Schlüsseltresors.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Einfügen eines Geheimnisses in Ihren Schlüsseltresor
Erstellen Sie ein Geheimnis mit dem Namen mySecret und dem Wert Success! . Ein Geheimer Schlüssel kann ein Kennwort, ein SQL-Verbindungszeichenfolge oder andere Informationen sein, die Sie benötigen, um sowohl sicher als auch für Ihre Anwendung verfügbar zu sein.
Fügen Sie Ihrem neu erstellten Schlüsseltresor mit dem folgenden Befehl ein Geheimnis hinzu:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Erstellen eines virtuellen Computers
Erstellen Sie eine Windows- oder Linux-VM mithilfe einer der folgenden Methoden:
| Windows | Linux |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Azure Portal | Azure Portal |
Zuweisen einer Identität zum virtuellen Computer
Erstellen Sie eine vom System zugewiesene verwaltete Identität für den virtuellen Computer:
az vm identity assign --name <vm-name> --resource-group <resource-group>
Beachten Sie die systemseitig zugewiesene Identität, die im folgenden Code angezeigt wird. Die Ausgabe des obigen Befehls lautet etwa wie folgt:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Zuweisen von Berechtigungen für die VM-Identität
Um über die rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC) Berechtigungen für Ihren Schlüsseltresor zu erhalten, weisen Sie Ihrem Benutzerprinzipalname (User Principal Name, UPN) mit dem Azure CLI-Befehl az role assignment create eine Rolle zu.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Ersetzen Sie <upn>, <subscription-id> und <vault-name> durch Ihre tatsächlichen Werte. Wenn Sie einen anderen Ressourcengruppennamen verwendet haben, ersetzen Sie auch "myResourceGroup". Ihr Benutzerprinzipalname (UPN) hat in der Regel das Format einer E-Mail-Adresse (z. B. username@domain.com).
Melden Sie sich bei der VM an
Um sich an der VM anzumelden, folgen Sie den Anweisungen in Herstellen einer Verbindung mit einem virtuellen Azure-Windows-Computer und Anmelden bei diesem oder Herstellen einer Verbindung mit einem virtuellen Azure-Linux-Computer und Anmelden bei diesem.
Einrichten der Konsolen-App
Erstellen Sie eine Konsolen-App, und installieren Sie die erforderlichen Pakete mit dem dotnet Befehl.
Installieren von .NET
Um .NET zu installieren, wechseln Sie zur Seite ".NET Downloads".
Erstellen und Ausführen einer Beispiel-.NET-App
Öffnen Sie eine Eingabeaufforderung, und führen Sie folgenden Befehl aus:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Die App druckt „Hallo Welt“ in der Konsole.
Installieren der Pakete
Installieren Sie im Konsolenfenster die Azure Key Vault-Clientbibliothek für Geheimnisse und die Azure Identity-Bibliothek:
dotnet add package Azure.Security.KeyVault.Secrets
dotnet add package Azure.Identity
Bearbeiten der Konsolen-App
Öffnen Sie Program.cs und fügen Sie die folgenden using-Direktiven hinzu:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Ersetzen Sie die Methode Main durch den folgenden Code und aktualisieren Sie <vault-name> mit dem Namen Ihres Schlüsseltresors. Dieser Code verwendet DefaultAzureCredential zum Authentifizieren bei Key Vault, das ein Token aus der verwalteten Identität des virtuellen Computers verwendet. Es konfiguriert auch ein exponentielles Backoff für Wiederholungsversuche, wenn Key Vault gedrosselt wird.
class Program
{
static void Main(string[] args)
{
string secretName = "mySecret";
string keyVaultName = "<vault-name>";
var kvUri = "https://<vault-name>.vault.azure.net";
SecretClientOptions options = new SecretClientOptions()
{
Retry =
{
Delay= TimeSpan.FromSeconds(2),
MaxDelay = TimeSpan.FromSeconds(16),
MaxRetries = 5,
Mode = RetryMode.Exponential
}
};
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential(),options);
Console.Write("Input the value of your secret > ");
string secretValue = Console.ReadLine();
Console.Write("Creating a secret in " + keyVaultName + " called '" + secretName + "' with the value '" + secretValue + "' ...");
client.SetSecret(secretName, secretValue);
Console.WriteLine(" done.");
Console.WriteLine("Forgetting your secret.");
secretValue = "";
Console.WriteLine("Your secret is '" + secretValue + "'.");
Console.WriteLine("Retrieving your secret from " + keyVaultName + ".");
KeyVaultSecret secret = client.GetSecret(secretName);
Console.WriteLine("Your secret is '" + secret.Value + "'.");
Console.Write("Deleting your secret from " + keyVaultName + " ...");
client.StartDeleteSecret(secretName);
System.Threading.Thread.Sleep(5000);
Console.WriteLine(" done.");
}
}
Bereinigen von Ressourcen
Wenn Sie sie nicht mehr benötigen, löschen Sie die VM und den Schlüsseltresor.