إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يساعدك Azure Key Vault على حماية الأسرار مثل مفاتيح واجهة برمجة التطبيقات وسلاسل اتصال قاعدة البيانات التي تحتاجها للوصول إلى التطبيقات والخدمات وموارد تكنولوجيا المعلومات.
في هذا البرنامج التعليمي، تتعلم كيفية الحصول على تطبيق وحدة تحكم لقراءة المعلومات من Azure Key Vault. التطبيق سيستخدم هوية الجهاز الافتراضي المدارة للمصادقة على Key Vault.
يوضح لك البرنامج التعليمي كيفية:
- قم بإنشاء مجموعة موارد.
- إنشاء مخزن رئيسي.
- إضافة سر إلى key vault.
- استرجاع سر من Key Vault.
- إنشاء جهاز افتراضي من Azure.
- تمكين هوية مدارة للجهاز الافتراضي.
- تعيين أذونات إلى هوية VM.
قبل البدء، اقرأ المفاهيم الأساسية ل Key Vault.
إذا لم يكن لديك اشتراك Azure، فبادر بإنشاء حساب مجاني.
المتطلبات الأساسية
بالنسبة Windows, Mac, and Linux:
إنشاء الموارد وتعيين الأذونات
قبل البدء في الترميز تحتاج إلى إنشاء بعض الموارد، ووضع سر في مخزن المفاتيح الخاص بك، وتعيين الأذونات.
تسجيل الدخول إلى Azure
قم بتسجيل الدخول إلى Azure باستخدام الأمر التالي:
إنشاء مجموعة موارد ومخزن رئيسي
يستخدم هذا التشغيل السريع مخزن مفاتيح Azure تم إنشاؤه مسبقا. يمكنك إنشاء مخزن مفاتيح باتباع الخطوات الواردة في هذه قوالب التشغيل السريع:
بدلا من ذلك، يمكنك تشغيل أوامر Azure CLI أو Azure PowerShell هذه.
هام
يجب أن يكون لكل مخزن رئيسي اسم فريد. استبدل <your-unique-keyvault-name> باسم المخزن الرئيس في الأمثلة التالية.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization
ملء key vault الخاص بك ببيانات سرية
لنقم بإنشاء سر يسمى mySecret، بقيمة Success!. قد يكون السر عبارة عن كلمة مرور أو سلسلة اتصال SQL أو أي معلومات أخرى تحتاجها للحفاظ على أمانها وإتاحتها لتطبيقك.
لإضافة سر إلى مخزن المفاتيح الذي أنشأته حديثاً، استخدم الأمر التالي:
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "mySecret" --value "Success!"
إنشاء جهاز ظاهري
إنشاء جهاز افتراضي Windows أو Linux باستخدام إحدى الطرق التالية:
| بالنسبة لنظام التشغيل | Linux |
|---|---|
| |
|
| بوويرشيل | بوويرشيل |
| مدخل |
مدخل |
تعيين هوية لجهاز VM
إنشاء هوية معينة من قبل النظام للجهاز الافتراضي مع المثال التالي:
az vm identity assign --name <NameOfYourVirtualMachine> --resource-group <YourResourceGroupName>
لاحظ الهوية المعينة من قبل النظام التي يتم عرضها في التعليمات البرمجية التالية. مخرج الأمر السابق سيكون:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
تعيين أذونات إلى هوية VM
للحصول على أذونات إلى مخزن المفاتيح الخاص بك من خلال التحكم في الوصول المستند إلى الدور (RBAC)، قم بتعيين دور إلى "اسم المستخدم الأساسي" (UPN) باستخدام الأمر Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
استبدل <upn>، <subscription-id>، <resource-group-name> و <your-unique-keyvault-name> بقيمك الفعلية. سيكون UPN الخاص بك عادة بتنسيق عنوان بريد إلكتروني (على سبيل المثال، username@domain.com).
تسجيل الدخول إلى الجهاز الافتراضي
لتسجيل الدخول إلى الجهاز الافتراضي، اتبع الإرشادات الواردة في الاتصال بالجهاز الافتراضي Azure Windows وتسجيل الدخول إليه أو الاتصال بجهاز Azure Linux الافتراضي وتسجيل الدخول إليه .
إعداد تطبيق وحدة التحكم
إنشاء تطبيق وحدة تحكم وتثبيت الحزم المطلوبة باستخدام dotnet الأمر.
تثبيت .NET Core
لتثبيت .NET Core، انتقل إلى صفحة تنزيلات .NET.
إنشاء نموذج لتطبيق .NET وتشغيله
افتح موجه الأوامر.
يمكنك طباعة "Hello World" إلى وحدة التحكم عن طريق تشغيل الأوامر التالية:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
تثبيت الحزمة
من نافذة وحدة التحكم، قم بتثبيت مكتبة عميل أسرار Azure Key Vault لصالح .NET:
dotnet add package Azure.Security.KeyVault.Secrets
لهذه البداية السريعة، ستحتاج إلى تثبيت حزمة الهوية التالية للمصادقة على Azure Key Vault:
dotnet add package Azure.Identity
تحرير تطبيق وحدة التحكم
افتح ملف Program.cs، ثم قم بإضافة الحزم التالية:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
أضف هذه السطور، مع تحديث URI لتعكس vaultUri خزنة المفاتيح. الرمز أدناه يستخدم "DefaultAzureCredential()' للمصادقة على مخزن المفاتيح، والذي يستخدم الرمز المميز من هوية التطبيق المُدارة للمصادقة. يستخدم الكود أيضاً تراجعات أسية لإعادة المحاولة في حال تعطيل Key Vault.
class Program
{
static void Main(string[] args)
{
string secretName = "mySecret";
string keyVaultName = "<your-key-vault-name>";
var kvUri = "https://<your-key-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.");
}
}
تنظيف الموارد
عندما لا تكون هناك حاجة إليها، احذف الجهاز الظاهري، وخزنة المفاتيح.