Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Key Vault hjälper dig att skydda hemligheter som API-nycklar och databasanslutningssträngar som dina program, tjänster och resurser behöver.
I den här självstudien konfigurerar du ett konsolprogram för att läsa information från Azure Key Vault. Applikationen använder den virtuella datorns hanterade identitet för att autentisera sig mot Key Vault.
En guide visar hur du:
- Skapa en resursgrupp.
- Skapa ett nyckelvalv.
- Lägg till en hemlighet i nyckelvalvet.
- Hämta en hemlighet från nyckelvalvet.
- Skapa en Azure virtuell dator.
- Aktivera en hanterad identitet för den virtuella datorn.
- Tilldela behörigheter till den virtuella datorns identitet.
Innan du börjar läser du Key Vault grundläggande begrepp.
Om du inte har en Azure prenumeration skapar du ett free-konto.
Förutsättningar
För Windows, Mac och Linux:
Skapa resurser och tilldela behörigheter
Innan du börjar koda måste du skapa några resurser, placera en hemlighet i nyckelvalvet och tilldela behörigheter.
Logga in på Azure
Logga in på Azure med Azure CLI eller Azure PowerShell:
az login
Skapa en resursgrupp och ett nyckelvalv
Den här snabbstarten använder ett förskapat Azure nyckelvalv. Du kan skapa ett nyckelvalv genom att följa stegen i dessa snabbguider:
- Azure CLI snabbstart
- Azure PowerShell snabbstart
- snabbstart för Azure portal
Du kan också köra dessa Azure CLI- eller Azure PowerShell-kommandon.
Viktigt!
Varje nyckelvalv måste ha ett unikt namn. Ersätt <vault-name> med namnet på ditt nyckelvalv i följande exempel.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Fyll i ditt nyckelvalv med en hemlighet
Nu ska vi skapa en hemlighet med namnet mySecret med värdet Success!. En hemlighet kan vara ett lösenord, en SQL-reťazec pripojenia eller annan information som du behöver för att hålla både säker och tillgänglig för ditt program.
Om du vill lägga till en hemlighet i ditt nyligen skapade nyckelvalv använder du följande kommando:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Skapa en virtuell dator
Skapa en Windows eller en virtuell Linux-dator med någon av följande metoder:
| Windows | Linux |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Azure Portal | Azure Portal |
Tilldela en identitet till den virtuella datorn
Skapa en systemtilldelad hanterad identitet för den virtuella datorn:
az vm identity assign --name <vm-name> --resource-group <resource-group>
Observera den systemtilldelade identitet som visas i följande kod. Utdata från föregående kommando skulle vara:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Tilldela behörigheter till den virtuella datorns identitet
Om du vill få behörighet till ditt nyckelvalv via Role-Based Access Control (RBAC) tilldelar du en roll till ditt UPN (User Principal Name) med kommandot 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>"
Ersätt <upn>, <subscription-id>och <vault-name> med dina faktiska värden. Om du använde ett annat resursgruppsnamn ersätter du även "myResourceGroup". Ditt UPN är vanligtvis i samma format som en e-postadress (t.ex. username@domain.com).
Logga in på den virtuella datorn
Om du vill logga in på den virtuella datorn följer du anvisningarna i Anslut och logga in på en Azure Windows virtuell dator eller Anslut och logga in på en Azure virtuell Linux-dator.
Konfigurera konsolappen
Skapa en konsolapp och installera de paket som krävs med dotnet kommandot .
Installera .NET
Om du vill installera .NET går du till sidan .NET nedladdningar.
Skapa och köra ett exempel .NET app
Öppna en kommandotolk och kör:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Appen skriver ut "Hello World" till konsolen.
Installera programvarupaketen
Från konsolfönstret installerar du klientbiblioteket Azure Key Vault Secrets och Azure identitetsbiblioteket:
dotnet add package Azure.Security.KeyVault.Secrets
dotnet add package Azure.Identity
Redigera konsolappen
Öppna Program.cs och lägg till följande using direktiv:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Main Ersätt metoden med följande kod och uppdatera <vault-name> till ditt nyckelvalvnamn. Den här koden använder DefaultAzureCredential för att autentisera till Key Vault, som använder en token från den virtuella datorns hanterade identitet. Den konfigurerar också en exponentiell backoff-strategi vid återförsök om Key Vault hastighetsbegränsas.
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.");
}
}
Rensa resurser
När du inte längre behöver dem tar du bort den virtuella datorn och nyckelvalvet.