مشاركة عبر


إدارة Key Vault باستخدام Azure CLI

تتناول هذه المقالة كيفية بدء العمل مع Azure Key Vault باستخدام Azure CLI. يمكنك الاطلاع على معلومات حول:

  • كيفية إنشاء حاوية متصلبة (مخزن) في Azure
  • إضافة مفتاح أو سر أو شهادة إلى مخزن المفاتيح
  • تسجيل تطبيق باستخدام معرف Microsoft Entra
  • تخويل تطبيق لاستخدام مفتاح أو سر
  • تعيين نهج الوصول المتقدمة لمخزن المفاتيح
  • العمل مع وحدات أمان الأجهزة (HSMs)
  • حذف خزنة المفاتيح والمفاتيح والأسرار المرتبطة بها
  • أوامر واجهة سطر الأوامر المتنوعة ل Azure عبر النظام الأساسي

يتوفر Azure Key Vault في معظم المناطق. لمزيدٍ من المعلومات، راجع صفحة تسعير المخزن الرئيسي.

‏‫ملاحظة

لا تتضمن هذه المقالة إرشادات حول كيفية كتابة تطبيق Azure الذي تتضمنه إحدى الخطوات، والتي توضح كيفية تخويل تطبيق لاستخدام مفتاح أو سر في مخزن المفاتيح.

للحصول على نظرة عامة على Azure Key Vault، راجع ما هو Azure Key Vault؟) في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

المتطلبات

لاستخدام أوامر Azure CLI في هذه المقالة، يجب أن يتوفر لديك العناصر التالية:

  • اشتراك في منصة Microsoft Azure. إذا لم يكن لديك واحداً، يُمكنك الاشتراك في الإصدار التجريبي المجاني.
  • الإصدار 2.0 من Azure CLI أو أحدث. لتثبيت أحدث إصدار، راجع تثبيت Azure CLI.
  • تطبيق سيتم تكوينه لاستخدام المفتاح أو كلمة المرور التي تقوم بإنشائها في هذه المقالة. يتوفر نموذج تطبيق من مركز التنزيل ل Microsoft. للحصول على الإرشادات، راجع ملف Readme المضمن.

الحصول على تعليمات حول واجهة Command-Line عبر النظام الأساسي Azure

تفترض هذه المقالة أنك على دراية بواجهة سطر الأوامر (Bash، Terminal، موجه الأوامر).

يمكن استخدام المعلمة --help أو -h لعرض التعليمات لأوامر معينة. بدلا من ذلك، يمكن أيضا استخدام تنسيق تعليمات Azure [الأمر] [خيارات] أيضا. عندما تكون في شك بشأن المعلمات التي يحتاجها أمر، راجع التعليمات. على سبيل المثال، جميع الأوامر التالية ترجع نفس المعلومات:

az account set --help
az account set -h

يمكنك أيضا قراءة المقالات التالية للتعرف على Azure Resource Manager في واجهة Command-Line عبر النظام الأساسي Azure:

كيفية إنشاء حاوية متصلبة (مخزن) في Azure

الخزائن هي حاويات آمنة مدعومة بوحدات أمان الأجهزة. تساعد المخازن على تقليل فرص الفقد العرضي لمعلومات الأمان من خلال مركزية تخزين بيانات التطبيق السرية. تتحكم Key Vaults أيضا في الوصول إلى أي شيء مخزن فيها وتسجله. يمكن ل Azure Key Vault معالجة طلب شهادات أمان طبقة النقل (TLS) وتجديدها، ما يوفر الميزات المطلوبة لحل إدارة دورة حياة الشهادة القوي. في الخطوات التالية، ستقوم بإنشاء مخزن.

الاتصال باشتراكاتك

لتسجيل الدخول بشكل تفاعلي، استخدم الأمر التالي:

az login

لتسجيل الدخول باستخدام حساب مؤسسة، يمكنك تمرير اسم المستخدم وكلمة المرور.

az login -u username@domain.com -p password

إذا كان لديك أكثر من اشتراك واحد وتحتاج إلى تحديد الاشتراك الذي يجب استخدامه، فاكتب ما يلي للاطلاع على الاشتراكات لحسابك:

az account list

حدد اشتراكا باستخدام معلمة الاشتراك.

az account set --subscription <subscription name or ID>

لمزيد من المعلومات حول تكوين واجهة Command-Line عبر النظام الأساسي Azure، راجع تثبيت Azure CLI.

إنشاء مجموعة موارد جديدة

عند استخدام Azure Resource Manager، يتم إنشاء جميع الموارد ذات الصلة داخل مجموعة موارد. يمكنك إنشاء مخزن مفاتيح في مجموعة موارد موجودة. إذا كنت ترغب في استخدام مجموعة موارد جديدة، يمكنك إنشاء مجموعة جديدة.

az group create -n "ContosoResourceGroup" -l "East Asia"

المعلمة الأولى هي اسم مجموعة الموارد والمعلمة الثانية هي الموقع. للحصول على قائمة بجميع المواقع الممكنة، اكتب:

az account list-locations

تسجيل موفر موارد Key Vault

قد ترى الخطأ "لم يتم تسجيل الاشتراك لاستخدام مساحة الاسم "Microsoft.KeyVault" عند محاولة إنشاء مخزن مفاتيح جديد. إذا ظهرت هذه الرسالة، فتأكد من تسجيل موفر موارد Key Vault في اشتراكك. هذه عملية لمرة واحدة لكل اشتراك.

az provider register -n Microsoft.KeyVault

إنشاء مخزن رئيسي

az keyvault create استخدم الأمر لإنشاء مخزن مفاتيح. يحتوي هذا البرنامج النصي على ثلاث معلمات إلزامية: اسم مجموعة الموارد واسم مخزن المفاتيح والموقع الجغرافي.

لإنشاء مخزن جديد باسم ContosoKeyVault، في مجموعة الموارد ContosoResourceGroup، الموجودة في موقع شرق آسيا ، اكتب:

az keyvault create --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --location "East Asia"

يظهر إخراج هذا الأمر خصائص خزنة المفاتيح التي قمت بإنشائها. تتمثل أكثر خاصيتين مهمتين فيما يلي:

  • الاسم: في المثال، الاسم هو ContosoKeyVault. ستستخدم هذا الاسم لأوامر Key Vault الأخرى.
  • vaultUri: في المثال، URI هو https://contosokeyvault.vault.azure.net. يجب أن تستخدم التطبيقات التي تستخدم مخزنك من خلال واجهة برمجة تطبيقات REST الخاصة بها معرّف الموارد المنتظم (URI).

حساب Azure الخاص بك مخول الآن لتنفيذ أي عمليات على مخزن المفاتيح هذا. وحتى هذه اللحظة، لم يحصل أي شخص آخر على مصادقة.

إضافة مفتاح أو سر أو شهادة إلى مخزن المفاتيح

إذا كنت تريد أن يقوم Azure Key Vault بإنشاء مفتاح محمي بالبرامج نيابة عنك، فاستخدم az key create الأمر .

az keyvault key create --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --protection software

إذا كان لديك مفتاح موجود في ملف .pem، يمكنك تحميله إلى Azure Key Vault. يمكنك اختيار حماية المفتاح باستخدام البرنامج أو HSM. يستورد هذا المثال المفتاح من ملف .pem ويحميه باستخدام البرنامج، باستخدام كلمة المرور "hVFkk965BuUv":

az keyvault key import --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --pem-file "./softkey.pem" --pem-password "hVFkk965BuUv" --protection software

يمكنك الآن الرجوع إلى المفتاح الذي قمت بإنشائه أو تحميله إلى Azure Key Vault، باستخدام URI الخاص به. استخدم https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey للحصول دائما على الإصدار الحالي. استخدم https://<keyvault-name>.vault.azure.net/keys/<keyname>/<key-unique-id> للحصول على هذا الإصدار المحدد. على سبيل المثال، https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87

أضف سرا إلى المخزن، وهو كلمة مرور تسمى SQLPassword، ولها قيمة "hVFkk965BuUv" إلى Azure Key Vaults.

az keyvault secret set --vault-name "ContosoKeyVault" --name "SQLPassword" --value "hVFkk965BuUv "

قم بالرجوع إلى كلمة المرور هذه باستخدام URI الخاص بها. استخدم https://ContosoVault.vault.azure.net/secrets/SQLPassword للحصول دائما على الإصدار الحالي، والحصول https://<keyvault-name>.vault.azure.net/secret/<secret-name>/<secret-unique-id> على هذا الإصدار المحدد. على سبيل المثال، https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d

استيراد شهادة إلى المخزن باستخدام .pem أو .pfx.

az keyvault certificate import --vault-name "ContosoKeyVault" --file "c:\cert\cert.pfx" --name "ContosoCert" --password "hVFkk965BuUv"

دعونا نعرض المفتاح أو السر أو الشهادة التي قمت بإنشائها:

  • لعرض المفاتيح، اكتب:
az keyvault key list --vault-name "ContosoKeyVault"
  • لعرض أسرارك، اكتب:
az keyvault secret list --vault-name "ContosoKeyVault"
  • لعرض الشهادات، اكتب:
az keyvault certificate list --vault-name "ContosoKeyVault"

تسجيل تطبيق باستخدام معرف Microsoft Entra

عادة ما يتم تنفيذ هذه الخطوة من قبل مطور، على كمبيوتر منفصل. إنها ليست خاصة ب Azure Key Vault ولكنها مضمنة هنا، للوعي. لإكمال تسجيل التطبيق، يجب أن يكون حسابك والمخزن والتطبيق في نفس دليل Azure.

يجب مصادقة التطبيقات التي تستخدم مخزن مفاتيح باستخدام رمز مميز من معرف Microsoft Entra. يجب على مالك التطبيق تسجيله في Microsoft Entra أولا. في نهاية التسجيل، يحصل مالك التطبيق على القيم التالية:

  • معرف التطبيق (المعروف أيضا باسم معرف عميل Microsoft Entra أو appID)
  • مفتاح مصادقة (يعرف أيضا باسم السر المشترك).

يجب أن يقدم التطبيق كلا القيمتين إلى معرف Microsoft Entra، للحصول على رمز مميز. تعتمد كيفية تكوين تطبيق للحصول على رمز مميز على التطبيق. بالنسبة لتطبيق نموذج Key Vault، يقوم مالك التطبيق بتعيين هذه القيم في ملف app.config.

للحصول على خطوات مفصلة حول تسجيل تطبيق باستخدام معرف Microsoft Entra، يجب عليك مراجعة المقالات المعنونة دمج التطبيقات مع معرف Microsoft Entra، واستخدام المدخل لإنشاء تطبيق Microsoft Entra ومدير الخدمة الذي يمكنه الوصول إلى الموارد، وإنشاء كيان خدمة Azure باستخدام Azure CLI.

لتسجيل تطبيق في معرف Microsoft Entra:

az ad sp create-for-rbac -n "MyApp" --password "hVFkk965BuUv" --role Contributor --scopes /subscriptions/<subscription id>
# If you don't specify a password, one will be created for you.

تخويل تطبيق لاستخدام مفتاح أو سر

لتخويل التطبيق للوصول إلى المفتاح أو السر في المخزن، استخدم az keyvault set-policy الأمر .

على سبيل المثال، إذا كان اسم المخزن الخاص بك هو ContosoKeyVault وتريد تخويل التطبيق لفك التشفير وتسجيل الدخول باستخدام المفاتيح في المخزن الخاص بك، فاستخدم الأمر التالي مع معرف التطبيق الخاص بك:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --key-permissions decrypt sign

لتخويل نفس التطبيق لقراءة الأسرار في المخزن الخاص بك، اكتب الأمر التالي:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --secret-permissions get

تعيين نهج الوصول المتقدمة لمخزن المفاتيح

استخدم az keyvault update لتمكين النهج المتقدمة لمخزن المفاتيح.

تمكين Key Vault للنشر: يسمح للأجهزة الظاهرية باسترداد الشهادات المخزنة كأسرار من المخزن.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-deployment "true"

تمكين Key Vault لتشفير القرص: مطلوب عند استخدام المخزن لتشفير قرص Azure.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-disk-encryption "true"

تمكين Key Vault لنشر القالب: يسمح ل Resource Manager باسترداد الأسرار من المخزن.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-template-deployment "true"

العمل مع وحدات أمان الأجهزة (HSMs)

للحصول على ضمان إضافي، يمكنك استيراد أو إنشاء مفاتيح من وحدات أمان الأجهزة (HSMs) التي لا تترك حدود HSM أبدا. تم التحقق من صحة HSMs FIPS 140. إذا لم ينطبق هذا المطلب عليك، فتخط هذا القسم وانتقل إلى حذف مخزن المفاتيح والمفاتيح والأسرار المقترنة.

لإنشاء هذه المفاتيح المحمية ب HSM، يجب أن يكون لديك اشتراك مخزن يدعم المفاتيح المحمية ب HSM.

عند إنشاء keyvault، أضف المعلمة "sku":

az keyvault create --name "ContosoKeyVaultHSM" --resource-group "ContosoResourceGroup" --location "East Asia" --sku "Premium"

يمكنك إضافة مفاتيح محمية بالبرامج (كما هو موضح سابقا) والمفاتيح المحمية ب HSM إلى هذا المخزن. لإنشاء مفتاح محمي ب HSM، قم بتعيين المعلمة الوجهة إلى "HSM":

az keyvault key create --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --protection "hsm"

يمكنك استخدام الأمر التالي لاستيراد مفتاح من ملف .pem على الكمبيوتر. يستورد هذا الأمر المفتاح إلى HSMs في خدمة Key Vault:

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --pem-file "/.softkey.pem" --protection "hsm" --pem-password "PaSSWORD"

يقوم الأمر التالي باستيراد حزمة "إحضار المفتاح الخاص بك" (BYOK). يتيح لك هذا إنشاء مفتاحك في HSM المحلي الخاص بك، ونقله إلى HSMs في خدمة Key Vault، دون مغادرة المفتاح لحد HSM:

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --byok-file "./ITByok.byok" --protection "hsm"

للحصول على إرشادات أكثر تفصيلا حول كيفية إنشاء حزمة BYOK هذه، راجع كيفية استخدام مفاتيح HSM-Protected مع Azure Key Vault.

حذف خزنة المفاتيح والمفاتيح والأسرار المرتبطة بها

إذا لم تعد بحاجة إلى خزنة المفاتيح ومفاتيحها أو أسرارها، يمكنك حذف خزنة az keyvault delete المفاتيح باستخدام الأمر :

az keyvault delete --name "ContosoKeyVault"

أو يمكنك حذف مجموعة موارد Azure بأكملها، والتي تتضمن مخزن المفاتيح وأي موارد أخرى قمت بإدراجها في تلك المجموعة:

az group delete --name "ContosoResourceGroup"

أوامر واجهة سطر الأوامر المتنوعة ل Azure عبر النظام الأساسي

الأوامر الأخرى التي قد تجدها مفيدة لإدارة Azure Key Vault.

يسرد هذا الأمر عرضا جدوليا لكافة المفاتيح والخصائص المحددة:

az keyvault key list --vault-name "ContosoKeyVault"

يعرض هذا الأمر قائمة كاملة بالخصائص للمفتاح المحدد:

az keyvault key show --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

يسرد هذا الأمر عرضا جدوليا لجميع الأسماء السرية والخصائص المحددة:

az keyvault secret list --vault-name "ContosoKeyVault"

فيما يلي مثال على كيفية إزالة مفتاح معين:

az keyvault key delete --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

فيما يلي مثال على كيفية إزالة سر معين:

‏‫ملاحظة

تم az keyvault secret delete إهمال الأمر. عندما يتم تفعيل الحذف الناعم في خزنة المفاتيح (التي أصبحت الآن الافتراضية)، ينقل هذا الأمر السر إلى حالة حذف برمجي بدلا من حذفه بشكل دائم. يمكنك بعد az keyvault secret recover ذلك استخدامه لاستعادته، أو az keyvault secret purge لحذفه نهائيا. لمزيد من المعلومات حول الحذف المبدئي، راجع نظرة عامة حول الحذف المبدئي في Azure Key Vault.

az keyvault secret delete --vault-name "ContosoKeyVault" --name "SQLPassword"

الخطوات التالية