إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يساعدك Azure Key Vault على حماية المفاتيح والأسرار والشهادات مثل مفاتيح API وسلاسل اتصال قاعدة البيانات.
في هذا الدرس، تقوم بإعداد تطبيق Python لقراءة المعلومات من Azure Key Vault باستخدام هوية مدارة لموارد Azure. تتعلم كَيفِيةِ:
- إنشاء مخزن رئيسي
- تخزين سر في Key Vault
- إنشاء آلة افتراضية على Azure Linux
- تمكين هوية مدارة للجهاز الظاهري
- امنح الأذونات المطلوبة لتطبيق وحدة التحكم لقراءة البيانات من Key Vault
- استرجع سرا من Key Vault
قبل أن تبدأ، اقرأ Key Vault المفاهيم الأساسية.
إذا لم يكن لديك اشتراك Azure، أنشئ حسابا مجاني.
المتطلبات الأساسية
لأنظمة Windows وMac وLinux:
تسجيل الدخول إلى Azure
سجل الدخول إلى Azure باستخدام Azure CLI:
az login
إنشاء مجموعة موارد ومخزن رئيسي
يستخدم هذا البدء السريع خزنة مفاتيح Azure مسبقا. يمكنك إنشاء مخزن مفاتيح باتباع الخطوات الواردة في هذه قوالب التشغيل السريع:
بدلا من ذلك، يمكنك تشغيل أوامر Azure CLI أو Azure PowerShell هذه.
هام
يجب أن يكون لكل مخزن رئيسي اسم فريد. استبدلها <vault-name> باسم خزنة المفاتيح في الأمثلة التالية.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
ملء key vault الخاص بك ببيانات سرية
لنقم بإنشاء سر يسمى mySecret، بقيمة Success!. قد يكون السر كلمة مرور، أو سلسلة سلسلة الاتصال في SQL، أو أي معلومات أخرى تحتاجها للحفاظ على أمان وتوفرها لتطبيقك.
لإضافة سر إلى مخزن المفاتيح الذي أنشأته حديثاً، استخدم الأمر التالي:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
إنشاء جهاز ظاهري
إنشاء جهاز افتراضي باسم myVM باستخدام إحدى الطرق التالية:
| Linux | Windows |
|---|---|
| واجهة سطر الأوامر Azure (Azure CLI) | واجهة سطر الأوامر Azure (Azure CLI) |
| بوويرشيل | بوويرشيل |
| مدخل Azure | مدخل Azure |
لإنشاء آلة افتراضية لينكس باستخدام Azure CLI، استخدم أمر az vm create. يضيف المثال التالي حساب مستخدم يسمى azureuser. يتم استخدام المعلمة --generate-ssh-keys لإنشاء مفتاح "SSH" تلقائياً، ووضعه في موقع المفتاح الافتراضي ( ~ / .ssh ).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
لاحظ قيمة publicIpAddress في المخرجات.
تعيين هوية لجهاز VM
أنشئ هوية مدارة مخصصة للنظام للجهاز الافتراضي باستخدام أمر az vm identity assign :
az vm identity assign --name "myVM" --resource-group "<resource-group>"
لاحظ الهوية المعينة من قبل النظام في المخرج:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
تعيين أذونات إلى هوية VM
للحصول على صلاحيات لخزنة المفاتيح الخاصة بك عبر Role-Based Access Control (RBAC)، قم بتعيين دور إلى "اسم المستخدم الرئيسي" (UPN) باستخدام أمر 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>"
استبدل <upn>، <subscription-id>، ومع <vault-name> قيمك الفعلية. إذا استخدمت اسم مجموعة موارد مختلف، استبدل "myResourceGroup" أيضا. سيكون UPN الخاص بك عادة بتنسيق عنوان بريد إلكتروني (على سبيل المثال، username@domain.com).
تسجيل الدخول إلى الجهاز الافتراضي
لتسجيل الدخول إلى الجهاز الافتراضي، اتبع التعليمات في Connect وسجل الدخول إلى جهاز افتراضي Azure يعمل بنظام Linux أو Connect وتسجيل الدخول إلى جهاز افتراضي Azure يعمل بنظام Windows.
لتسجيل الدخول إلى جهاز افتراضي في لينكس، استخدم ssh مع <public-ip-address> خطوة إنشاء آلة افتراضية :
ssh azureuser@<public-ip-address>
تثبيت مكتبات Python على الجهاز الافتراضي
على الجهاز الافتراضي، قم بتثبيت مكتبتي Python اللتين يستخدمهما السكربت النموذجي: azure-keyvault-secrets و azure-identity.
على جهاز افتراضي لينكس، قم بتثبيتها ب pip3:
pip3 install azure-keyvault-secrets azure-identity
إنشاء وتحرير نموذج سكريبت Python
على الجهاز الافتراضي، أنشئ ملف Python باسم sample.py. الصق الكود التالي في الملف، واستبداله <vault-name> باسم خزنة المفاتيح الخاصة بك:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<vault-name>"
key_vault_uri = f"https://{key_vault_name}.vault.azure.net"
secret_name = "mySecret"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=key_vault_uri, credential=credential)
retrieved_secret = client.get_secret(secret_name)
print(f"The value of secret '{secret_name}' in '{key_vault_name}' is: '{retrieved_secret.value}'")
شغل نموذج تطبيق Python
شغّل sample.py. إذا تم إعداد كل شيء بشكل صحيح، يطبع التطبيق القيمة السرية:
python3 sample.py
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
تنظيف الموارد
عندما لا تحتاجها، احذف الجهاز الافتراضي وخزنة المفتاح. أسرع طريقة هي حذف مجموعة الموارد التي تنتمي إليها:
az group delete -g "myResourceGroup"