Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Key Vault pomaga chronić tajemnice, takie jak klucze interfejsu API, ciągi połączeń do bazy danych potrzebne do uzyskiwania dostępu do aplikacji, usług i zasobów IT.
Z tego samouczka dowiesz się, jak uzyskać aplikację konsolową, aby odczytywać informacje z Azure Key Vault. Aplikacja będzie używać tożsamości zarządzanej maszyną wirtualną do uwierzytelniania w usłudze Key Vault.
Ten samouczek przedstawia sposób wykonania następujących czynności:
- Utwórz grupę zasobów.
- Utwórz skrytkę kluczy.
- Dodaj sekret do magazynu kluczy.
- Pobieranie wpisu tajnego z magazynu kluczy.
- Utwórz maszynę wirtualną Azure.
- Włączanie tożsamości zarządzanej dla maszyny wirtualnej.
- Przypisz uprawnienia do tożsamości maszyny wirtualnej.
Przed rozpoczęciem przeczytaj Key Vault podstawowe pojęcia.
Jeśli nie masz subskrypcji Azure, utwórz konto free.
Wymagania wstępne
W przypadku systemów Windows, Mac i Linux:
- Usługa Git
- Zestaw SDK .NET 8.0 lub nowszy.
- Azure CLI lub Azure PowerShell
Tworzenie zasobów i przypisywanie uprawnień
Przed rozpoczęciem kodowania musisz utworzyć niektóre zasoby, umieścić wpis tajny w magazynie kluczy i przypisać uprawnienia.
Zaloguj się do Azure
Aby zalogować się do Azure przy użyciu następującego polecenia:
az login
Utwórz grupę zasobów i magazyn kluczy
Ten przewodnik szybkiego startu korzysta z wcześniej utworzonego Azure Key Vault. Można utworzyć magazyn kluczy, wykonując kroki opisane w tych szybkich przewodnikach startowych:
- Azure CLI Szybki start
- Azure PowerShell Szybki start
- Azure portal - szybkie wprowadzenie
Alternatywnie możesz uruchomić te polecenia Azure CLI lub Azure PowerShell.
Ważne
Każdy magazyn kluczy musi mieć unikalną nazwę. Zastąp <vault-name> nazwą magazynu kluczy w poniższych przykładach.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Wypełnij swój magazyn kluczy tajemnicą
Utwórzmy wpis tajny o nazwie mySecret z wartością Success!. Tajna informacja może być hasłem, ciągiem połączeniowym SQL lub innymi informacjami, które muszą być zarówno zabezpieczone, jak i dostępne dla Twojej aplikacji.
Aby dodać sekret do nowo utworzonego magazynu kluczy, użyj następującego polecenia:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Tworzenie maszyny wirtualnej
Utwórz maszynę wirtualną Windows lub Linux przy użyciu jednej z następujących metod:
| Windows | Linux |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Portal Azure | Portal Azure |
Przypisywanie tożsamości do maszyny wirtualnej
Utwórz tożsamość przypisaną przez system dla maszyny wirtualnej przy użyciu następującego przykładu:
az vm identity assign --name <vm-name> --resource-group <resource-group>
Zanotuj tożsamość przypisaną przez system, która jest wyświetlana w poniższym kodzie. Dane wyjściowe poprzedniego polecenia to:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Przypisywanie uprawnień do tożsamości maszyny wirtualnej
Aby uzyskać uprawnienia do magazynu kluczy za pomocą Role-Based Access Control (RBAC), przypisz rolę do głównej nazwy użytkownika (UPN) przy użyciu polecenia Azure CLI 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>"
Zastąp <upn>, <subscription-id> i <vault-name> rzeczywistymi wartościami. Jeśli użyto innej nazwy grupy zasobów, zastąp "myResourceGroup" również. Twój UPN zazwyczaj będzie w formacie adresu e-mail (np. username@domain.com).
Zaloguj się do maszyny wirtualnej
Aby zalogować się do maszyny wirtualnej, postępuj zgodnie z instrukcjami w Łączenie i logowanie się do maszyny wirtualnej Azure Windows lub Łączenie i logowanie się do maszyny wirtualnej z systemem Azure Linux.
Konfigurowanie aplikacji konsolowej
Utwórz aplikację konsolową i zainstaluj wymagane pakiety przy użyciu dotnet polecenia .
Instalowanie .NET Core
Aby zainstalować .NET Core, przejdź do strony .NET pobierania.
Tworzenie i uruchamianie przykładowej aplikacji .NET
Otwórz wiersz polecenia.
Można wyświetlić "Hello world" w konsoli, uruchamiając następujące komendy:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Instalowanie pakietu
W oknie konsoli zainstaluj bibliotekę klienta Azure Key Vault Secrets dla .NET:
dotnet add package Azure.Security.KeyVault.Secrets
W tym samouczku typu Szybki start musisz zainstalować następujący pakiet tożsamości, aby uwierzytelnić się w Azure Key Vault.
dotnet add package Azure.Identity
Edytowanie aplikacji konsolowej
Otwórz plik Program.cs i dodaj następujące pakiety:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Dodaj te wiersze, aktualizując identyfikator URI w celu odzwierciedlenia vaultUri magazynu kluczy. Poniższy kod używa "DefaultAzureCredential()" do uwierzytelniania w usłudze kluczy, wykorzystując token z tożsamości zarządzanej aplikacji do uwierzytelniania. Również stosuje strategię wykładniczego opóźniania przed ponownymi próbami, gdy magazyn kluczy jest ograniczany.
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.");
}
}
Uprzątnij zasoby
Gdy maszyna wirtualna i magazyn kluczy nie będą już potrzebne, usuń je.
Dalsze kroki
REST API Azure Key Vault