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

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

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

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

إشعار

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

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

المتطلبات الأساسية

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

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

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

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

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

az account set --help
az account set -h

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

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

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

تسجيل الدخول إلى الاشتراك

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

az login

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

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

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

az account list

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

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

لمزيد من المعلومات حول تكوين Azure Cross-Platform Command-Line، راجع تثبيت Azure CLI.

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

عند استخدام Azure Resource Manager، يتم إنشاء كافة الموارد المرتبطة داخل مجموعة موارد. يمكنك إنشاء key vault في مجموعة موارد موجودة. إذا كنت تريد استخدام مجموعة موارد جديدة، يمكنك إنشاء مجموعة موارد جديدة.

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

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

az account list-locations

سجل Azure Resource Provider

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

az provider register -n Microsoft.KeyVault

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

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

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

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

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

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

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

إضافة مفتاح أو سر أو شهادة إلى key vault

إذا كنت تريد أن يقوم 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

إعداد سياسات دخول متقدمة لـ key vault

استخدم تحديث az keyvault لتمكين النهج المتقدم للمخزن الأساسي.

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

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

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

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)

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

لإنشاء هذه المفاتيح المحمية HSM يجب أن يكون لديك اشتراك vault يدعم المفاتيح المحمية 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.

حذف 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 --vault-name "ContosoKeyVault" --name "SQLPassword"

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