إدارة مفاتيح حساب التخزين باستخدام Key Vault وAzure CLI (قديم)

هام

يتم دعم Storage Account Keys المُدار من Key Vault (القديمة) كما هي مع عدم التخطيط لمزيد من التحديثات. يتم دعم Account SAS فقط بإصدار خدمة التخزين الموقعة لتعريفات SAS في موعد أقصاه 2018-03-28.

هام

تمت إزالة دعم مفاتيح حساب التخزين المدارة في Azure CLI في الإصدار 2.54، يجب استخدام Azure CLI الإصدار 2.53.1 أو السابق للأوامر في هذا البرنامج التعليمي.

هام

نوصي باستخدام تكامل Azure Storage مع معرف Microsoft Entra، وهوية Microsoft المستندة إلى السحابة وخدمة إدارة الوصول. يتوفر تكامل Microsoft Entra ل Azure blobs وقوائم الانتظار والجداول، ويوفر الوصول المستند إلى الرمز المميز OAuth2 إلى Azure Storage (تماما مثل Azure Key Vault). يسمح لك معرف Microsoft Entra بمصادقة تطبيق العميل باستخدام تطبيق أو هوية مستخدم، بدلا من بيانات اعتماد حساب التخزين. يمكنك استخدام هوية مدارة من Microsoft Entra عند التشغيل على Azure. تزيل الهويات المُدارة الحاجة إلى مصادقة العميل وتخزين بيانات الاعتماد في أو مع التطبيق الخاص بك. استخدم الحل أدناه فقط عندما لا تكون مصادقة Microsoft Entra ممكنة.

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

ويمكنك استخدام ميزة مفتاح حساب التخزين المُدار لـ Key Vault لسرد (مزامنة) المفاتيح مع حساب تخزين Azure، وإعادة إنشاء (تدوير) المفاتيح بشكل دوري. يمكنك إدارة مفاتيح حسابات التخزين وحسابات التخزين الكلاسيكية.

وعند استخدام ميزة مفتاح حساب التخزين المُدارة، ضع في اعتبارك النقاط التالية:

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

هام

يقاطع مفتاح التجديد مباشرة في حساب التخزين إعداد حساب التخزين المداري ويمكن إبطال الرموز SAS المستخدمة كما يسبب انقطاعا.

معرف التطبيق الرئيسي للخدمة

يوفر مستأجر Microsoft Entra لكل تطبيق مسجل مع كيان خدمة. يعمل مدير الخدمة كمعرّف التطبيق، والذي يتم استخدامه أثناء إعداد التفويض للوصول إلى موارد Azure الأخرى عبر التحكم في الوصول إلى قاعدة الأدوار من Azure (Azure RBAC).

Key Vault هو تطبيق Microsoft مسجل مسبقا في جميع مستأجري Microsoft Entra. يتم تسجيل Key Vault ضمن نفس معرف التطبيق في كل سحابة Azure.

المستأجرون السحابة مُعرّف التطبيق
Microsoft Entra ID Azure Government 7e7c393b-45d0-48b1-a35e-2905ddf8183c
Microsoft Entra ID Azure العامة cfa8b339-82a2-471a-a3c9-0fc0be7a4093
أخرى أي cfa8b339-82a2-471a-a3c9-0fc0be7a4093

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

لإكمال هذا الدليل، يجب عليك أولاً القيام بالخطوات التالية:

إدارة مفاتيح حساب التخزين

الاتصال بحساب Azure الخاص بك

قم بمصادقة جلسة Azure CLI الخاصة بك باستخدام أوامر تسجيل الدخول من az .

az login

امنح Key Vault حق الوصول إلى حساب التخزين الخاص بك

استخدم أمر Azure CLI إنشاء دور az لمنح Key Vault حق الوصول إلى حساب التخزين الخاص بك. أدخل الأمر قيم المعلمات التالية:

  • --role: قم بتمرير دور Azure "دور خدمة مشغل مفتاح حساب التخزين". ويحد هذا الدور من نطاق الوصول إلى حساب التخزين الخاص بك. بالنسبة لحساب التخزين الكلاسيكي، مرر "Classic Storage Account Key Operator Service Role" بدلاً من ذلك.
  • --assignee: قم بتمرير القيمة "https://vault.azure.net"، وهي عنوان URL لـ Key Vault في سحابة Azure العامة. (بالنسبة إلى استخدام السحابة الإلكترونية من Microsoft Azure Government استخدم "معرّف - العنصر - التعيين" بدلاً من ذلك، راجع معرّف التطبيق الأساسي للخدمة.)
  • --scope: قم بتمرير معرف مورد حساب التخزين الذي يظهر بالصيغة /subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>. ابحث عن معرّف الاشتراك الخاص بك، باستخدام الأمر Azure CLI قائمة حسابات az. ابحث عن اسم حساب التخزين ومجموعة موارد حساب التخزين، باستخدام الأمر Azure CLI قائمة حسابات التخزين azure CLI.
az role assignment create --role "Storage Account Key Operator Service Role" --assignee "https://vault.azure.net" --scope "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>"

امنح حساب المستخدم الخاص بك إذنًا لحسابات التخزين المُدارة

استخدم Azure CLI az keyvault-set-policy cmdlet لتحديث نهج الوصول إلى Key Vault ومنح أذونات حساب التخزين لحساب المستخدم الخاص بك.

# Give your user principal access to all storage account permissions, on your Key Vault instance

az keyvault set-policy --name <YourKeyVaultName> --upn user@domain.com --storage-permissions get list delete set update regeneratekey getsas listsas deletesas setsas recover backup restore purge

لا تتوفر أذونات حسابات التخزين في صفحة "نهج الوصول" لحساب التخزين في مدخل Microsoft Azure.

إنشاء حساب تخزين مُدار من Key Vault

قم بإنشاء حساب تخزين مُدار لـ Key Vault باستخدام أمر Azure CLI az keyvault storage . حدد فترة تجديد لمدة 30 يوماً. عندما حان الوقت للتدوير، يقوم KeyVault بإعادة إنشاء المفتاح غير النشط، ثم يعين المفتاح الذي تم إنشاؤه حديثا على أنه نشط. يتم استخدام مفتاح واحد فقط لإصدار رموز SAS المميزة في أي وقت، وهذا هو المفتاح النشط. أدخل الأمر قيم المعلمات التالية:

  • --vault-name: قم بتمرير اسم خزنة المفاتيح الخاصة بك. للعثور على اسم مخزن المفاتيح الخاص بك، استخدم الأمر Azure CLI az keyvault list .
  • -nمرر اسم حساب التخزين الخاص بك. للعثور على اسم حساب التخزين الخاص بك، استخدم أمر Azure CLI قائمة حساب التخزين az .
  • --resource-id: قم بتمرير معرف مورد حساب التخزين الذي يظهر بالصيغة /subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>. ابحث عن معرّف الاشتراك الخاص بك، باستخدام الأمر Azure CLI قائمة حسابات az. ابحث عن اسم حساب التخزين ومجموعة موارد حساب التخزين، باستخدام الأمر Azure CLI قائمة حسابات التخزين azure CLI.
az keyvault storage add --vault-name <YourKeyVaultName> -n <YourStorageAccountName> --active-key-name key1 --auto-regenerate-key --regeneration-period P30D --resource-id "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>"

الرموز المميزة لتوقيع الوصول المشترك

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

وتكمل الأوامر الموجودة في هذا القسم الإجراءات التالية:

  • حدد حساب تعريف توقيع الوصول المشترك <YourSASDefinitionName>. تم تعيين التعريف على حساب تخزين Key Vault مُدار <YourStorageAccountName> في خزينة المفاتيح <YourKeyVaultName>.
  • قم بتعيين تعريف توقيع الوصول المشترك لوحدة التخزين المُدارة لـ Key Vault في المخزن. ويحتوي التعريف على نموذج URI لرمز توقيع الوصول المشترك الذي تم إنشاؤه. يحتوي التعريف على نوع توقيع الوصول المشترك account وهو صالح لـ "N" من الأيام.
  • تحقق من أن توقيع الوصول المشترك قد تم حفظه في خزينة المفاتيح كسر.

تحديد قالب تعريف توقيع الوصول المشترك

يستخدم Key Vault قالب تعريف SAS لإنشاء الرموز المميزة لتطبيقات العميل.

مثال على قالب تعريف SAS:

"sv=2018-03-28&ss=bfqt&srt=sco&sp=rw&spr=https"

سيكون قالب تعريف SAS هو الذي تم تمريره إلى المعلمة --template-uri في الخطوة التالية.

معلمات SAS للحساب مطلوبة في قالب تعريف SAS لـ Key Vault

معلمة استعلام SAS ‏‏الوصف
SignedVersion (sv) مطلوب. تحدد إصدار خدمة التخزين الموقع لاستخدامه في تفويض الطلبات المقدمة مع هذا الحساب SAS. يجب التعيين على الإصدار 2015-04-05 أو الأحدث. Key Vault يدعم الإصدارات التي لا تتجاوز 2018-03-28
SignedServices (ss) مطلوب. تحدد الخدمات الموقعة التي يمكن الوصول إليها باستخدام حساب SAS. تشمل القيم المتاحة ما يلي:

كائن ثنائي كبير الحجم (b)
- قائمة الانتظار (q)
- الجدول (t)
- ملف (f)

يمكنك دمج القيم لتوفير الوصول إلى أكثر من خدمة واحدة. على سبيل المثال، يحدد ss=bf الوصول إلى نقطتي نهاية الملف وكائن ثنائي كبير الحجم.
SignedResourceTypes (srt) مطلوب. تحدد أنواع الموارد الموقعة التي يمكن الوصول إليها باستخدام حساب SAS.

- الخدمة (s): الوصول إلى واجهات برمجة التطبيقات على مستوى الخدمة (على سبيل المثال، الحصول على / تعيين خصائص الخدمة، الحصول على إحصائيات الخدمة، سرد الحاويات / قوائم الانتظار / الجداول / المشاركات)
- الحاوية (c): الوصول إلى واجهات برمجة التطبيقات على مستوى الحاوية (على سبيل المثال، إنشاء / حذف حاوية، إنشاء / حذف قائمة الانتظار، إنشاء / حذف جدول، إنشاء / حذف مشاركة، سرد النقط / الملفات والدلائل)
- العنصر (o): الوصول إلى واجهات برمجة التطبيقات على مستوى العنصر للنقاط الكبيرة ورسائل قائمة الانتظار وكيانات الجدول والملفات (على سبيل المثال، ضع Blob وQuery Entity وGet Messages وCreate File وما إلى ذلك)

يمكنك دمج القيم لتوفير الوصول إلى أكثر من نوع مورد. على سبيل المثال، يحدد srt=sc الوصول إلى موارد الخدمة والحاويات.
SignedPermission (sp) مطلوب. تحدد الأذونات الموقعة لحساب SAS. تكون الأذونات صالحة فقط إذا كانت تتطابق مع نوع مورد الموقع المحدد وإلا يتم تجاهلها.

- قراءة (r): صالحة لجميع أنواع الموارد الموقعة (Service, Container, وObject). تصاريح قراءة الأذونات لنوع المورد المحدد.
- كتابة (w): صالحة لجميع أنواع الموارد الموقعة (Service, Container, وObject). تصاريح أذونات الكتابة لنوع المورد المحدد.
- حذف (d): صالح لأنواع موارد الحاوية والعنصر، باستثناء رسائل قائمة الانتظار.
- حذف دائم (y): صالح لنوع مورد عنصر ثنائي كبير الحجم فقط.
- القائمة (l): صالحة لأنواع موارد الخدمة والحاويات فقط.
- إضافة (a): صالح لأنواع موارد العناصر التالية فقط: رسائل قائمة الانتظار وكيانات الجدول والعناصر الثنائية كبيرة الحجم الملحقة.
- إنشاء (c): صالح لأنواع موارد العناصر التالية فقط: العناصر الثنائية كبيرة الحجم والملفات. يمكن للمستخدمين إنشاء ملفات أو كائنات ثنائية كبيرة الحجم جديدة، ولكن لا يمكنهم الكتابة فوق الملفات أو الكائنات الثنائية كبيرة الحجم الموجودة.
- تحديث (u): صالح لأنواع موارد العناصر التالية فقط: رسائل قائمة الانتظار وكيانات الجدول.
- العملية (p): صالحة لنوع مورد العنصر التالي فقط: رسائل قائمة الانتظار.
- العلامة (t): صالحة لنوع مورد العنصر التالي فقط: عناصر ثنائية كبيرة الحجم. يسمح بعمليات علامة كائن ثنائي كبير الحجم.
- عامل التصفية (f): صالح لنوع مورد العنصر التالي فقط: عناصر ثنائية كبيرة الحجم. تصاريح التصفية بواسطة علامة كائن ثنائي كبير الحجم.
- تعيين نهج الثبات (i): صالح لنوع مورد العنصر التالي فقط: عناصر ثنائية كبيرة الحجم. تعيين/حذف تصاريح نهج الثبات والتعليق القانوني على الكائن الثنائي كبير الحجم.
SignedProtocol (spr) اختياري. يحدِّد البروتوكول المسموح به لطلب تم إجراؤه باستخدام حساب SAS. القيم المحتملة هي HTTPS وHTTP (https,http) أو HTTPS فقط (https). القيمة الافتراضية هي https,http.

HTTP فقط ليست قيمة مسموح بها.

لمزيد من المعلومات بشأن حساب SAS، راجع: إنشاء حساب SAS

إشعار

يتجاهل Key Vault معلمات مدة البقاء مثل "Signed Expiry" و"Signed Start" والمعلمات المقدمة بعد إصدار 2018-03-28

قم بتعيين تعريف توقيع الوصول المشترك في Key Vault

استخدم الأمر Azure CLI az keyvault storage sas-definition create، لتمرير قالب تعريف SAS من الخطوة السابقة إلى المعلمة --template-uri، لإنشاء تعريف توقيع وصول مشترك. يمكنك تقديم اسم من اختيارك للمعلمة -n.

az keyvault storage sas-definition create --vault-name <YourKeyVaultName> --account-name <YourStorageAccountName> -n <YourSASDefinitionName> --validity-period P2D --sas-type account --template-uri <sasDefinitionTemplate>

التحقق من تعريف توقيع الوصول المشترك

يمكنك التحقق من أن تعريف توقيع الوصول المشترك قد تم تخزينه في مخزن المفاتيح الخاص بك باستخدام الأمر Azure CLI azure CLI للتخزين sas-definition show .

يمكنك الآن استخدام الأمر az keyvault storage sas-definition show وخاصية id لعرض محتوى هذا السر.

az keyvault storage sas-definition show --id https://<YourKeyVaultName>.vault.azure.net/storage/<YourStorageAccountName>/sas/<YourSASDefinitionName>

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