Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Key Vault, uygulamalarınızın, hizmetlerinizin ve kaynaklarınızın ihtiyaç duyduğu API anahtarları ve veritabanı bağlantı dizeleri gibi gizli dizileri korumanıza yardımcı olur.
Bu öğreticide, bir konsol uygulamasını Azure Key Vault bilgilerini okuyacak şekilde yapılandıracaksınız. Uygulama, Key Vault kimlik doğrulaması yapmak için VM'nin yönetilen kimliğini kullanır.
Öğretici şunların nasıl yapıldığını göstermektedir:
Başlamadan önce Key Vault temel kavramları okuyun.
Azure aboneliğiniz yoksa free hesabı oluşturun.
Önkoşullar
Windows, Mac ve Linux için:
Kaynak oluşturma ve izin atama
Kodlamaya başlamadan önce bazı kaynaklar oluşturmanız, anahtar kasanızda bir gizli anahtar yerleştirmeniz ve izin atamanız gerekir.
Azure oturum açma
Azure CLI veya Azure PowerShell ile Azure oturum açın:
az login
Bir kaynak grubu ve anahtar kasası oluşturun
Bu hızlı başlangıç kılavuzunda önceden oluşturulmuş bir Azure anahtar kasası kullanılır. Bu hızlı başlangıçlarda yer alan adımları izleyerek bir anahtar kasası oluşturabilirsiniz:
Alternatif olarak, bu Azure CLI veya Azure PowerShell komutlarını çalıştırabilirsiniz.
Önemli
Her anahtar kasasının benzersiz bir adı olmalıdır. Aşağıdaki örneklerde <vault-name>'yi anahtar kasanızın adıyla değiştirin.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Anahtar kasanızı gizli diziyle doldurma
Şimdi mySecret adlı ve Success! değerine sahip bir gizli anahtar oluşturalım. Gizli bir bilgi, bir parola, SQL bağlantı dizesi veya hem güvenli hem de uygulamanızın kullanımına açık tutmanız gereken diğer bilgiler olabilir.
Yeni oluşturduğunuz anahtar kasanıza bir gizli eklemek için aşağıdaki komutu kullanın:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Sanal makine oluşturun
Aşağıdaki yöntemlerden birini kullanarak bir Windows veya Linux VM oluşturun:
| Windows | Linux |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Azure portalı | Azure portalı |
VM'ye kimlik atayın
VM için sistem tarafından atanan bir yönetilen kimlik oluşturun:
az vm identity assign --name <vm-name> --resource-group <resource-group>
Aşağıdaki kodda görüntülenen sistem tarafından atanan kimliği not edin. Yukarıdaki komutun çıktısı şöyle olacaktır:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
VM kimliğine izin atama
Role-Based Access Control (RBAC) aracılığıyla anahtar kasanıza izinler almak için Azure CLI komutunu az role assignment create kullanarak "Kullanıcı Asıl Adı"na (UPN) bir rol atayın.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
, <upn>ve <subscription-id> değerlerini gerçek değerlerinizle değiştirin<vault-name>. Eğer farklı bir kaynak grubu adı kullandıysanız, "myResourceGroup" yerine bunu koyun. UPN'niz genellikle bir e-posta adresi biçiminde olur (ör. username@domain.com).
VM'de oturum açma
VM'de oturum açmak için Azure Windows sanal makinesine bağlanma ve oturum açma veya Azure Linux sanal makinesine bağlanıp oturum açma başlığı altındaki yönergeleri izleyin.
Konsol uygulamasını ayarlama
Bir konsol uygulaması oluşturun ve komutuyla dotnet gerekli paketleri yükleyin.
.NET yükleme
.NET yüklemek için .NET indirmeler sayfasına gidin.
Örnek .NET uygulaması oluşturma ve çalıştırma
Bir komut istemi açın ve şu komutu çalıştırın:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Uygulama konsola "Merhaba Dünya" yazdırır.
Paketleri yükleme
Konsol penceresinden Azure Key Vault Gizli Dizileri istemci kitaplığını ve Azure Kimlik kitaplığını yükleyin:
dotnet add package Azure.Security.KeyVault.Secrets
dotnet add package Azure.Identity
Konsol uygulamasını düzenleme
Program.cs öğesini açın ve aşağıdaki using yönergelerini ekleyin:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Main yöntemini aşağıdaki kodla değiştirin ve <vault-name> öğesini anahtar kasanızın adıyla güncelleştirin. Bu kod, Key Vault’ta kimlik doğrulaması yapmak için VM’nin yönetilen kimliğinden bir belirteç kullanan DefaultAzureCredential kullanır. Ayrıca, Key Vault kısıtlandığında yeniden denemeler için üstel geri çekilmeyi yapılandırır.
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.");
}
}
Kaynakları temizle
Artık ihtiyacınız kalmadığında VM'yi ve anahtar kasasını silin.