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, die Datenbankverbindungszeichenfolgen, die Sie für den Zugriff auf Ihre Anwendungen, Dienste und IT-Ressourcen benötigen, zu schützen.
In diesem Lernprogramm erfahren Sie, wie Sie eine Konsolenanwendung abrufen, um Informationen aus Azure Key Vault zu lesen. Die Anwendung würde die verwaltete Identität des virtuellen Computers verwenden, 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
So melden Sie sich mit dem folgenden Befehl 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 einen virtuellen Linux-Computer mit 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 mit dem folgenden Beispiel eine systemseitig zugewiesene 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 Berechtigungen für Ihren Schlüsseltresor über Role-Based Access Control (RBAC) zu erhalten, weisen Sie Ihrem Benutzerprinzipalnamen (User Principal Name, UPN) eine Rolle zu, mithilfe des Azure CLI-Befehls az role assignment create.
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).
Anmelden beim virtuellen Computer
Um sich beim virtuellen Computer anzumelden, folgen Sie den Anweisungen in Connect und melden Sie sich bei einem virtuellen Azure Windows Computer an oder Verbinden und sich bei einem virtuellen Azure Linux-Computer an.
Einrichten der Konsolen-App
Erstellen Sie eine Konsolen-App, und installieren Sie die erforderlichen Pakete mit dem dotnet-Befehl.
Installieren von .NET Core
Um .NET Core zu installieren, wechseln Sie zur Seite .NET Downloads.
Erstellen und Ausführen einer Beispiel-.NET-App
Öffnen Sie eine Eingabeaufforderung.
Sie können "Hallo Welt" in der Konsole drucken, indem Sie die folgenden Befehle ausführen:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Installiere das Paket
Installieren Sie im Konsolenfenster die Azure Key Vault Secrets-Clientbibliothek für .NET.
dotnet add package Azure.Security.KeyVault.Secrets
Für diese Schnellstartanleitung müssen Sie das folgende Identitätspaket installieren, um sich bei Azure Key Vault zu authentifizieren:
dotnet add package Azure.Identity
Bearbeiten der Konsolen-App
Öffnen Sie die Datei Program.cs, und fügen Sie die folgenden Pakete hinzu:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Fügen Sie diese Zeilen hinzu, und aktualisieren Sie den URI, sodass er dem Tresor-URI (vaultUri) Ihres Schlüsseltresors entspricht. Im folgenden Code wird 'DefaultAzureCredential()' für die Authentifizierung beim Schlüsseltresor verwendet. Dabei wird das Token der verwalteten Anwendungsidentität zur Authentifizierung herangezogen. Darüber hinaus wird das exponentielle Backoff für Wiederholungen verwendet, falls der Schlüsseltresor 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
Löschen Sie den virtuellen Computer und Ihren Schlüsseltresor, wenn diese nicht mehr benötigt werden.