Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Key Vault vám pomůže chránit tajné kódy, jako jsou klíče rozhraní API, připojovací řetězce databáze, které potřebujete pro přístup k aplikacím, službám a prostředkům IT.
V tomto kurzu se dozvíte, jak získat konzolovou aplikaci pro čtení informací z Azure Key Vault. Aplikace použije spravovanou identitu virtuálního počítače k ověření v Key Vault.
V tomto kurzu získáte informace o následujících postupech:
- Vytvořte skupinu prostředků.
- Vytvořte trezor klíčů.
- Přidejte tajemství do klíčového trezoru.
- Načtení tajného údaje z úložiště klíčů
- Vytvořte Azure virtuální počítač.
- Povolení spravované identity pro virtuální počítač
- Přiřaďte oprávnění identitě virtuálního počítače.
Než začnete, přečtěte si základní koncepty Key Vault.
Pokud nemáte předplatné Azure, vytvořte si účet free.
Požadavky
Pro Windows, Mac a Linux:
- Lotr
- Sada SDK .NET 8.0 nebo novější.
- Azure CLI nebo Azure PowerShell
Vytváření prostředků a přiřazování oprávnění
Než začnete psát kód, musíte vytvořit nějaké prostředky, vložit tajný kód do trezoru klíčů a přiřadit oprávnění.
Přihlášení k Azure
Pokud se chcete přihlásit k Azure pomocí následujícího příkazu:
az login
Vytvořte skupinu prostředků a trezor klíčů
V tomto rychlém startu se používá předem vytvořený trezor klíčů Azure. Pro vytvoření úložiště klíčů postupujte podle kroků uvedených v těchto rychlých úvodech.
- rychlý start Azure CLI
- Azure PowerShell průvodce rychlým startem
- rychlý průvodce portálem Azure
Případně můžete tyto příkazy Azure CLI nebo Azure PowerShell spustit.
Důležité
Každý trezor klíčů musí mít jedinečný název. Nahraďte <vault-name> názvem trezoru klíčů v následujících příkladech.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Naplňte svůj trezor klíčů tajemstvím.
Pojďme vytvořit tajný kód s názvem mySecret s hodnotou Success!. Tajným kódem může být heslo, připojovací řetězec SQL nebo jakékoli jiné informace, které potřebujete k zabezpečení a dostupnosti vaší aplikace.
K přidání tajného kódu do nově vytvořeného trezoru klíčů použijte následující příkaz:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Vytvoření virtuálního počítače
Pomocí jedné z následujících metod vytvořte virtuální počítač Windows nebo Linux:
| Windows | Linux |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| portál Azure | portál Azure |
Přiřazení identity k virtuálnímu počítači
Vytvořte identitu přiřazenou systémem pro virtuální počítač pomocí následujícího příkladu:
az vm identity assign --name <vm-name> --resource-group <resource-group>
Poznamenejte si identitu přiřazenou systémem, která se zobrazí v následujícím kódu. Výstup předchozího příkazu by byl:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Přiřazení oprávnění identitě virtuálního počítače
Pokud chcete získat oprávnění k trezoru klíčů prostřednictvím Role-Based Access Control (RBAC), přiřaďte roli k "User Principal Name" (UPN) pomocí příkazu 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>"
Nahraďte hodnoty <upn>, <subscription-id> a <vault-name> skutečnými hodnotami. Pokud jste použili jiný název skupiny prostředků, nahraďte také myResourceGroup. Hlavní název uživatele (UPN) bude obvykle v formátu e-mailové adresy (např. username@domain.com).
Přihlášení k virtuálnímu počítači
Pokud se chcete přihlásit k virtuálnímu počítači, postupujte podle pokynů v Připojení a přihlášení k virtuálnímu počítači Azure Windows nebo Popojte a přihlaste se k virtuálnímu počítači Azure Linux.
Nastavení konzolové aplikace
Pomocí příkazu vytvořte konzolovou aplikaci a nainstalujte požadované balíčky dotnet .
Instalace .NET Core
Pokud chcete nainstalovat .NET Core, přejděte na stránku .NET ke stažení.
Vytvoření a spuštění ukázkové aplikace .NET
Otevřete příkazový řádek.
Spuštěním následujících příkazů můžete do konzoly vytisknout Hello World:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Nainstalujte balíček .
V okně konzoly nainstalujte klientskou knihovnu Azure Key Vault Secrets pro .NET:
dotnet add package Azure.Security.KeyVault.Secrets
Pro účely tohoto rychlého startu budete muset nainstalovat následující balíček identity pro ověření v Azure Key Vault:
dotnet add package Azure.Identity
Úprava konzolové aplikace
Otevřete soubor Program.cs a přidejte tyto balíčky:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Přidejte tyto řádky a aktualizujte identifikátor URI, aby odrážel váš trezor klíčů vaultUri. Následující kód používá DefaultAzureCredential() k ověřování v trezoru klíčů, přičemž používá token ze spravované identity aplikace k autentizaci. V případě omezování trezoru klíčů se také používá exponenciální zpoždění pro opakované pokusy.
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.");
}
}
Upravte zdroje
Pokud už je nepotřebujete, odstraňte virtuální počítač a trezor klíčů.